问题标签 [coredump]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
863 浏览

java - 避免 jvm 捕获 SEGV 和 hs_err_pid 生成

我有一个在某个点崩溃的 jni 库。我得到的是一个 hs_err_pid 文件

[报错时发生错误(打印本机堆栈),id 0xb]

此错误创建的内容和核心文件。因此,我想阻止 jvm 捕获这些信号,而让进程正常转储核心。平台 Debian/Linux、Java(TM) SE 运行时环境(内部版本 1.6.0_16-b01)。

0 投票
4 回答
5307 浏览

ruby - Ruby/Glibc coredump(双重释放或损坏)

我正在使用我自己用 Ruby 编写的分布式持续集成工具。它使用 Mike Perham 的“政治”的一个分支来分配任务。“politics”模块正在为 mDNS 部分使用线程。

我不时遇到一个我不明白的核心转储:

我在 Gentoo 上运行并使用“-gdbg”重建了 Ruby 和 Glibc,并关闭了条带化以获得有意义的核心:

唔???对我来说,这看起来完全是 Ruby 实习生。关于stackoverflow的其他“双重释放或损坏”问题,我已经看到线程可能是问题的一部分。

此外,问题不会发生在完全相同的位置。我有另一个更长的回溯,但崩溃也在其中,garbage_collect但路径略有不同:

有没有人建议如何隔离并解决这个问题?

0 投票
4 回答
1608 浏览

c++ - 崩溃的 C++ 应用程序(包括 ada dll)不会生成核心转储

如何在崩溃时获取包含加载的 ada 共享库的 C++ 应用程序以生成核心转储?

我有一个加载 ada 共享库的 C++ 应用程序,在 ada 代码中出现堆栈溢出错误,导致程序终止以及控制台输出:

即使您在启动应用程序之前发出了“ulimit -c unlimited”,也不会生成核心转储文件。

如果我向应用程序发送 kill SIGSEGV也会发生同样的事情 。

将kill SIGSEGV发送到另一个不使用 ada dll 的应用程序会按照我想要的方式生成核心转储文件。

在这里找到了一些信息:http: //objectmix.com/ada/301203-gnat-fstack-check-does-work.html

更新!正如 Adrien 所说,没有矛盾,-s设置堆栈限制,而-c设置核心文件限制。

问题仍然存在。我在构建 ada 库时检查了这些标志,但未设置fstack-check标志,因此它应该生成核心转储。

虽然我还没有尝试过,但它似乎有些奇怪。它提到了 -fstack-check 编译器选项 + 设置 GNAT_STACK_LIMIT 变量,但同时提到了 ulimit 命令,这似乎是一个矛盾,设置“ulimit -c”是我知道生成核心转储的唯一方法在崩溃时,如果这通过 fstack-check 选项推断,那么我们有一个 catch 22。

0 投票
2 回答
1420 浏览

coredump - 核心文件问题

关于 dbx 调试器调试的核心文件的任何想法。我不明白为什么会生成这个核心文件。请帮助我

0 投票
5 回答
18820 浏览

linux - Linux 中的核心转储

每当我的进程崩溃时,我想创建一个核心转储。目前我正在遵循这种方法:

  1. 使用 gcc/g++ 的“-g”构建程序的特殊“调试”版本。
  2. 执行“ulimit -c 无限制”
  3. 现在,每当程序崩溃时,我们都会得到核心转储。

但我想尽量减少步骤数,以便:

  • 应该始终创建核心转储。即使它是“发布”构建。不应要求用户ulimit -c unlimited手动执行命令“”。
  • 该核心转储的回溯应该能够提供调用的文件、函数、行号。那是人类可读形式的堆栈跟踪。
  • 我不想将程序构建为带有“-g”的调试版本。或者至少它不应该包含生成人类可读堆栈跟踪不需要的任何其他调试信息。因为这将是该程序的发布版本。

所以我有两个问题:

  1. 如何在程序的“发布”版本中创建核心转储?
  2. 总是。无需手动执行“ ulimit -c unlimited
0 投票
2 回答
881 浏览

c++ - 崩溃后内存映射中是否有任何有用的信息

我遇到如下崩溃(即中止),并想知道我是否可以从提供的内存映射信息中获得任何有用的信息?

0 投票
2 回答
9114 浏览

linux - a.out 替换为 ELF 文件格式?

我有几个问题:

  • 为什么被a.out替换了ELF
  • 导致 ELF 文件格式兴起的 a.out 格式的主要缺陷是什么?
  • 早期的核心转储基于 a.out,但现在它们基于 ELF。ELF提供的各种优势是什么?
0 投票
2 回答
1518 浏览

php - 生成子进程的核心转储文件

我正在尝试使用 exec() 从我的 php 脚本运行 gpg。但它与分段错误相冲突:“gpg:分段错误被捕获......退出”它在子进程中崩溃,所以我的 php 脚本工作正常。为了确定一个问题,我想要一个核心文件。我试着跑

我在 /etc/security/limits.conf 中添加了“* soft core unlimited”,但没有创建任何核心文件。

我会非常感谢任何建议或想法。

0 投票
8 回答
15401 浏览

c++ - 当 gdb 堆栈跟踪充满“???”时,如何调试分段错误?

我的可执行文件包含符号表。但似乎堆栈跟踪被覆盖了。

请问如何从该核心中获取更多信息?例如,有没有办法检查堆?查看填充堆的对象实例以获得一些线索。无论如何,任何想法都会受到赞赏。

0 投票
4 回答
1771 浏览

java - Java 的核心转储等价物

到目前为止,我已经了解了分别使用jstackand 和 and生成线程转储和堆转储jmap

但是,jstack线程转储仅包含描述每个线程上的堆栈的文本。使用 Java VisualVM 打开堆转储(.hprof 文件)只显示堆中分配的对象。

我真正想要的是能够看到堆栈,切换到特定的堆栈帧,并观察局部变量。这种事后调试通常可以使用 WinDbg、gdb 和核心文件(对于本机 C++ 程序)等工具来完成。

我想知道Java中是否存在这样的“核心”文件(允许我在非实时环境中调试)?