Адреса в файле-захоронении Android точно совпадают с адресами в.so каждый раз (даже после перезагрузки)?
При сбое системы он оставляет файл захоронения в /data/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
Давайте предположим, что есть проблема, вызванная адресом 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
Он показал конкретную строку в коде, который создал проблему.
Вот вопрос. Я не очень понимаю, как адрес ПК в tombstone напрямую сопоставляется с адресом.so при каждом запуске. Очевидно, что это (после смерти) отладка после смерти системы, что означает, что питание телефона уже отключается.
Стоит ли думать, что динамическая библиотека (.so) всегда загружается в один и тот же адрес в ОЗУ даже после перезагрузки?