0

I am working on integrating breakpad for native crash reporting of an Android app which already has a significant native code base that is built into a single so. I have added breakpad static lib to this and I am able to generate dmp files when a native crash is reported. However the native dmp is small (3-4 KB) and minidump_stackwalker gives following errors:

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$

I have an Android breakpad test app which uses same compiler and linker flags and is able to generate a proper dmp file which is about 300 KB. I have tried to debug breakpad code using Android Studio C++ debugger and I notice that the child process breakpad spawns, finishes with error and it seems like it wont be easy to attach debugger to the child process simultaneously.

I have looked at breakpad support and there have been mention of similar issue but no solution discussed. Any help would be greatly appreciated.

Manish
  • 11
  • 3
  • Problem traced down to https://github.com/google/breakpad/blob/master/src/client/linux/minidump_writer/linux_ptrace_dumper.cc line 'if (sys_ptrace(PTRACE_GETREGSET, tid, (void*)NT_FPREGSET, (void*)&io) == -1) { return false; }' Fixed in latest master – Manish Jun 12 '17 at 13:31

1 Answers1

1

https://groups.google.com/forum/#!topic/google-breakpad-discuss/sjhy29LK5TU Latest breakpad master branch has the fix. It continues further if floating point registers could not be dumped for ARM linux port

Manish
  • 11
  • 3