linux:如何生成核心文件?
我使用的是 Ubuntu 10.04。我运行“ulimit -c 999”,然后编译并执行(gcc test.c && ./a.out
)这个小应用程序:
#include <signal.h>
int main( void )
{
raise( SIGSEGV );
return 0;
}
尽管这确实打印了“分段错误”消息,我没有看到核心文件。我错过了什么导致无法生成核心文件?
I'm using Ubuntu 10.04. I run "ulimit -c 999" then I compile and execute (gcc test.c && ./a.out
) this tiny app:
#include <signal.h>
int main( void )
{
raise( SIGSEGV );
return 0;
}
Even though this does print a "Segmentation fault" message, I don't see a core file. What have I missed that is preventing the core file from being generated?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
有关启用核心转储的更多信息此处
编辑:
好的,我明白问题所在了。您的核心文件限制太低。 999 字节(按照您的设置)是不够的。将其增加到合理的程度。无限是最好的参数。
More about enabling core dumps here
EDIT:
Ok, I see what is the problem. Your core file limit is too low. 999 bytes (as you set it) is not enough. Increase it to something reasonable. unlimited is the best parameter.
使用带有
-c
标志的ulimit
命令来控制允许的核心文件的最大大小。Use the
ulimit
command with the-c
flag to control the maximum size of core file you want to allow.