GDB是一个调试器,可以允许你在程序运行的时候检查里面到底发生了什么
GDB使用方法:
首先编译可执行程序的时候需要加上-g参数,例如
gcc -g test.c -o test #编译时生成debug有关的程序信
随后进入调试
gdb test
//相关命令
r //全速运行//run
q //退出GDB//quit
l //查看源代码//list
b //增加断点//break
i //查看//info//i b//查看断电的情况
p //打印相关变量//printf//p arr[0] 打印arr[0]的值//p &arr[0] 打印arr[0]的地址
s //进入断点函数//step
n //单步执行
c //运行到断点函数
GDB小技巧:
1、在gdb内可以使用shell命令
shell ls//查看当前路径文件
shell cat test.c//查看test.c文件内容
2、日志功能
set logging on//设置日志功能
调试core文件:
core文件:当程序崩溃或接收到某些信号而异常终止时,操作系统自动创建的一种文件
core文件比较大 ,不会默认生成
ulimit -c unlimited//打开生成core文件
gcc -g test.c//打开core限制后编译.c文件会自动生成core文件
gdb ./a.out core//运行core文件,会自动找到错误语句
调试正在运行的文件:
gcc -g test.c
./a.out &//程序后台运行
gdb -p <pid>