何时使用汇编语言调试ac/c ++程序?

3 c c++ debugging assembly

何时使用程序集调试ac/c ++程序?

学习一些程序集来调试程序有帮助吗?

Cap*_*ult 5

在您无法(还)可靠地重现错误(例如由于堆/堆栈损坏)的情况下,它可能非常有用.您可能会获得一个或两个核心转储,很可能来自客户.即使假设您的调试器是可靠的,查看汇编也可以准确地告诉您哪条指令崩溃(以及哪一块内存已损坏).

此外,根据我的经验(主要是在内核调试中),调试器在处理优化代码时相对较差.他们得到像参数/等错误的东西,并真正告诉我发生了什么,我需要看看diassembly.

如果我能够可靠/轻松地重现问题,那么处理反汇编就不那么有用了,因为我会从单步执行程序中获得更多信息.另一方面,达到可以重现问题的程度通常超过修复它的一半.