码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • gdb调试知识积累——真·详解


    1、info threads

    命令功能:查看程序的线程数量及其详细信息

    2、sudo gdb attach 进程号

    该命令可以调试目标进程号的程序。常用于多线程程序卡死了,但是不知道卡在了哪里。此时,使用该命令进入gdb,然后再使用1、中的命令查看线程信息,就能够分析个大概了。

    注意使用这个命令的时机。得是程序已经运行起来了,然后你再用这个命令 突然杀进去调试。其实这都是废话,程序不运行起来哪里来的进程号??(注:使用ps -u命令查看进程号)

    第一次见到这个调试方法(指sudo gdb attach 进程号+info threads)是在写微型聊天室项目的时候。当时客户端程序卡死在一个地方,我自己用cout输出打法,试了好长时间,才大致明白问题出在哪了。然后教程上讲了这个方法。其实,本文的1、到4、全都是从这个例子里认识到的。

    3、bt

    命令功能:列出当前线程的调用堆栈。

    什么是线程的调用堆栈?我发现很多博客都写个打印调用堆栈,那啥是调用堆栈,都不解释一下,这和没写有啥区别?

    调用堆栈就是把程序里面函数的调用顺序 列成一个表,最后被调用的函数出现在最上方。bt命令就是列出了这样一张表,表的第一列就是当前线程最后调用的函数。

    用该命令可以一下就找到程序卡死的位置。

    记一篇文章,对bt列出的调用堆栈进行了深入剖析:https://blog.csdn.net/zhg598242449/article/details/7591123

    4、thread Id

    命令功能:切换想要调试的线程。通常在调试多线程程序时使用。

    这里的Id是1、中命令显示的Id并不是系统中真正的线程id,如下图所示:
    在这里插入图片描述注意红框中打了 * 的线程,表示该线程是当前正在调试的线程。使用thread 2命令切换线程后,打 * 的线程也变成了Id为2的线程。

    (还遇到啥比较好用的命令,再接着补充)

  • 相关阅读:
    1024之谜:解密计算机科学中的神秘数字
    Linux 常用命令
    机器学习实战(1)——概览
    spark封神之路(3)-spark运行架构
    react文件预览插件react-file-viewer
    GEO生信数据挖掘(一)数据集下载和初步观察
    Git 版本控制:构建高效协作和开发流程的最佳实践
    机器学习评价指标(分类、目标检测)
    python matplotlib教程:A Brief matplotlib API Primer
    芯科科技与Arduino携手推动Matter普及化
  • 原文地址:https://blog.csdn.net/m0_51551385/article/details/127442664
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号