使用GDB调试多线程实例详解

作者:lqh 时间:2021-02-15 09:16:36 

先写一段多线程程序。
使用GDB调试多线程实例详解

makefile 使用GDB调试多线程实例详解

加上 -g参数生成可调式信息, 可以进行调试。

pthread不是Linux下的默认的库,也就是在链接的时候,无法找到phread库中哥函数的入口地址,于是链接会失败。在gcc编译的时候,附加要加 -lpthread参数即可解决。

gdb test 进入调试

使用GDB调试多线程实例详解

需要调试的地方打下断点,run运行到断点处。

使用GDB调试多线程实例详解

r 运行到断点处,info thread可以查看被调试的线程。

使用GDB调试多线程实例详解

thread apply all bt 让所有线程打印堆栈信息
使用GDB调试多线程实例详解

set scheduler-locking off|on|step

在使用step或continue命令调试当前被调试线程的时候,其他线程也是同时执行的,如果我们只想要被调试的线程执行,而其他线程停止等待,那就要锁定要调试的线程,只让它运行。

off:不锁定任何线程,所有线程都执行。

on:只有当前被调试的线程会执行。

step:阻止其他线程在当前线程单步调试的时候抢占当前线程。只有当next、continue、util以及finish的时候,其他线程才会获得重新运行的。

show scheduler-locking:

这条命令是为了查看当前锁定线程的模式。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

来源:http://blog.csdn.net/qq_35116353/article/details/72931012

标签:GDB,多线程
0
投稿

猜你喜欢

  • 互联网营销 怎么从网站的seo迷茫中走出来

    2009-02-20 09:46:00
  • SMTP协议原始命令码和工作原理

    2010-03-16 18:50:00
  • 江礼坤:深度剖析网店推广与运营

    2009-05-08 09:40:00
  • 如何判断Linux系统安装在VMware上

    2022-02-22 10:53:55
  • 优化用户互动强化网站 推荐7款开源论坛系统

    2011-01-29 16:53:00
  • 草根创业三年磨一剑 香自苦寒

    2009-02-05 18:27:00
  • 帝国Ecms5.X PK 织梦Dedecms 5.X

    2008-04-22 18:18:00
  • apache开启.htaccess及.htaccess的使用方法

    2023-07-12 04:17:04
  • 我的E-Mail服务器为什么变慢了

    2007-03-29 11:35:00
  • 搜索引擎优化SEO十大忌讳

    2007-10-19 13:16:00
  • 解决win10家庭版VMware不能安装64位操作系统问题

    2023-06-01 08:16:19
  • 看看哪些站适合做Google Adsense

    2007-08-15 11:14:00
  • Discuz!7.0邀请注册功能详解

    2009-03-17 17:01:00
  • 帝国、PHPCMS及织梦对比(三):自定义URL规则

    2011-05-18 11:19:00
  • dedecms关键词长度修改统一方法

    2010-04-22 16:57:00
  • 阿里云Centos6.X发邮件遇到的各种问题

    2021-09-11 14:01:22
  • 如果用IP地址能访问到你的WP blog,请立即更新WordPress到2.6.5

    2008-11-26 12:22:00
  • 入门认识:典型邮件服务器

    2007-03-27 09:40:00
  • PHPCMS、帝国CMS及织梦对比(七)之自定义表单功能分析

    2011-08-26 12:50:33
  • 来看看怎么美化你的Google Adsense广告吧

    2007-08-15 10:46:00
  • asp之家 网站运营 m.aspxhome.com