前提:在gcc编译时,要输入-g选项;
步骤:
1.gdb进入GDB调试模式
2.file 可执行文件名
3.pwd显示当前目录
4.l列出源码(前提是编译时选择了-g选项)
5.b 行号:设置断点;
tb 行号 :设置临时性断点,与断点不同,临时断点只在第一次执行时起作用
6.r:开始执行
单步执行:n(TIPs1:可以按回车重复上一次操作,在单步调试时这个feature很有用)。
单步进入:s
继续执行:c(走到下一个断点处)
7.bt:查看当前函数运行的堆栈
8.info 参数:查看相关的信息:例如:info break,info watchpoints
9.watch 变量名:查看变量值
10.finish :退出当前函数
11.quit:退出调试
12.delete breakpoints 2:删除第二个断点
13.disable/enable breakpoints 3 :禁用/启用第三个断点
14. :显示当前栈及其变量
以下内容为转载:
/**********************************************************************************
gcc -g main.c //在目标文件加入源代码的信息
gdb a.out
(gdb) start //开始调试
(gdb) n //一条一条执行
(gdb) step/s //执行下一条,如果函数进入函数
(gdb) backtrace/bt //查看函数调用栈帧
(gdb) info/i locals //查看当前栈帧局部变量
(gdb) /f //选择栈帧,再查看局部变量
(gdb) print/p //打印变量的值
(gdb) finish //运行到当前函数返回
(gdb) set var sum=0 //修改变量值
(gdb) list/l 行号或函数名 //列出源码
(gdb) display/undisplay sum //每次停下显示变量的值/取消跟踪
(gdb) break/b 行号或函数名 //设置断点
(gdb) continue/c //连续运行
(gdb) info/i breakpoints //查看已经设置的断点
(gdb) delete breakpoints 2 //删除某个断点
(gdb) disable/enable breakpoints 3 //禁用/启用某个断点
(gdb) break 9 if sum != 0 //满足条件才激活断点
(gdb) run/r //重新从程序开头连续执行
(gdb) watch input[4] //设置观察点
(gdb) info/i watchpoints //查看设置的观察点
(gdb) x/7b input //打印存储器内容,b--每个字节一组,7--7组
(gdb) disassemble //反汇编当前函数或指定函数
(gdb) si // 一条指令一条指令调试 而 s 是一行一行代码
(gdb) info registers // 显示所有寄存器的当前值
(gdb) x/20 $esp //查看内存中开始的20个数
*********************************************************************************/
继续阅读与本文标签相同的文章
24-Python函数4
-
一眼望去 都是中国好CP的形状
2026-05-19栏目: 教程
-
前端开发深水区讨论
2026-05-19栏目: 教程
-
精读《使用 css 变量生成颜色主题》
2026-05-19栏目: 教程
-
震撼!全球首台“智慧旅游黑科技车”现身井陉……
2026-05-19栏目: 教程
-
科技产品没有时尚力?搜狗AI录音笔,要科技更要时尚
2026-05-19栏目: 教程
