【问题标题】:How to skip a hard-coded breakpoint with Windbg (C ++ )?如何使用 Windbg (C++) 跳过硬编码断点?
【发布时间】:2013-06-10 15:43:15
【问题描述】:

我有同样的问题:this question,但没有清晰的响应:(
我正在调试一个崩溃的程序(c++),是我放了崩溃行代码(_invalide_parameter)
当我在 Windbg 中录制: .exr -1 以显示导致崩溃的最后一个事件(只有一个事件)时,它会显示给我

00000000`006bfbd8 00000000`775d7ef8 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : ntdll!DbgBreakPoint  

我不在乎,我希望告诉我一行:kernel32UnhandledExceptionFilter。是的,这条线存在,我可以通过 ~*kv 命令显示它
有一种方法可以跳过硬编码断点 ntdll!DbgBreakPoint,因为命令 blbc *bd * > 做点什么?

谢谢你。

如果需要:Win7 x64、VS2008、C++、Windbg 64bytes、未加载符号,只是默认符号(这里是另一个历史记录)

【问题讨论】:

    标签: c++ visual-c++ windbg


    【解决方案1】:

    你必须修改内存中的代码,因为在断点所在的代码中。

    1. 首先,在堆栈跟踪中找到调用DbgBreakPoint() 的函数。 (确保在正确的模块中找到正确的函数)。
    2. 在内存中编辑代码以避免调用(例如,将pushcall 命令替换为nop)。您可以使用 a 命令来做到这一点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多