如何在GDB中运行以前的说明?

时间:2012-01-17 04:29:16

标签: linux debugging gdb

我想问这个问题。当我调试程序时,有时我希望我可以再次运行上一条指令。与Microsoft Visual Studio中一样,我们可以将位置指示器(请记住黄色箭头)拖动到您要定位的上一条指令。

例如:

我的程序目前在第72行,并假设第70行与第72行的功能相同。现在我想再次重新运行第70行。有没有办法做到这一点?

感谢。

3 个答案:

答案 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
相关问题