1

当系统崩溃时,它会在 /data/tombstone 中留下一个 tombstone 文件。我找到了一堆地址如下。

#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

让我们假设有一个由 address 引起的麻烦0000e0ba /system/lib/bluez-plugin/audio.so

我使用'add2line'来查看哪一行让它变得如此糟糕。

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

它显示了造成麻烦的代码中的特定行。

这是问题。我真的不明白 PC 在墓碑中的地址是如何在每次运行时直接与其 .so 的地址匹配的。显然这是在系统死机后(事后)调试,这意味着手机的电源已经关闭。

我是否应该认为动态库(.so)即使在重新启动后也总是加载到 RAM 中的相同地址中?

4

0 回答 0