假设要从当前位置(main.c, ln 18)跳到 main.c, ln 21,忽略中间的 main.c, ln 19 ~ ln 20,可以这样做:(jump 缩写是 j)
(gdb) b 21
(gdb) j 21
在 (gdb) c 之后,gdb 会跳过 ln 19 ~ ln 20,停在 ln 21
注意:
1)要在 ln 21 设置断点,否则 gdb 会在 jump 到 ln 21 之后继续执行,直到下一个断点或程序结束
2)如果要忽略的是一个函数调用,比如像下面这样,运行到 ln 10,要跳到 ln 12
10 i++;
11 i = foo();
12 i--;
可以:
(gdb) step
(gdb) return
即,进入 foo(),然后直接返回。但是,要小心 foo() 的返回值。如果这样做不方便的话,采用上面的方法,即
(gdb) b12
(gdb) j 12
也可以