GDB调试

1、ulimit -c unlimited开启coredump功能

永久修改

1/etc/bash.bashrc 添加ulimit -c unlimited

2source /etc/bash.bashrc生效最新修改文件

2、设置文件生成位置

sudo bash -c “echo /home/dir/core.%e.%p >  /proc/sys/kernel/core_pattern”

%%单个%字符

%p所dump进程的进程ID

%u所dump进程的实际用户ID

%g所dump进程的实际组ID

%s导致本次core dump的信号

%t core dump的时间 (由1970年1月1日计起的秒数)

%h主机名

%e程序文件名

3、GDB调试

(1)编译带调试信息的可执行文件

        gcc -g xxx.c -o xxxx

方法一:如果编译未加-g 可以尝试disassemble反汇编,根据汇编语句反推是哪个函数

方法二:

  1. 同版本编译一个带-g参数的可执行文件
  2. 创建调试符号文件:objcopy --only-keep-debug my-object my-object.debug(my-object可以是可执行文件也可以是动态链接库)
  3. strip --strip-debug my-object(此步骤只是学习用,在不想要符号表的时候可以通过此命令去除符号表)
  4. objcopy --add-gnu-debuglink=my-object.dbg my-object(此步骤只是学习,此处将可执行文件链接到符号表文件)
  5. gdb my-object core_xxxxxx(加载coredump)
  6. symbol-file my-object.debug(加载符号表文件)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值