GDB
GDB
GDB是一个由GNU开源组织发布的、Unix/Linux操作系统下的、基于命令行的的程序调试工具
主要用于方面
- 启动你的程序,按照定义的要求运行程序
- 让被调试的程序在所指定的断点处停住(断点可以是条件表达式)
- 当程序停住时,可检查此时你程序中所发生的事
- 可以改变你的程序,修正一个BUG产生的影响,从而测试其他BUG
调试对象
GDB主要来调试C/C++语言写的程序,加上-g
选项,会保留代码的文字信息,便于调试
cc -g hello.c -o hello
g++ -g hello.cpp -o hello
在上面的命令行中,参数-o
指定编译生成的可执行文件hello
,参数-g
表示将源代码信息编译到可执行文件
如果不使用参数-g
,会给后面的GDB调试造成不便,只能是汇编代码级别的调试/跟踪,没有源代码信息
启动 GDB
-
gdb program
program
也就是执行文件,例如hello.c
编译的可执行文件hello
-
gdb program core
用
gdb
同时调试一个运行程序和 core 文件,core
是程序非法执行后core dump
后产生的文件 -
gdb pid
-
如果你的程序是一个服务程序,那么你可以指定这个服务程序运行时的进程
ID
,gdb
会自动attach
,并调试 -
可用
detach
来取消挂接的进程
-