14GDB代码反向执行


1. 代码片段:

2. GDB执行分析:

1)断点到代码行19,并且运行到代码行19

2)启用反向执行功能:record,该命令必须在程序运行起来执行。
3)下一步,来到调用子函数my_print的代码行20
4)进入子函数my_print的第一行5
5)一路n,来到代码行12
6)一路rn(反向执行),来到代码行7,这时候a, b变量的值分别为1,2
7)反向执行到子函数my_print的调用行20:reverse-finish
8)下一步,发现他会进入到子函数my_print的正向执行的最后位置行12(12行前面的代码都会自动被执行)

另外:rc命令是c命令的反向执行,表示回退到上一个断点的位置

关闭防线执行命令:record stop

GDB