linux:如何生成核心文件?

发布于 2024-11-05 16:15:56 字数 268 浏览 4 评论 0原文

我使用的是 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

神魇的王 2024-11-12 16:15:56
ulimit -c unlimited

有关启用核心转储的更多信息此处

编辑:

好的,我明白问题所在了。您的核心文件限制太低。 999 字节(按照您的设置)是不够的。将其增加到合理的程度。无限是最好的参数。

ulimit -c unlimited

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.

情绪少女 2024-11-12 16:15:56

使用带有 -c 标志的 ulimit 命令来控制允许的核心文件的最大大小。

Use the ulimit command with the -c flag to control the maximum size of core file you want to allow.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文