bingo235 / google-breakpad

Automatically exported from code.google.com/p/google-breakpad
0 stars 0 forks source link

dump_syms/minidump_stackwalk incompatibility with CFI produced by clang #443

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Using the CFI produced by clang, I get bad stack walks. Breakpad has no problem 
walking through the portion of the stack that clang compiled and produced CFI 
for, but once it hits a system library for which we have no CFI, we get maybe 
one or two frames and that’s it. Similarly, if it starts walking a stack 
beginning in a system library and then hits our code, we get maybe one frame of 
our own stuff and then that’s it.

As a workaround, I’m going to not use CFI for the time being in our dumped 
symbol files, because we’re not using -fomit-frame-pointer. But this requires 
a better fix.

Original issue reported on code.google.com by mark@chromium.org on 23 Aug 2011 at 10:47

GoogleCodeExporter commented 9 years ago
I saw something similar on x86-64 with GCC. The CFI expected to use $rbp to 
find the caller, but our x86-64 stackwalker doesn't recover rbp when it resorts 
to stack scanning. 

Original comment by ted.mielczarek on 23 Aug 2011 at 10:51

GoogleCodeExporter commented 9 years ago

Original comment by rsesek@chromium.org on 17 Jul 2014 at 6:55

GoogleCodeExporter commented 9 years ago
This doesn't appear to be an issue anymore.

Original comment by rsesek@chromium.org on 28 Jul 2014 at 3:33