coredump gdb 调试_GDB 调试Coredump问题

1. 生成带调试信息的程序

直接用g++编译:

$ g++ -g -ggdb -o test test.cpp

如果用CMake编译工程,则使用选项CMAKE_BUILD_TYPE=Debug:

$ cmake -DCMAKE_BUILD_TYPE=Debug ../test

这样做g++编译时就会包含选项-g。如果要同时包含-ggdb选项,可以设置变量CMAKE_CXX_FLAGS_DEBUG。

SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb")

2. 设置Linux生成Core

2.1 设置core文件的大小

$ ulimit -c unlimited

2.2 设置core文件的名称

$ echo core-%e-%p > /proc/sys/kernel/core_pattern

%e - insert coredumping executable name into filename 添加导致产生core的命令名

%p - insert pid into filename 添加pid(进程id)

3. 生成core文件

运行程序,生成core文件。下面的命令强制生成core文件:

$ kill -s SIGSEGV

4. 调试Core

4.1 加载程序和core文件

$ gdb

或者进入gdb后

(gdb) file

(gdb) core

file从文件exec加载symbol和executable, core从core中加载cored

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值