Linux C 中的 GDB 调试使用:
1、GDB 的主要功能:
1]启动被调试程序
2]让被调试的程序在指定的位置停住
3]当程序被停住时,可以检查程序状态(如变量的值)
2、检查 GDB 版本:
gdb --version
3、下载 GDB:
sudo apt-get install gdb
4、编译产生可调试的可执行文件(编译一定要加 -g):
gcc -o app test.c -g
gcc -o app test.cpp -g
5、启动 GDB:
gdb app
gdb ---> file app
gdb program core //用 gdb 查看 core dump 文件,跟踪程序 core 的原因
gdb pid //用 gdb 调试已经开始运行的程序,指定 pid 即可
6、调试步骤(括号内为命令简写):
1] 命令帮助:
help [cmd]
2] 查看代码(一次只能查看 10 行):
list(l)
3] 设置断点:
break(b) 20 //20 行设置断点
break main //main 函数的入口处设置断点
break test.c:19 //在 test.c 文件的 19 行设置断点
break 5 if i=10 //当 i=10 时,第 5 行断点生效(文件中必须要有 i 变量)
查看断点:
info break
删除断点:
delete(d) 3 //删除第三个断点,而不是第三行断点
4] 运行程序(遇到断点停下来):
run(r)
5] 继续运行(遇到下一个断点停下来):
continue(c)
6] 单步运行(不进入子函数):
next(n)
7] 单步运行(进入子函数):
step(s)
8] 查看变量值:
print(p) i //查看当前 i 的值
9] 运行程序直到当前函数结束:
finish
10] 对指定变量进行监控:
watch i //对 i 变量进行监控
11] 查看函数信息:
call main //查看 main 函数的参数和返回值以及其所在虚拟空间的地址
call p //查看 p 所在虚拟空间的地址和值
7、退出 GDB:
quit(q)
1、GDB 的主要功能:
1]启动被调试程序
2]让被调试的程序在指定的位置停住
3]当程序被停住时,可以检查程序状态(如变量的值)
2、检查 GDB 版本:
gdb --version
3、下载 GDB:
sudo apt-get install gdb
4、编译产生可调试的可执行文件(编译一定要加 -g):
gcc -o app test.c -g
gcc -o app test.cpp -g
5、启动 GDB:
gdb app
gdb ---> file app
gdb program core //用 gdb 查看 core dump 文件,跟踪程序 core 的原因
gdb pid //用 gdb 调试已经开始运行的程序,指定 pid 即可
6、调试步骤(括号内为命令简写):
1] 命令帮助:
help [cmd]
2] 查看代码(一次只能查看 10 行):
list(l)
3] 设置断点:
break(b) 20 //20 行设置断点
break main //main 函数的入口处设置断点
break test.c:19 //在 test.c 文件的 19 行设置断点
break 5 if i=10 //当 i=10 时,第 5 行断点生效(文件中必须要有 i 变量)
查看断点:
info break
删除断点:
delete(d) 3 //删除第三个断点,而不是第三行断点
4] 运行程序(遇到断点停下来):
run(r)
5] 继续运行(遇到下一个断点停下来):
continue(c)
6] 单步运行(不进入子函数):
next(n)
7] 单步运行(进入子函数):
step(s)
8] 查看变量值:
print(p) i //查看当前 i 的值
9] 运行程序直到当前函数结束:
finish
10] 对指定变量进行监控:
watch i //对 i 变量进行监控
11] 查看函数信息:
call main //查看 main 函数的参数和返回值以及其所在虚拟空间的地址
call p //查看 p 所在虚拟空间的地址和值
7、退出 GDB:
quit(q)