Step 1 If you see a native crash in the bugreport and the PC/LR are pointing to the code cache address range*, copy them into codePC and codeLR in gdbjithelper.c, respectively. *Caveats: debuggerd doesn't know the range of code cache. So apply this tool if the crashing address is not contained by any shared library. #00 pc 463ba204 #01 lr 463ba1c9 <unknown> code around pc: 463ba1e4 4300e119 4284aa7a f927f7b7 40112268 463ba1f4 419da7f8 00002000 01000100 00080000 463ba204 4191debc 01010000 4284aa74 68b00054 463ba214 045cf205 cc016468 0718f2a5 d0102800 463ba224 4c13c701 a20aa108 efb0f775 e008e010 code around lr: 463ba1a8 42e19e58 f2050050 cc01045c 0718f2a5 463ba1b8 d00f2800 4c13c701 a20aa108 efe4f775 463ba1c8 e007e010 29006bf8 6e77dc01 a10347b8 463ba1d8 ef60f775 6db1480b 1c2d4788 4300e119 463ba1e8 4284aa7a f927f7b7 40112268 419da7f8 Step 2 Push $OUT/EXECUTABLES/gdbjithelper_intermediates/LINKED/gdbjithelper to /system/bin on the device or emulator Step 3 Debug the executable as usual: adb forward tcp:5039 tcp:5039 adb shell gdbserver :5039 /system/bin/gdbjithelper & arm-eabi-gdb $OUT/symbols/system/bin/gdbjithelper (gdb) tar r :5039 Remote debugging using :5039 Remote debugging from host 127.0.0.1 gdb: Unable to get location for thread creation breakpoint: requested event is not supported __dl__start () at bionic/linker/arch/arm/begin.S:35 35 mov r0, sp gdb: Unable to get location for thread creation breakpoint: requested event is not supported Current language: auto; currently asm (gdb) c Continuing. [New Thread 596] codePC[0]: 0x4300e119 codePC[1]: 0x4284aa7a : Step 4 Hit ctrl-C Issue the following command to see code around PC x /20i (char *) &codePC+1 Issue the following command to see code around LR x /20i (char *) &codeLR+1