Ale*_*x F 79 c++ linux crash-dumps
我的程序是用C++编写的.用gcc编译,使用-g3 -O0 -ggdb标志.当它崩溃时,我想打开它的核心转储.它是创建核心转储文件,还是我需要在程序本身或执行它的计算机上执行某些操作以启用核心转储?创建此文件的位置,名称是什么?
Ser*_*kov 104
你需要设置ulimit -c.如果此参数的值为0,则不会创建coredump文件.这样做:ulimit -c unlimited并检查一切是否正确ulimit -a.当应用程序完成不适当的操作时,会创建coredump文件.我系统上的文件名是core.<process-pid-here>.
小智 47
你可以在程序中这样做:
#include <sys/resource.h>
// core dumps may be disallowed by parent of this process; change that
struct rlimit core_limits;
core_limits.rlim_cur = core_limits.rlim_max = RLIM_INFINITY;
setrlimit(RLIMIT_CORE, &core_limits);
Run Code Online (Sandbox Code Playgroud)