gdb多线程调试


首先编译文件为调试版本,也就是在编译文件指令的末尾加上 -g。调试版的文件仍然是二进制可执行文件,可以用来运行,可是不是调试版的文件不可以用来调试。

例如 :g++ -o mainmain.cpp -g  编译成调试文件     main 为调试文件

 

开始调试  输入指令 gdb main    

运行后会出现很多奇奇怪怪的东西,不用在意是啥

 

加断点

在你需要让程序暂停运行的地方加上断点

一般用法:b 文件名:行数            b 文件名:函数名

例如:  bmain.cpp:15                  bmain.cpp:fun(int)  

 (文件名和一般函数名用table键补齐,不要自己敲)

 

运行

r main              如果还有参数,也在这里写 例如: r main 127.0.0.16000 3     run

 

打印目前运行地方的代码  L  (小写)                                           list

 

运行到下一行,遇到函数不进入函数    n                                       next

 

运行到下一个断点   c                                                                                   continue

 

遇到函数,进入函数 s     或者在函数内加断点                                 step

 

跳出函数 f                                                                                       finish

 

输出变量值    p+变量名                                                    printf

 

线程调试

在多线程启动之后,输入info threads    打印出目前线程的信息和编号。

输入 t  1 切换到线程1    t  2切换到线程2……

 

退出  q

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值