【转】gdb 调试时指定跳到第几行

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

也可以

posted @   habibah_chang  阅读(3442)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示