如有错误,欢迎指正,谢谢!
目录
一、GDB简介
1、什么是GDB
GDB : GNU Debugger,是GNU工程为GNU操作系统开发的
调试器,但它的使用不局限于GNU操作系统, GDB可以运行
在UNIX、Linux甚至Microsoft Windows。
2、我们能用GDB做什么
能设置断点使程序停住,从而观察变量的变化以及函数的执行情况,还可以跳过某些函数来查错
二、GDB的使用
1、与GCC配合使用,输出调试信息
gcc –g –o main main.c
用gdb调试时,必须要有调试信息,通过上述命令就可以给该程序添加调试信息
2、GDB启动方式
gdb 程序名
注意此处的程序必须是
3、GDB参数
参数 | 作用 |
---|---|
file | 装入想要调试的可执行文件 |
kill | 终止正在调试的程序 |
list | 列出产生执行文件的源代码的一部分 |
next | 执行一行源代码但不进入函数内部 |
step | 执行一行源代码而且进入函数内部 |
run | 执行当前被调试的程序 |
c | 继续运行程序 |
quit | 终止gdb |
watch | 使你能监视一个变量的值而不管它何时被改变 |
backtrace | 栈跟踪,查出代码被谁调用 |
查看变量的值 | |
make | 使你能不退出gdb就可以重新产生可执行文件 |
shell | 使你能不离开gdb就执行UNIX shell命令 |
whatis | 显示变量或函数类型 |
break | 在代码里设断点,这将使程序执行到这里时被挂起 |
info break | 显示当前断点清单,包括到达断点处的次数等 |
info files | 显示被调试文件的详细信息 |
info func | 显示所有的函数名称 |
info local | 显示当函数中的局部变量信息 |
info prog | 显示被调试程序的执行状态 |
delete [n] | 删除第n个断点 |
disable[n] | 关闭第n个断点 |
enable[n] | 开启第n个断点 |
ptype | 显示结构定义 |
set variable | 设置变量的值 |
call name(args) | 调用并执行名为name,参数为args的函数 |
Finish | 终止当前函数并输出返回值 |
return value | 停止当前函数并返回value给调用者 |
三、实例练习(一)
我们先使用该程序作为例子
<