#!/bin/sh
echo "set core dump start "
echo "* soft core unlimited" >> /etc/security/limits.conf
echo "* hard core unlimited" >> /etc/security/limits.confecho "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_patternecho "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.csdn.net/jiesunliu3215/article/details/128588294