gdb 调试时指定跳到第几行

转自:http://www.toptip.ca/2010/06/gdb-skip-instructions-or-lines-while.html


假设要从当前位置(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

也可以


展开阅读全文

没有更多推荐了,返回首页