先查看内存转储的大小限制:
ulimit -c
返回的结果是以512 bytes为单位的。
如果没有返回结果,说明设置为0,需要进行手动设置:ulimit -c unlimited
测试代码:
#include <stdio.h>
void foo()
{
int *ptr = 0;
*ptr = 7;
}
int main()
{
foo();
return 0;
}
运行会报错如下:<
本文介绍了如何检查和设置C++核心转储的大小限制,以及当程序崩溃时如何使用gdb进行调试。通过分析核心转储文件,可以定位到问题出在代码的第5行,并通过`backtrace`命令查看调用堆栈,帮助理解错误发生的原因。
先查看内存转储的大小限制:
ulimit -c
返回的结果是以512 bytes为单位的。
如果没有返回结果,说明设置为0,需要进行手动设置:ulimit -c unlimited
测试代码:
#include <stdio.h>
void foo()
{
int *ptr = 0;
*ptr = 7;
}
int main()
{
foo();
return 0;
}
运行会报错如下:<
1260
291
340

被折叠的 条评论
为什么被折叠?