Linux调试器GDB和CGDB的使用指南
GDB (GNU Debugger) 和 CGDB (Curses-based GNU Debugger) 是Linux下强大的代码调试工具,用于查找和修复程序中的错误。以下是它们的主要使用方法:GDB基础使用1. 启动GDB
gdb [可执行文件]或者先启动gdb再加载程序:
gdb
(gdb) file [可执行文件]2. 常用命令
命令缩写说明
runr开始执行程序
breakb设置断点
continuec继续执行到下一个断点
nextn单步执行(不进入函数)
steps单步执行(进入函数)
printp打印变量值
backtracebt显示调用栈
quitq退出GDB
listl显示源代码
info breakpointsi b查看断点信息
deleted删除断点
3. 断点设置示例
b main # 在main函数设置断点
b 10 # 在第10行设置断点
b file.c:15 # 在file.c的第15行设置断点
b func if x==5# 条件断点,当x等于5时在func处中断4. 查看和修改变量
p variable # 打印变量值
p *ptr # 打印指针指向的值
p/x variable # 以十六进制格式打印变量
set var=value # 修改变量值CGDB增强功能CGDB是GDB的终端界面增强版,提供了源代码窗口和命令窗口分离的界面。1. 启动CGDB
cgdb [可执行文件]
2. CGDB特有功能
[*]分屏界面:上部显示源代码,下部是GDB命令窗口
[*]快捷键操作:
[*]ESC:切换到代码窗口
[*]i:切换回命令窗口
[*]空格:设置/取消断点
[*]/:搜索源代码
[*]F7:显示上一个断点
[*]F8:显示下一个断点
3. 优势
[*]直观的源代码查看
[*]无需记忆所有GDB命令即可进行基本调试
[*]保留完整的GDB功能
高级调试技巧
1.多线程调试:
info threads # 查看线程
thread # 切换到指定线程2.观察点:
watch variable # 变量改变时中断
rwatch variable # 变量被读取时中断3.核心转储分析:
gdb [可执行文件] [核心文件]4.远程调试:
target remote :5.调试运行中的进程:
gdb -p
页:
[1]