1

我在 Windows 10 下使用 SourceForge 的 x64dbg 调试器,我一直遇到问题,我认为这可能是由于我自己的愚蠢,但到目前为止我无法确定它。

我正在使用 MASM 汇编程序,当我处理问题时,我通常会编写一个仅包含几条指令的程序,然后使用调试器对其进行跟踪,以查看在简单上下文中发生的确切情况。

我已经使用了一个名为 temp1 的程序几个星期了,现在突然当我用调试器运行这个程序时,调试数据在 x64dbg 屏幕上闪烁了几分之一秒,然后程序运行完成,如如果我点击了 Debug → Run without breakpoints。

我尝试向程序添加更多指令,但结果仍然相同。因此,我将程序重命名为 bozo,并以该名称组装和链接它,其中只有两条指令。当我bozo.exe在 x64dbg 下运行时,它会在第一条指令处停止,没有问题。

这里会发生什么?使用不同的程序名称如何改变调试器的行为方式?

4

2 回答 2

2

转到选项→首选项(设置),并在事件选项卡中确保已entry breakpoint选择,因此 x64dbg 在程序入口处中断,然后再执行任何操作。

于 2021-01-18T03:32:01.813 回答
0

x64dbg 在被调试文件名的基础上保存设置、断点、注释等- 在所谓的“数据库”中。

例如,如果您的调试对象是bozo.exe64 位可执行文件,则其数据库将保存在bozo.exe.dd64文件中,以保留您的设置以供将来使用相同的 ( bozo.exe) 文件工作。

完整的路径是

c:\Program Files\x64dbg\x64\db\bozo.exe.dd64

但这并不重要,因为它是在打开/附加调试器后自动加载的bozo.exe

它解释了为什么简单的文件名更改(使用默认设置创建一个新数据库)可能会改变调试器的行为。

(其余的解释在艾丽西亚的回答中。)

于 2021-06-19T11:16:46.093 回答