gdb常用调试命令总结

run(r) 运行

list(l) 列出源代码

break(b) 设置断点

info break(i b) 查看断点信息

continue(c) 继续程序运行,直到下一个断点

watch 设置观察点

step(s) 单步跟踪,类似于VC中的step in

next(n) 单步跟踪,类似于VC中的step out

finish 退出运行程序,直到当前函数返回

until(u) 退出循环

print(p) 查看运行时的变量以及表达式


用gdb调试带参数的main函数,run+Arg1+Arg2+Arg3...


用gdb调试多线程:

断点(BreakPoint)

  • 设置断点:(threadno 指定了线程的 ID,注意,这个 ID 是 gdb 分配的,可以通过 "info threads" 命令来查看正在运行程序中的线程信息)
    • break thread <threadno> -- break命令没有参数时,表示在下一条指令处停住.
    • break +offset thread <threadno> -- 在当前行号的后面的 offset 行停住.(offiset 为自然数)
    • break -offset thread <threadno> -- 在当前行号的前面的 offset 行停住.(offiset 为自然数)
    • break <linenum> thread <threadno> -- 在指定行号停住.
    • break filename:linenum thread <threadno> -- 在源文件filename的linenum行处停住.
    • break <function> thread <threadno> -- 在进入指定函数时停住.
    • break filename:function thread <threadno> --在源文件filename的function函数的入口处停住.
    • break *address -- 在程序运行的内存地址处停住.
    • break ... thread <threadno> if <condition> -- ...可以是上述的参数,condition表示条件,在条件成立时停住.比如在循环境体中,可以设置break if i=100,表示当i为100时停住程序.
    • tbreak -- 设置只停止一次的断点.用法和 break 类似
  • 查看断点
    • info breakpoints [n]
    • info break [n]

怎么列举当前的线程?

info threads

在断点停下后.怎么切换到其他线程去

thread n

怎么指定在某个断点停下,当在某个线程时.

break 30 thread 1


更详细查看:

http://www.cnblogs.com/kzloser/archive/2012/09/21/2697185.html


http://www.cnblogs.com/syncg/archive/2012/12/26/2834503.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值