《Linux环境下C编程指南(第二版)》p100 gdb 跳转执行
gdb提供了乱序执行的功能,也就是说,gdb可以修改程序的执行顺序,可以让程序执行随意跳转。这个功能可以由gdb的jump命令来实现。
1,指定下一条语句的行号,包括1.数字;2.(+/-)偏移;3.文件名:行号
jump <linespec>
备注:
jump +1表示跳过当前语句,若要跳过下一个语句,则需要使用jump +2
示例使用数字指示行号:
![](https://img-my.csdn.net/uploads/201209/17/1347813725_6095.png)
2,指定下一条语句的位置,包括1.函数名;2.文件名:函数名;3.*内存地址
jump <location>
示例使用内存地址:
![](https://img-my.csdn.net/uploads/201209/17/1347813965_8903.png)
备注:
jump跳转到指定执行点不会暂停,也就是说gdb会从该执行点继续执行,若想gdb在该执行点暂停,需要手动设置断点。
如下所示,执行jump +2跳转到45行并执行func2()打印call func2,然后程序继续执行并正常结束:
参考链接: