1

When system crashed, it leaves a tombstone file in /data/tombstone. I found a bunch of addresses as below.

#00  pc 00010a20  /system/lib/libc.so
#01  pc 0000b332  /system/lib/libc.so
#02  pc 0000ca62  /system/lib/bluez-plugin/audio.so
#03  pc 0000d1ce  /system/lib/bluez-plugin/audio.so
#04  pc 0000e0ba  /system/lib/bluez-plugin/audio.so

Let's suppose that there is a trouble caused by address 0000e0ba /system/lib/bluez-plugin/audio.so.

I used 'add2line' to see which line made it bad like this.

{TOOL_CHAIN}/arm-linux-androideabi-addr2line -f -e android/{OUT}/target/product/{PRODUCT}/symbols/system/lib/bluez-plugin/audio.so 0000e0ba

It showed the specific line in code that made the trouble.

Here's the question. I don't really understand how PC's address in tombstone is directly matched to its .so's address every time it runs. Obviously this is to (post-mortem) debug after system died, which means phone's power already goes off.

Should I think that dynamic library(.so) is always loaded into the same address in RAM even after reboot?

CodePoetry
  • 61
  • 3

0 Answers0