《表1 GDB stub调试命令及含义》
图2中,GDB stub是嵌入到目标机的一段代码,是GDB调试器和要调试的目标代码进行交互的媒介。调试的主要目的是获得代码执行的状态信息,这需要调试代理能够获取控制权,一般是通过调试断点来实现,因此要求GDB stub支持设置调试断点。处理器在运行的过程中,如果碰到了一条非法的指令,就会出现一个异常中断,程序也会停了下来,GDB stub就是利用这个特性来设置断点。当需要设置一个断点时,GDB stub就在想设置断点的程序位置上放置一条非法的指令,同时保留原来的指令。当程序运行时,一旦运行到设置了断点的地方,即现在指令是非法的位置,处理器就会产生一个异常中断从而停了下来。当然,GDB stub会接管这一中断,跳转到自定义的中断处理程序中,最后再将保存的原来的指令恢复回去。GDB stub中实现的部分调试命令见表1。
图表编号 | XD0074391800 严禁用于非法目的 |
---|---|
绘制时间 | 2019.06.16 |
作者 | 徐永超、舒辉、杜三 |
绘制单位 | 信息工程大学数学工程与先进计算国家重点实验室、信息工程大学数学工程与先进计算国家重点实验室、信息工程大学数学工程与先进计算国家重点实验室 |
更多格式 | 高清、无水印(增值服务) |