交叉编译平台应用程序上的谷歌防撞板.无法读取 Ubuntu 中的 dmp 文件



我有一个想要跟踪的带有分割错误的小 qt 项目(这是一个示例,分段错误是出于测试目的手动添加的,在实际项目中我不知道那里留下的段错误)。我决定使用谷歌崩溃板,这样我就可以创建小型转储文件,然后跟踪计算机上的问题。我已经成功地在示例项目中的窗口中这样做了。但是,我无法在 Linux 中打开dmp文件来调试它们。

我已经尝试使用minidump-2-core,如本博客在Linux上使用minidump-2-core部分所述。但是,当我运行此命令时,出现以下错误:This minidump was not generated by Linux or NaCl.显然,我正在使用同一台装有 Ubuntu 18.04 的计算机来运行生成dmp文件并将其转换为核心文件的代码。

关于如何将dmp文件转换为可以放入 gdb 进行调试的内容的任何想法?或者一般来说,如何处理谷歌崩溃板在linus中创建的tese文件?

您需要从Breakpad存储库构建minidump_stackwalk命令行工具。您还需要使用dump_syms生成.sym文件,这是 Breakpad 存储库中的另一个工具。

生成.sym文件后,您需要按照约定/path/to/symbols/folder/MODULE_NAME/MODULE_ID/MODULE_NAME.sym将它们放置在磁盘上。

将符号文件布置在正确的文件夹结构中后,您可以调用minidump_stackwalk它将输出符号化堆栈跟踪和运行时加载的模块列表:

./minidump_stackwalk -m /path/to/minidump.dmp /path/to/symbols/folder

有关如何使用minidump_stackwalk的更多信息,请参阅此处。

有关如何使用dump_syms的更多信息,请参阅此处。

最新更新