我可以使用gdb跳过一行而不必输入行号吗?

时间:2010-10-27 20:17:39

标签: gdb

我知道我可以使用jump将程序计数器设置为特定行,因此我可以跳过一行或多行(或再次执行某些行)。我是否可以轻松跳过下一行而无需输入行号?

在运行时“注释掉”某些内容非常方便。

3 个答案:

答案 0 :(得分:67)

jump +1

跳转到下一行,即跳过当前行。您可能还希望将其与tbreak +1组合以在跳转目标处设置临时断点。

有关使用gdb表达位置的更多方法,请参阅http://sourceware.org/gdb/current/onlinedocs/gdb/Specify-Location.html

请注意,没有断点gdb可能会继续正常执行而不是跳转。因此,如果跳转似乎不起作用,请确保在目的地设置断点。

答案 1 :(得分:17)

我的.gdbinit配置文件中包含以下内容:

define skip
    tbreak +1
    jump +1
end

所以只需在gdb中键入skip即可跳过一行。

答案 2 :(得分:5)

在执行期间跳过任意数量的行:

[Current Position -- in GDB] Line N
.......... // Lines To Skip
..........
..........
[Line To Execute - After Jumping] Line M

在M行放置一个断点:

gdb$b M

跳转到M行:

gdb$jump M