0

我正在为 Android 应用程序的原生崩溃报告集成 breakpad,该应用程序已经有一个重要的原生代码库,该代码库内置在一个单一的 so 中。我已经为此添加了 breakpad 静态库,并且当报告本机崩溃时,我能够生成 dmp 文件。但是本机 dmp 很小(3-4 KB),并且 minidump_stackwalker 给出以下错误:

myadav11$ minidump_stackwalk 5f9221b3-75f2-c305-2dde0eb7-1724e335.dmp 
minidump.cc:4811: INFO: Minidump opened minidump 5f9221b3-75f2-c305-2dde0eb7-1724e335.dmp 
minidump.cc:4931: INFO: Minidump not byte-swapping minidump 
minidump.cc:5414: INFO: GetStream: type 15 not present 
minidump.cc:5414: INFO: GetStream: type 7 not present 
minidump.cc:5414: INFO: GetStream: type 7 not present 
minidump.cc:5414: INFO: GetStream: type 1197932545 not present 
minidump.cc:5414: INFO: GetStream: type 6 not present 
minidump.cc:5414: INFO: GetStream: type 1197932546 not present 
minidump.cc:5414: INFO: GetStream: type 4 not present 
minidump.cc:5414: INFO: GetStream: type 14 not present 
minidump.cc:5414: INFO: GetStream: type 5 not present 
minidump.cc:5414: INFO: GetStream: type 3 not present 
minidump_processor.cc:158: ERROR: Minidump 5f9221b3-75f2-c305-2dde0eb7-1724e335.dmp has no thread list 
minidump_stackwalk.cc:97: ERROR: MinidumpProcessor::Process failed 
minidump.cc:4783: INFO: Minidump closing minidump 
myadav11$

我有一个 Android breakpad 测试应用程序,它使用相同的编译器和链接器标志,并且能够生成大约 300 KB 的正确 dmp 文件。我曾尝试使用 Android Studio C++ 调试器调试 breakpad 代码,我注意到子进程 breakpad 产生,并以错误结束,并且似乎将调试器同时附加到子进程并不容易。

我看过breakpad支持,也有人提到过类似的问题,但没有讨论解决方案。任何帮助将不胜感激。

4

1 回答 1

1

https://groups.google.com/forum/#!topic/google-breakpad-discuss/sjhy29LK5TU 最新的 breakpad master 分支已修复。如果无法为 ARM linux 端口转储浮点寄存器,它会继续进行

于 2017-06-12T13:43:36.667 回答