5

我已经设置了一个断点,它应该打印一个指针然后继续,因为我不想停在那里。

 bu 410cc8 ".printf \"Class: %08lX   Filebuffer: %08X\\n\", eax, edx; g"

现在的问题是,当我单步执行并触发这样的断点时,如下所示:

 1                 mov     eax, [ebp+var_10]
 2                 lea     edx, [eax+2Ch]
 3                 mov     eax, ebx
 4                 call    ReadFileFkt_2
 5                 mov     eax, [ebp+var_10]

因此,当我在第 4 行并跨过它时,会触发上述断点并打印消息。但后来调试器再也没有回来,因为在断点我使用“g”继续,所以单步被删除。

如果我不使用“g”,那么断点将被击中,调试器会停在那里,所以我必须追踪回到我从哪里来的路。当然,我可以在调用之后设置断点,但是我必须记住在代码的其他部分也这样做,因为我不知道断点何时从某个调用层次结构的深处触发。

4

1 回答 1

10

使用“gc”(从条件断点开始)而不是“g”(开始)。此命令专为您遇到的问题而设计。

于 2013-10-12T18:49:31.437 回答