Debugging 为什么启动程序时单步执行每条指令都会崩溃?[调试] 我试图遵循一个简单的程序,我用C++编译(它计算一些素数然后退出)在调试器(OLYDBG)中,但是我有几个问题: 为什么第一条指令不是“代码”部分的入口点?这是不同的 只要我“跳过”一些指令,调试器就会崩溃并写入“ntdll.someaddress处的单步事件,按shift+F7/F8/F9将异常传递给程序”,然后崩溃。如果我在不执行指令的情况下运行程序,它工作正常,并且程序加载没有问题

Debugging 为什么启动程序时单步执行每条指令都会崩溃?[调试] 我试图遵循一个简单的程序,我用C++编译(它计算一些素数然后退出)在调试器(OLYDBG)中,但是我有几个问题: 为什么第一条指令不是“代码”部分的入口点?这是不同的 只要我“跳过”一些指令,调试器就会崩溃并写入“ntdll.someaddress处的单步事件,按shift+F7/F8/F9将异常传递给程序”,然后崩溃。如果我在不执行指令的情况下运行程序,它工作正常,并且程序加载没有问题,debugging,x86,x86-64,ollydbg,Debugging,X86,X86 64,Ollydbg,为什么会发生这种情况?这不仅发生在我的程序上,还发生在其他几个程序上(我的系统中几乎每32位exe一个)如果你在64位操作系统下运行OllyDbg,我相信你运气不好,因为OllyDbg不支持x86-64 Windows,甚至不支持用作调试32位应用程序的调试器。看,这是从2006年开始的,但我不认为从那以后有什么变化。他们建议使用不同的调试器,例如64位版本的WinDbg(这是一个很棒的调试器) 为什么第一条指令不是“代码”部分的入口点?这是不同的 您可以在OllyDbg:Options-deb

为什么会发生这种情况?这不仅发生在我的程序上,还发生在其他几个程序上(我的系统中几乎每32位exe一个)

如果你在64位操作系统下运行OllyDbg,我相信你运气不好,因为OllyDbg不支持x86-64 Windows,甚至不支持用作调试32位应用程序的调试器。看,这是从2006年开始的,但我不认为从那以后有什么变化。他们建议使用不同的调试器,例如64位版本的WinDbg(这是一个很棒的调试器)

为什么第一条指令不是“代码”部分的入口点?这是不同的


您可以在OllyDbg:Options-debuging Options-Events-“首次暂停”中进行设置。您可以从“系统断点”开始,该断点位于ntdll中,甚至在调用启动模块的入口点之前就被调用。

这是一个32位程序吗?在64位操作系统上?谢谢,我希望例外情况只是因为x64不兼容