gdb调试coredump,如何设置coredump大小

gdb如何调试coredump文件:

gdb 可执行文件路径 coredump文件路径

输入bt,或bt full,或者where查看调用栈信息,以及代码在哪里出错

注意:

1.编译程序时,添加-g选项;

2.看环境上的生成coredump是否打开

查看coredump路径:

        1.cat /proc/sys/kernel/core_pattern

        2./sbin/sysctl kernel.core_pattern

查看环境的生成coredump是否打开:

ulimit -a,第一行

设置:

        limit -c unlimited 不限制生成core文件大小
        ulimit -c 0 关闭core文件生成开关
        ulimit -c 1024 限定生成core文件的大小为1024

为特定进程设置coredump限制

如果进程的coredump设置的过小,会导致产生的coredump产生截断现象,通过gdb调试的时候会提示错误。

设置coredump大小的有两种方式:在代码中调用setrlimit,以及通过prlimit命令进行修改

a.通过代码设置在代码中,通过调用setrlimit设置程序的coredump大小,

RLIMIT_CORE is defined in header sys/resource.h. Limit on size of core dump file.

RLIMIT_CORE can be used in the following way:

if (setrlimit(RLIMIT_CORE, &coredump_limits) != 0) {}

void setlimits(void) {
  struct rlimit coredump_limits, thread_limits, mem_limits, cpu_limits;
  coredump_limits.rlim_cur = coredump_limits.rlim_max = 0;
  if (setrlimit(RLIMIT_CORE, &coredump_limits) != 0) {
    err(ERR_CODE, "Couldn't set core dump limits\n");
  }

参考:C if (setrlimit(RLIMIT_CORE, &coredump_limits) != 0) {

b. 通过prlimit进行设置,

prlimit -p 进程id:查看指定进程的coredump限制

设置:

        prlimit -p $(pidof xxx_process) -c 设置coredump字节数

prlimit的使用:

prlimit(1) - Linux manual page

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值