归档
善良比聪明更重要
06
24
GDB 实战:定位多线程死锁 GDB 实战:定位多线程死锁
本文用一个「双线程、双互斥锁、加锁顺序相反」的最小示例,演示如何用 gdb attach 定位程序死锁。死锁是并发编程里最棘手的问题之一,通过这个例子可以掌握一套通用的分析思路:先看线程与栈回溯(backtrace),再顺着栈找到等待的锁,
2021-06-24
12
05
31
19
07
04
25
13
01
GDB 变量查看:print、display 与 watch GDB 变量查看:print、display 与 watch
前言在启动调试以及设置断点之后,就到了我们非常关键的一步——查看变量。GDB 调试最大的目的之一就是走查代码,查看运行结果是否符合预期。既然如此,我们就不得不了解一些查看各种类型变量的方法,以帮助我们进一步定位问题。 准备工作本文辅助说明程
2021-04-01
03
20
GDB 常用命令速查 GDB 常用命令速查
gdb 是一个在 UNIX 环境下的命令行调试工具。如果需要使用 gdb 调试程序,请在 gcc 时加上 -g 选项。下面的命令部分是简化版,比如使用 l 代替 list 等等。 1. 基本命令1)进入GDB: # gdb test tes
2021-03-20
08
GDB 调试基础:启动、断点与单步执行 GDB 调试基础:启动、断点与单步执行
gdb 是一个强大的命令行调试工具,下面的内容按照调试一个程序的完整流程展开:启动程序、设置断点、单步执行、查看状态,直到定位问题。 在GDB中运行程序一、启动程序如果在启动 gdb 时没有指明程序,可以使用命令 file 或 exec-f
2021-03-08
02
24
程序调试工具箱:GDB 入门与常用分析工具 程序调试工具箱:GDB 入门与常用分析工具
GDB 是 GNU 发布的、运行在 UNIX/Linux 下的命令行调试器,也是 Linux 下 C/C++ 程序员必不可少的工具。它的命令很多,但日常调试只需掌握其中约十个。本文先从一个完整的调试过程讲起,再延伸介绍 pstack、str
2021-02-24
12
GDB 查看版本信息 GDB 查看版本信息
技巧在向 GDB 官方或社区报告 bug、查阅文档确认当前版本是否支持某个特性时,都需要先弄清楚自己所使用的 GDB 版本。使用 gdb 时,如果想查看 gdb 版本信息,可以使用 show version 命令: (gdb) show v
2021-02-12
16 / 24