我有一个带有分段错误的小qt项目,我想跟踪它(这是一个例子,为了测试目的手动添加了分段错误,在实际的项目中,我不知道剩下的分段错误)。我决定使用,这样我就可以创建微型文件,然后跟踪我的计算机上的问题。我在windows中成功地完成了这个示例项目。但是,我不能打开Linux中的dmp文件来调试它们。
我尝试过使用微型-2核,正如这个博客在一节中解释的那样,在Linux上使用minidump-2核。但是,当我运行这个命令时,我会得到以下错误:This minidump was not generated by Linux or NaCl.显然是使用Ubuntu18.04的同一台计算机来运行生成dmp文件的代码并将其转换为一个核心文件。
对于如何将dmp文件转换为可以放入gdb中进行调试的内容,有什么想法吗?或者一般情况下,如何处理在linus中创建的tese文件?
发布于 2020-06-17 16:31:26
您将希望构建minidump_stackwalk,这是一个来自Breakpad存储库的命令行工具。您还需要使用.sym来生成dump_syms文件,这是来自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的更多信息可以找到这里。
https://stackoverflow.com/questions/60394317
复制相似问题