我在Windows10下使用SourceForge的x64dbg调试器,我一直有一个问题,我认为可能是因为我自己的愚蠢,但到目前为止我还不能确定它。
我正在使用MASM汇编程序,当我处理一个问题时,我通常会编写一个只包含几条指令的程序,然后用调试器跟踪它,看看在一个简单的上下文中到底发生了什么。
我使用一个名为temp1的程序已经有几个星期了,现在突然当我使用调试器运行这个程序时,调试数据在x64dbg屏幕上闪烁了几分之一秒,然后程序一直运行到结束,就像我单击了debug→run而没有断点一样。
我尝试在程序中添加更多的指令,但结果仍然是一样的。因此,我将程序重命名为bozo,并使用该名称对其进行汇编和链接,其中只有两条指令。当我在x64dbg下运行bozo.exe时,它在第一条指令上停止,没有任何问题。
这到底是怎么回事?仅仅使用一个不同的程序名怎么能改变调试器的行为呢?
发布于 2021-01-18 11:32:02
转到Options→Preferences (设置),并在Events选项卡中确保选择了entry breakpoint,这样x64dbg就会在程序进入时中断,然后它才会执行任何操作。
发布于 2021-06-19 19:16:46
x64dbg将设置、断点、注释等基于被调试文件名保存在所谓的“数据库”中。
例如,如果您的被调试对象是bozo.exe 64位可执行文件,则其数据库将保存在bozo.exe.dd64文件中,以保留您的设置,以便将来使用相同的(bozo.exe)文件。
完整路径如下所示
c:\Program Files\x64dbg\x64\db\bozo.exe.dd64但这并不重要,因为它是在打开/附加被调试bozo.exe之后自动加载的。
它解释了为什么简单的文件名更改(它使用默认设置创建新数据库)可能会更改调试器的行为。
(其余的解释在Alicia's answer中。)
https://stackoverflow.com/questions/62843903
复制相似问题