问题标签 [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 投票
8 回答
19410 浏览

java - 如何调试 Java OutOfMemory 异常?

java.lang.OutOfMemoryError调试异常的最佳方法是什么?

当我们的应用程序发生这种情况时,我们的应用程序服务器 (Weblogic) 会生成一个堆转储文件。我们应该使用堆转储文件吗?我们应该生成 Java 线程转储吗?究竟有什么区别?


更新:生成线程转储的最佳方法是什么?(我们的应用程序在 Solaris 上运行)是kill -3终止应用程序并生成线程转储的最佳方法吗?有没有办法生成线程转储但不杀死应用程序?

0 投票
5 回答
2363 浏览

embedded-linux - 无法核心转储 - 嵌入式 linux

我做了 ulimit -c unlimited / some number proc... core_pattern 是核心,我的 rootfs 和应用程序都是 debugversion [虽然不是内核] 知道为什么我无法在 kill -SIGABRT/SEGV pid 上获取 coredump

谢谢法里奥。

0 投票
3 回答
3600 浏览

java - Java,获取核心转储

我希望能够以与分析 UNIX 系统上进程的核心转储相同的方式分析 Java 核心转储。但是,我对来自进程的信息不感兴趣,只有 JVM 级别的堆栈、堆等。核心转储将包含有关 Java 方法、变量等的信息。

  1. 如何告诉 JVM 构建 Java 级核心转储?
  2. 什么是分析所述转储的好工具?

例如,如果执行此代码

我会得到一个显示堆栈的核心转储main-->foo

0 投票
3 回答
1451 浏览

linux - 如何增加 Linux 核心转储匹配符号的概率?

我有一个非常复杂的跨平台应用程序。最近我和我的团队一直在运行压力测试,并且遇到了几次崩溃(以及伴随它们的核心转储)。其中一些核心转储非常精确,可以向我显示大约 10 个或更多堆栈帧发生崩溃的确切位置。其他人有时只有一个堆栈帧与 ?? 成为唯一的象征!

我想知道的是:

  1. 有没有办法增加核心转储指向正确方向的概率?
  2. 为什么报告的堆栈帧数不一致?
  3. 任何管理核心转储的最佳实践建议。

这是我编译二进制文件的方式(在发布模式下):

  1. 编译器和平台:在 CentOS 3.6 x86_64 上带有 glibc-2.3.2-95.50 的 g++——这有助于我保持与旧版本 Linux 的兼容性。
  2. 所有文件都使用 -g 标志编译。
  3. 调试符号从最终的二进制文件中删除并保存在单独的文件中。
  4. 当我有核心转储时,我将 GDB 与创建核心的可执行文件和符号文件一起使用。GDB 从不抱怨核心/二进制/符号之间不匹配。

然而,我有时会得到根本没有符号的核心转储!我正在链接非调试版本的 libstdc++ 和 libgcc 是可以理解的,但如果至少堆栈跟踪显示我的代码中错误指令调用的来源(尽管它最终可能以 ?? 结尾),那就太好了。 .

0 投票
6 回答
28520 浏览

c++ - 如何配置 Windows 以从应用程序生成核心转储?

如何配置 Windows 以从应用程序生成核心转储?

我使用的是 Win xp,该应用程序是使用 Visual Studio 2003 构建的。

0 投票
2 回答
11494 浏览

python - 如何从核心转储中分析内存使用情况?

我在 Linux 下有一个核心转储。该过程继续进行内存分配横冲直撞,我至少需要找到发生这种情况的库。

您建议使用什么工具来广泛了解内存的去向?我知道这个问题很难/完全无法解决。任何至少可以提供一些线索的工具都会有所帮助。

[这是一个python进程,怀疑内存分配是由用C编写的自定义模块之一引起的]

0 投票
2 回答
9083 浏览

linux - Linux 中的选择性核心转储 - 如何选择转储部分?

我正在寻找一种方法来选择核心转储中包含的部分和内存区域。
我的应用程序的核心转储大小约为 30GB,其中大部分位于我在调试时甚至不需要的预分配缓冲区中(以后可以归零)。但是,由于转储太大,应用程序需要很长时间才能完成崩溃并开始恢复。
谁能想到一种方法来提前选择核心转储中的哪些段?
谢谢

0 投票
2 回答
1026 浏览

c++ - libc 退出调用中的核心转储

我在程序的退出过程中看到了 solaris 中的核心转储。如何调试和修复这种核心转储?

0 投票
2 回答
4036 浏览

linux - 如何从停止的程序中获取核心转储(linux)

我有一个程序,被kill -STOP. 我想在不运行它的情况下对其进行核心转储(程序必须一直停止;如果它会收到 SIGCONT,它会在没有 coredump 的情况下死掉)。如何获得核心转储?

进行核心转储后是否可以将程序保持在当前状态?这是一种非常罕见的情况,我无法重现它,但我必须分析它。

谢谢

更新:gcore 不起作用。Gdb(甚至是 root)无法附加到停止的进程(在 ptrace PTRACE_ATTACH 上永远等待)。甚至 dd 也无法从 /proc/99999/mem 中读取,而 /proc/99999/maps 的偏移量很好(错误是No such process)。

如果我尝试将 gdb 附加到进程并将 SIGCONT 发送到停止的进程,我得到了

如果我去 gdb 并保存一个核心,它将被破坏。“无法从内存中读取有效的目标文件图像。”

0 投票
0 回答
1094 浏览

gdb - *** 检测到 glibc *** free(): 无效指针:0x00050530 *** & coredump & no valgrind on ARMv5

我有

和核心转储

由于平台限制ARMv5没有valgrind

我可以从 coredump 和那个地址获得什么有用的信息?