linux下一建开启coreDump 功能 setCoreDump.sh

该文介绍了如何在Linux系统中设置无限制的core文件大小,并通过修改PAM配置和bashrc文件确保设置生效。同时,针对Ros环境,展示了在Cmakelists.txt中调整编译选项以生成core文件,并使用gdb进行调试,包括如何查看core文件的回溯信息来定位程序崩溃的行号。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#!/bin/sh
echo "set core dump start "
echo "*               soft    core           unlimited" >> /etc/security/limits.conf
echo "*               hard    core           unlimited" >> /etc/security/limits.conf

echo "session required pam_limits.so" >> /etc/pam.d/common-session
echo "session required pam_limits.so" >> /etc/pam.d/common-session-noninteractive
echo "ulimit -c unlimited" >> ~/.bashrc
ulimit -a
echo core-%e-%p-%t | sudo tee /proc/sys/kernel/core_pattern 

echo "set finish: use test  ulimit -a "
 

ros下开启core文件,在cmakelist.txt里面增加字段

# ros open core dump 
SET(CMAKE_BUILD_TYPE "Debug")  
SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb")
SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")

当生成core文件时,使用gdp进行回溯

//默认生成路径:输入可执行文件运行命令的同一路径下
//默认生成名字:默认命名为core。新的core文件会覆盖旧的core文件(例如:core-agv_navigate_no-40086-1681713696)
//gdb App  core
//gdb: bt  #回溯 第一个显示的行3103即是崩溃的行
//#2  0x76a60654 in InitAGVCore (nStep=11) at ../../../../AgvNavigate/Kernel.cpp:3103
//gdb ./devel/lib/agv_navigate/agv_navigate_node  ~/.ros/core-agv_navigate_no-333528-1673057645
//https://blog.youkuaiyun.com/jiesunliu3215/article/details/128588294

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

#君#

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值