GDB调试:gdb调试的是可执行文件,在编译时加入-g ,告诉编译器在编译时加入调试信息,这样gdb才能调试这个被编译的文件,同时使用-Wall显示所有的警告信息。 g++ -g test.cpp -o test.out -Wall
GDB命令格式:
| 命令 | 功能 | 实例 | 
|---|---|---|
| gdb | 启动调试 | gdb test.out | 
| quit/q | 退出gdb,结束调试 | quit/q | 
| set/show args | 设置/获取程序参数 | set args 100show args | 
| set/show listsize | 设置/获取list显示的行数 | set listsize 100show listsize | 
| list/l | 查看程序源代码 | l 5,10:显示5到10行的代码l test.cpp:5, 10: 显示源文件5到10行的代码,在调试多个文件时使用l get_sum: 显示get_sum函数周围的代码l test.cpp get_sum: 显示源文件get_sum函数周围的代码,在调试多个文件时使用 | 
| help | 查看帮助信息 | help list/all | 
| break/b | 设置断点 | b 7//在第七行设置断点b get_sum//以函数名设置断点b 行号或者函数名 if 条件以条件表达式设置断点 | 
| info/i break/b | 查看断点信息 | i b | 
| start/run | 运行GDB程序 | start//程序停在第一行run//遇到断点则停止 | 
| continue/c | 继续运行,下个断点停 | – | 
| next/n | 继续执行下一条语句 ,会把函数当作一条语句执行,即不会进入函数体 | – | 
| step/s | 继续执行下一条语句,会跟踪进入函数,一次一条的执行函数内的代码 | – | 
| finish | 跳出循环体 | – | 
| print/p | 打印变量值 | p 变量名 | 
| ptype | 打印变量类型 | ptype 变量名 |