breakpad dump is broken/incomplete

513 views
Skip to first unread message

Manish Yadav

unread,
Jun 8, 2017, 6:45:13 AM6/8/17
to google-breakpad-discuss

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 (crash triggered from a test function). 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 the test function) 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.

Any help would be appreciated.

5f9221b3-75f2-c305-2dde0eb7-1724e335.dmp

Manish Yadav

unread,
Jun 12, 2017, 9:41:19 AM6/12/17
to google-breakpad-discuss

For the benefit of the users I can share how I resolved this.

I had to use logging to track failing method/statement in the minidump dumper code. It was failing in fetching Floating point registers -> https://github.com/google/breakpad/blob/master/src/client/linux/minidump_writer/linux 
_ptrace_dumper.cc

info->GetFloatingPointRegisters(&io.iov_base, &io.iov_len); 
  if (sys_ptrace(PTRACE_GETREGSET, tid, (void*)NT_FPREGSET, (void*)&io) == -1) { 
    return false; 
  }

if statement was failing for Android/Arm build as breakpad was never tested on APP_PLATFORM := android-21. Now I see that this has been fixed this on latest master.

Reply all
Reply to author
Forward
0 new messages