首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未生成核心转储

未生成核心转储
EN

Stack Overflow用户
提问于 2011-07-24 19:49:16
回答 3查看 5.9K关注 0票数 1

我的工作是一台PC运行CentOS作为其操作系统。我还在嵌入式操作系统上工作。

在我的PC上,我成功地在分段错误上创建了一个核心转储文件,方法是更改:

  1. 岩心模式
  2. core_uses_pid
  3. 无限-c
  4. sysctl -p

但是在嵌入式系统上没有任何工作-核心转储是不生成的!可能是什么原因?

如果有关系,我想要转储的应用程序是用C++编写的。

如何才能在嵌入式系统上获得核心转储?

我做了一个小的崩溃程序,核心转储是从崩溃程序生成的,但不是为我所需要的!所以问题不在O.S上,而是在具体的计划上。我发现在将-g可执行文件/库文件发送到嵌入式系统之前,我们会删除它们。我对我的崩溃程序也做了同样的操作,而这个程序仍然产生核心转储。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-07-24 20:04:42

您确定您的嵌入式系统上的内核支持核心转储吗?可以在内核构建(参考)中禁用该特性,在这种情况下,您可能不得不使用类似于谷歌-核心服务器的东西来伪造它。

票数 4
EN

Stack Overflow用户

发布于 2011-07-28 12:50:55

好的,

当我在电脑上检查程序时,我犯了一个小错误,我用的是另一个信号,而不是嵌入式系统。对于自定义信号处理程序来说,为什么没有核心转储,仍然存在一个问题。解决方案在其中一个链接中:

不幸的是,如果应用程序配备了自定义的信号处理程序,则不会生成核心转储,因为它只由默认的信号处理程序生成。如果应用程序具有自定义信号处理程序,请在开始调试之前禁用它,否则将不会生成核心转储。Internet中的一些源提到,在异常发生后,恢复信号处理程序中的默认信号处理程序,并在回送中再次发送信号处理程序可能会触发核心转储。在我所做的测试中,它确实生成了一个核心转储,但我在核心转储中看到的唯一东西是我的处理程序执行的代码(即对信号和杀死的调用),所以这对我没有帮助。也许在其他平台上,这个技巧效果更好。

在我的平台上,它可以工作-另一个解决方案是在信号处理程序中生成核心转储。我听说gcore可以做到这一点,而使用windows核,我得到了一个不兼容错误。

票数 0
EN

Stack Overflow用户

发布于 2011-07-24 20:04:40

我看到了两个可能的信息来源,它们都指向/etc/security/limits.conf文件:

Linux禁用核心转储 -是的,我知道您希望启用核心转储,但这可能有助于反向启用核心转储的CentOS -另一个指向limits.conf的源代码。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6809227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档