一份简洁的GDB使用小结
Prepare gdb
1.安装GDB
yum install gdb
2.查看安装
gdb --version
ubuntu中查看是否安装gdb软件包
rpm -qa |grep gdb
QuickStart
1.写程序 vim test.cpp
#include<iostream>
using namespace std;
int main(){
int arr[5]={1,2,3,4,5};
for(int i=0;i<5;i++){
cout<<arr[i]<<endl;
}
return 0;
}
备份cp test.c test1.c
2.编译 g++ test.cpp
3.g++ -g test.cpp
gdb a.out进入gdb
list查看代码
b 15在15行打断点
info b 查看断点
r run 运行
n next 下一步
s step 进入程序中下一个可执行函数
f finish
p print一个变量
quit
小技巧
1.shell 调用终端命令
如 shell ls
2.日志功能
set logging on
3.watchpoint
查看变量变还是没变
watch &i 不断n,若i变化会提示
info watchpoints //查看哪几个点
调试core文件
程序由于各种异常或者bug导致在运行过程中异常退出或者中止,并且在满足一定条件下会产生一个叫做core的文件。
若不生成,查看ulimit命令手册
man ulimit
by reaserch ,we know ulimit -ato watch if the core generated allowed;
if not , ulimit -c unlimited
g++ -g /a.out
ls
gdb a.out core.xxxx调试
其他照旧
调试正在运行进程
a.out &//后台运行,返回一个pid
gdb -p pid 其余照旧

浙公网安备 33010602011771号