Home | History | Annotate | Download | only in gdbjithelper
      1 Step 1
      2 
      3 If you see a native crash in the bugreport and the PC/LR are pointing to the
      4 code cache address range*, copy them into codePC and codeLR in gdbjithelper.c,
      5 respectively.
      6 
      7 *Caveats: debuggerd doesn't know the range of code cache. So apply this tool if
      8 the crashing address is not contained by any shared library.
      9 
     10        #00  pc 463ba204
     11        #01  lr 463ba1c9  <unknown>
     12 
     13 code around pc:
     14 463ba1e4 4300e119 4284aa7a f927f7b7 40112268
     15 463ba1f4 419da7f8 00002000 01000100 00080000
     16 463ba204 4191debc 01010000 4284aa74 68b00054
     17 463ba214 045cf205 cc016468 0718f2a5 d0102800
     18 463ba224 4c13c701 a20aa108 efb0f775 e008e010
     19 
     20 code around lr:
     21 463ba1a8 42e19e58 f2050050 cc01045c 0718f2a5
     22 463ba1b8 d00f2800 4c13c701 a20aa108 efe4f775
     23 463ba1c8 e007e010 29006bf8 6e77dc01 a10347b8
     24 463ba1d8 ef60f775 6db1480b 1c2d4788 4300e119
     25 463ba1e8 4284aa7a f927f7b7 40112268 419da7f8
     26 
     27 
     28 Step 2
     29 
     30 Push $OUT/EXECUTABLES/gdbjithelper_intermediates/LINKED/gdbjithelper to
     31 /system/bin on the device or emulator
     32 
     33 
     34 Step 3
     35 
     36 Debug the executable as usual:
     37 
     38 adb forward tcp:5039 tcp:5039
     39 adb shell gdbserver :5039 /system/bin/gdbjithelper &
     40 arm-eabi-gdb $OUT/symbols/system/bin/gdbjithelper
     41 (gdb) tar r :5039
     42 Remote debugging using :5039
     43 Remote debugging from host 127.0.0.1
     44 gdb: Unable to get location for thread creation breakpoint: requested event is not supported
     45 __dl__start () at bionic/linker/arch/arm/begin.S:35
     46 35      mov r0, sp
     47 gdb: Unable to get location for thread creation breakpoint: requested event is not supported
     48 Current language:  auto; currently asm
     49 (gdb) c
     50 Continuing.
     51 [New Thread 596]
     52 codePC[0]: 0x4300e119
     53 codePC[1]: 0x4284aa7a
     54          :
     55 
     56 
     57 Step 4
     58 
     59 Hit ctrl-C
     60 
     61 Issue the following command to see code around PC
     62 x /20i (char *) &codePC+1
     63 
     64 Issue the following command to see code around LR
     65 x /20i (char *) &codeLR+1
     66