I made a deliberate crash for an investigation. Source:
int* crashPointer = nullptr; *crashPointer = 7;
Generated assembly:
11feb8: e3005007 movw r5,
Predicted 11fed4 Address 11fed4
Actual emergency reset:
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0 r0 ea408800 r1 00000000 r2 00000006 r3 ea6ccfa0 r4 ea6d1b2a r5 00000007 r6 00000000 r7 ea3ff904 r8 00000001 r9 e8b22ec0 sl ea6b5be9 fp ea3ff5c0 ip ea6d1af8 sp ea3ff550 lr ea6d09aa pc ea696ed4 cpsr 600f0010 ... ea577000-ea6d7000 r-xp 00000000 fe:01 1556782 libSomeLib.so
Conclusion: ea696ed4-ea577000=11fed4 , which is equal to the predicted address.
To summarize: there is no need to add an offset to the value of the PC in the crash dump (for Android armv7 at least).
gq3
source share