我想问这个问题。当我调试程序时,有时我希望我可以再次运行上一条指令。与Microsoft Visual Studio中一样,我们可以将位置指示器(请记住黄色箭头)拖动到您要定位的上一条指令。
例如:
我的程序目前在第72行,并假设第70行与第72行的功能相同。现在我想再次重新运行第70行。有没有办法做到这一点?
感谢。
答案 0 :(得分:4)
我想再次重新开始第70行
使用GDB jump
command。
答案 1 :(得分:1)
您通常可以使用gdb
命令在call
内调用函数:
(gdb) call some_function(arg1, arg2);
但是,如果您想要专门返回程序,您总是可以找到相关行的内存位置并设置指令指针。
(gdb) set $eip = <some memory address>
话虽这么说,我不知道如何完全“解开”程序的状态,如果这就是Visual Studio的作用。换句话说,任何其他程序状态可能在第二次通过时不同。
答案 2 :(得分:0)
使用gdb命令jump,例如:
jump 70