GDB 反向调试功能
GDB从7.0版本开始支持反向调试功能,也就是允许你倒退着运行程序,或者说撤销程序执行的步骤从而会到以前的状态。
可以用以下几条命令来调试程序:
command | description |
---|---|
record |
开始记录 |
record stop |
停止记录 |
record save |
保存记录到文件 |
record restore |
从文件读入记录 |
reverse-continue |
反向运行程序知道遇到一个能使程序中断的事件(比如断点,观察点,异常)。 |
reverse-step |
反向运行程序到上一次被执行的源代码行。 |
reverse-stepi |
反向运行程序到上一条机器指令 |
reverse-next |
反向运行到上一次被执行的源代码行,但是不进入函数。 |
reverse-nexti |
反向运行到上一条机器指令,除非这条指令用来返回一个函数调用、整个函数将会被反向执行。 |
reverse-finish |
反向运行程序回到调用当前函数的地方。 |
set exec-direction [forward | reverse] |
设置程序运行方向,可以用平常的命令step和continue等来执行反向的调试命令。 |
ref:
(GDB 反向调试 Reverse Debugging)[http://www.cnblogs.com/htc-javaMe/archive/2011/05/31/2562512.html]