插件窝 干货文章 Linux进程调试方法:gdb如何使用

Linux进程调试方法:gdb如何使用

断点 GDB 调试 设置    来源:    2025-05-07

GDB调试工具使用指南

GDB(GNU Debugger)是Linux下功能强大的程序调试工具,主要用于调试C/C++程序。以下是GDB的主要使用方法:

基本使用流程

  1. 编译程序时加入调试信息

    gcc -g program.c -o program
    

    -g选项会在可执行文件中加入调试信息

  2. 启动GDB

    gdb program
    
  3. 常用命令

基本调试命令

命令 简写 功能
run r 开始运行程序
break b 设置断点
continue c 继续执行到下一个断点
next n 单步执行(不进入函数)
step s 单步执行(进入函数)
print p 打印变量值
backtrace bt 查看调用栈
quit q 退出GDB

断点管理

  1. 设置断点

    b main          # 在main函数入口设置断点
    b 10            # 在第10行设置断点
    b file.c:15     # 在file.c的第15行设置断点
    b func_name     # 在指定函数处设置断点
    
  2. 查看断点

    info breakpoints
    
  3. 删除断点

    delete 1        # 删除编号为1的断点
    delete          # 删除所有断点
    

变量查看与修改

  1. 查看变量

    p variable      # 打印变量值
    p *ptr          # 打印指针指向的值
    p array[3]      # 打印数组元素
    
  2. 修改变量

    set var i=5     # 将变量i的值设为5
    
  3. 查看内存

    x/10xw &var     # 以16进制查看var开始的10个字(4字节)
    

    格式:x/[数量][格式][单位] 地址

高级功能

  1. 多线程调试

    info threads    # 查看所有线程
    thread 2        # 切换到2号线程
    
  2. 条件断点

    b 15 if i==5    # 当i等于5时在第15行中断
    
  3. 观察点

    watch var       # 当var被修改时中断
    
  4. 捕获异常

    catch throw     # 捕获所有抛出的异常
    
  5. 调试运行中的进程

    gdb -p PID      # 附加到正在运行的进程
    

实用技巧

  1. 显示源代码

    list            # 显示当前行附近的源代码
    list 20         # 显示第20行附近的源代码
    
  2. 设置命令参数

    set args arg1 arg2  # 设置程序运行参数
    
  3. 记录调试会话

    set logging on  # 开始记录到gdb.txt
    
  4. 自定义命令

    define mycmd
    > p var1
    > p var2
    > end
    

图形界面

GDB也有图形界面前端: - TUI模式:gdb -tui 或 Ctrl+X+A 切换 - cgdb:更强大的GDB前端 - DDD:数据可视化调试器

掌握这些基本命令后,你就可以高效地使用GDB进行程序调试了。