2

我可以使用 MiniDumpWithFullMemory 在 windows 平台上获取 minidump 的所有内存。但是我如何在 linux 平台上做到这一点?

4

3 回答 3

1

最初的问题是如何在 linux 上使用 google breakpad 创建兼容的 gdb coredump。这其实是可行的,按照google的说明创建minidump和symbol文件:

https://chromium.googlesource.com/breakpad/breakpad/+/master/docs/linux_starter_guide.md

然后使用此工具将 minidump 转换为 coredump: https ://chromium.googlesource.com/chromium/src/+/master/docs/linux_minidump_to_core.md

请注意,从 minidump 生成 coredump 将不包含完整的内存转储,仅包含它的“slim”版本。

于 2016-04-14T08:21:38.557 回答
0

Breakpad 目前不支持在 Linux 上写入全内存转储。对不起。如果您愿意,您可以写出完整的核心转储并使用 Breakpad 树中的 core2md 工具将它们变成小型转储: http ://code.google.com/p/google-breakpad/source/browse/trunk/src/tools /linux/core2md/core2md.cc

于 2012-09-25T00:45:04.613 回答
0

内核可能(在某些情况下)转储core(5)文件。另请参阅此问题。您可能需要调用setrlimit系统调用来启用核心转储,也许是通过ulimit bash 内置函数。

许多事情可以通过/proc查询或配置,特别/proc/1234/maps是向您显示进程 1234 的地址映射并/proc/1234/mem让您访问其地址空间。

gdb经常给你一个gcore命令来强制核心转储。

于 2012-08-21T07:52:08.600 回答