我可以理解专门为调试而编译的程序如何在代码中插入断点和陷阱,但是像GDB这样的程序如何在预编译的程序中做到这一点?他们在每条指令之后如何才能停止程序的执行?
我正在Windows机器上工作,但是我也愿意学习它在Linux上如何工作。
任何方向或资源将不胜感激,因为Googling返回有关如何使用GDB的说明,而不是有关其在低级如何工作的说明。
他们在每条指令之后如何才能停止程序的执行?
大多数处理器(包括所有处理器)都i*86
支持单步执行。
当要求GDB在这样的处理器上执行单条机器指令时,这是一个非常简单的过程:
在没有单步支持的处理器上,GDB的工作要复杂一些:
资源:
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句