返回列表 发布新帖
查看: 13|回复: 0

Linux调试器GDB和CGDB的使用指南

发表于 3 天前 | 查看全部 |阅读模式

这里或许是互联网从业者的最后一片净土,随客社区期待您的加入!

您需要 登录 才可以下载或查看,没有账号?立即注册

×
GDB (GNU Debugger) 和 CGDB (Curses-based GNU Debugger) 是Linux下强大的代码调试工具,用于查找和修复程序中的错误。以下是它们的主要使用方法:
GDB基础使用1. 启动GDB
  1. gdb [可执行文件]
复制代码
或者先启动gdb再加载程序:
  1. gdb
  2. (gdb) file [可执行文件]
复制代码
2. 常用命令


[td]
命令
缩写
说明
runr开始执行程序
breakb设置断点
continuec继续执行到下一个断点
nextn单步执行(不进入函数)
steps单步执行(进入函数)
printp打印变量值
backtracebt显示调用栈
quitq退出GDB
listl显示源代码
info breakpointsi b查看断点信息
deleted删除断点
3. 断点设置示例
  1. b main          # 在main函数设置断点
  2. b 10            # 在第10行设置断点
  3. b file.c:15     # 在file.c的第15行设置断点
  4. b func if x==5  # 条件断点,当x等于5时在func处中断
复制代码
4. 查看和修改变量
  1. p variable      # 打印变量值
  2. p *ptr          # 打印指针指向的值
  3. p/x variable    # 以十六进制格式打印变量
  4. set var=value   # 修改变量值
复制代码
CGDB增强功能
CGDB是GDB的终端界面增强版,提供了源代码窗口和命令窗口分离的界面。
1. 启动CGDB
  1. cgdb [可执行文件]
复制代码


2. CGDB特有功能
  • 分屏界面:上部显示源代码,下部是GDB命令窗口
  • 快捷键操作
    • ESC:切换到代码窗口
    • i:切换回命令窗口
    • 空格:设置/取消断点
    • /:搜索源代码
    • F7:显示上一个断点
    • F8:显示下一个断点


3. 优势
  • 直观的源代码查看
  • 无需记忆所有GDB命令即可进行基本调试
  • 保留完整的GDB功能

高级调试技巧
1.多线程调试
  1. info threads      # 查看线程
  2. thread [id]       # 切换到指定线程
复制代码
2.观察点
  1. watch variable    # 变量改变时中断
  2. rwatch variable   # 变量被读取时中断
复制代码
3.核心转储分析
  1. gdb [可执行文件] [核心文件]
复制代码
4.远程调试
  1. target remote [host]:[port]
复制代码
5.调试运行中的进程
  1. gdb -p [pid]
复制代码



您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2001-2025 Suike Tech All Rights Reserved. 随客交流社区 (备案号:津ICP备19010126号) |Processed in 0.104152 second(s), 8 queries , Gzip On, MemCached On.
关灯 在本版发帖返回顶部
快速回复 返回顶部 返回列表