diff options
| author | Meng Hu <meng.hu@garmin.com> | 2009-11-05 16:10:50 -0600 |
|---|---|---|
| committer | Garmin Android technology group <android@garmin.com> | 2010-05-24 17:20:10 -0500 |
| commit | ae7b91b68008ab09635a97a18e7d07a35e8404aa (patch) | |
| tree | 13f464ac0a7092ce892a077ed09305b62df961b9 /debuggerd/utility.h | |
| parent | 93ac1559b8c7ad3125ddcd896082b030faadbbd4 (diff) | |
| download | core-ae7b91b68008ab09635a97a18e7d07a35e8404aa.tar.gz core-ae7b91b68008ab09635a97a18e7d07a35e8404aa.tar.bz2 core-ae7b91b68008ab09635a97a18e7d07a35e8404aa.zip | |
debuggerd: Show function names in tombstone backtraces
This change enables debuggerd to provide backtraces with function
names in tombstone files and log messages. It does this by reading
the image file that the address is found in, and parsing the dynamic
symbol table to try to extract the symbol corresponding to the given
address.
This works best when "-Wl,-export-dynamic" is added to the LDFLAGS
of each library and executable, because this will cause all symbols
to be added to the dynamic symbol table. If this flag is not present,
it will still work, but it will only be able to identify functions
which are part of the external API of the library/executable.
Change-Id: I618baaff9ed9143b7d1a1f302224e9f21d2b0626
Diffstat (limited to 'debuggerd/utility.h')
| -rw-r--r-- | debuggerd/utility.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/debuggerd/utility.h b/debuggerd/utility.h index 49f59518e..2ffdf5654 100644 --- a/debuggerd/utility.h +++ b/debuggerd/utility.h @@ -21,6 +21,8 @@ #include <stddef.h> #include <stdbool.h> +#include "symbol_table.h" + #ifndef PT_ARM_EXIDX #define PT_ARM_EXIDX 0x70000001 /* .ARM.exidx segment */ #endif @@ -33,6 +35,7 @@ typedef struct mapinfo { unsigned end; unsigned exidx_start; unsigned exidx_end; + struct symbol_table *symbols; char name[]; } mapinfo; |
