揮発性のメモ2

知識をメモ書きしておく

sh4でバックトレース

普通のやつらの下を行け: C でバックトレース表示 - bkブログ
こちらを参考に、sh4でもバックトレースできたらいいなと思ったが、だめっぽかった。

#include <stdio.h>
void hoge(){
        char *p=1;
        printf("%s\n",p);
}
int main(){
        hoge();
        return 0;
}
$ export LD_PRELOAD=/lib/libSegFault.so
$ export SEGFAULT_SIGNALS=all
$ ./a.out
*** Segmentation fault
Register dump:

  R0: 00000000   R1: 00000000   R2: 00000000   R3: 000244ca
  R4: 00000001   R5: 0040073c   R6: 00000000   R7: 7bdbe9c8
  R8: 00000000   R9: 00000001  R10: 004005e0  R11: 2969c548
 R12: 296a99fc  R13: 00000000  R14: 7bdbe50c  R15: 7bdbe50c

MACL: 073c387e MACH: 00000148

  PC: 29608e14   PR: 295e4936  GBR: 296ad440   SR: 00000000


 FR0: 40fcf827  FR1: edfb7ee0  FR2: 408ff800  FR3: 00000000
 FR4: 41e00000  FR5: 00000000  FR6: 00000000  FR7: 00000000
 FR8: 00000000  FR9: 00000000 FR10: 00000000 FR11: 00000000
FR12: 00000000 FR13: 00000000 FR14: 00000000 FR15: 00000000

 XR0: 00000000  XR1: 00000000  XR2: 00000000  XR3: 00000000
 XR4: 00000000  XR5: 00000000  XR6: 00000000  XR7: 00000000
 XR8: 00000000  XR9: 00000000 XR10: 00000000 XR11: 00000000
XR12: 00000000 XR13: 00000000 XR14: 00000000 XR15: 00000000

FPSCR: 00080004 FPUL: 0001cf82

Backtrace:
[0x7bdbdc28]

Memory map:

00400000-00401000 r-xp 00000000 03:02 176002     /tmp/a.out
00410000-00411000 rw-p 00000000 03:02 176002     /tmp/a.out
29558000-2956b000 r-xp 00000000 03:02 16247      /lib/ld-2.3.5.so
2956b000-2956c000 r-xp 2956b000 00:00 0          [vdso]
2956c000-2956d000 rw-p 2956c000 00:00 0
2957b000-2957c000 rw-p 00013000 03:02 16247      /lib/ld-2.3.5.so
2957c000-2957f000 r-xp 00000000 03:02 16050      /lib/libSegFault.so
2957f000-2958e000 ---p 00003000 03:02 16050      /lib/libSegFault.so
2958e000-2958f000 rw-p 00002000 03:02 16050      /lib/libSegFault.so
29590000-2959f000 r-xp 00000000 03:02 16260      /lib/libgcc_s.so.1
2959f000-295ae000 ---p 0000f000 03:02 16260      /lib/libgcc_s.so.1
295ae000-295af000 rw-p 0000e000 03:02 16260      /lib/libgcc_s.so.1
295b0000-2968c000 r-xp 00000000 03:02 16046      /lib/tls/libc-2.3.5.so
2968c000-2969c000 ---p 000dc000 03:02 16046      /lib/tls/libc-2.3.5.so
2969c000-296aa000 rw-p 000dc000 03:02 16046      /lib/tls/libc-2.3.5.so
296aa000-296ae000 rw-p 296aa000 00:00 0
7bdaa000-7bdbf000 rwxp 7bdaa000 00:00 0          [stack]
Segmentation fault