我有一个想要跟踪的带有分割错误的小 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
的更多信息,请参阅此处。