Debugging 如何调试foobar程序计数器

Debugging 如何调试foobar程序计数器,debugging,x86,Debugging,X86,我立即对这次撞车事件产生了怀疑。方法中的浮点异常,其唯一算法是“除以sizeof(short)” 我查看了堆栈爬网,发现方法中的偏移量是“+91”。然后我检查了该方法的一个反汇编&确认程序计数器在崩溃时实际上是foobar。拆解显示+90和+93处的说明,但不显示+91处的说明 这是一种方法,32位x86指令,在应用程序的生命周期中经常被调用。这起坠机事件已报告3次 这是怎么发生的?我如何设置一个调试陷阱来解决这个问题?一般来说,当你在一个指令的中间出现故障时,它是由于坏的流量控制(即:一个跳转

我立即对这次撞车事件产生了怀疑。方法中的浮点异常,其唯一算法是“除以sizeof(short)”

我查看了堆栈爬网,发现方法中的偏移量是“+91”。然后我检查了该方法的一个反汇编&确认程序计数器在崩溃时实际上是foobar。拆解显示+90和+93处的说明,但不显示+91处的说明

这是一种方法,32位x86指令,在应用程序的生命周期中经常被调用。这起坠机事件已报告3次


这是怎么发生的?我如何设置一个调试陷阱来解决这个问题?

一般来说,当你在一个指令的中间出现故障时,它是由于坏的流量控制(即:一个跳转跳转,调用,RESN),一个溢出,坏的撤销,或者你的调试符号不同步,使得堆栈跟踪显示不正确的信息。第一步是每次都可靠地重现错误,否则捕获错误会有困难,从那里我只需在调试器中运行它,强制条件使其爆炸,然后检查(调用)堆栈和寄存器,看看它们是否有效值等