hns - 日記自動生成システム - Version 2.19.9

先月 2002年11月 来月
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Namazu for hns による簡易全文検索
詳しくは 詳細指定/ヘルプを参照して下さい
検索式:

2002年11月04日(月) 旧暦 [n年日記]

#1 [NetBSD] sysinst segmentation faults

  • sysinst が Seg fault する
  • その時の sysinst と sysinst.core を別のところに保存しておいて
  • gdb を使うと、 0x19221a4 の辺りが怪しいと分ったとする
  • objdump -d sysinst すると、それは次の辺だと分る
     1922170:       4e 80 00 20     blr
            ...
     1922180:       3d 40 7f 7f     lis     r10,32639
     1922184:       3d 20 fe fe     lis     r9,-258
     1922188:       61 4a 7f 7f     ori     r10,r10,32639
     192218c:       61 29 fe ff     ori     r9,r9,65279
     1922190:       54 68 1e f9     rlwinm. r8,r3,3,27,28
     1922194:       54 65 00 3a     rlwinm  r5,r3,0,0,29
     1922198:       38 00 ff ff     li      r0,-1
     192219c:       41 a2 00 18     beq+    0x19221b4
     19221a0:       7c 00 44 30     srw     r0,r0,r8
    >19221a4:       80 e5 00 00     lwz     r7,0(r5)
     19221a8:       7c 00 00 f8     not     r0,r0
     19221ac:       7c e7 03 78     or      r7,r7,r0
     19221b0:       48 00 00 0c     b       0x19221bc
    
さて、これはどこでしょうか ?
sysinst を strip しないで作るには ? あるいは asm の出力を得るには ? src/distrib/utils/sysinst/arch/macppc/ で objdump -d sysinst すると、次のところがそれに対応するらしい
01858560 <strlen>:
 1858560:       3d 40 7f 7f     lis     r10,32639
 1858564:       3d 20 fe fe     lis     r9,-258
 1858568:       61 4a 7f 7f     ori     r10,r10,32639
 185856c:       61 29 fe ff     ori     r9,r9,65279
 1858570:       54 68 1e f9     rlwinm. r8,r3,3,27,28
 1858574:       54 65 00 3a     rlwinm  r5,r3,0,0,29
 1858578:       38 00 ff ff     li      r0,-1
 185857c:       41 a2 00 18     beq+    1858594 <strlen+0x34>
 1858580:       7c 00 44 30     srw     r0,r0,r8
>1858584:       80 e5 00 00     lwz     r7,0(r5)
 1858588:       7c 00 00 f8     not     r0,r0
 185858c:       7c e7 03 78     or      r7,r7,r0
 1858590:       48 00 00 0c     b       185859c <strlen+0x3c>
しかしこれだけではどこから呼ばれた strlen か分らないぁ。
cc の時の warning を良く見ていれば、分るかも知れない
rm ./floppies/ramdisk/obj/sysinst/md.o
しておいて、
ttyp2:root@quick 18:28:23/021104(...distrib/macppc)# /export-n/src/tools/obj//tools.NetBSD-1.6F-powerpc/bin/nbmake-macppc しても、sysinst を作り直してくれないが、これが理由で -u を付けて ./build.sh した時に新しくしてくれなかったのか。
all ===> floppies
all ===> floppies/ramdisk
all ===> floppies/md-kernel
all ===> floppies/bootfloppy

src/distrib/utils/sysinst/arch/macppc:

での menu_defs.c で
 564:                 strlen(ftp_pass) != 0 ? "** hidden **" : "", ftp_proxy);
1785: hadd += strlen(m->title) != 0 ? 2 : 0;
1788: wmax = strlen(m->title);
1821:                 wmax = MAX(wmax,strlen(scrolltext));
1823:                 wmax = MAX(wmax,strlen(m->opts[i].opt_name)+3);
1891: tadd = strlen(m->title) ? 2 : 0;
のどこかかなぁ。どこかに NULL の入っていない文字列がある ?

menu_defs.c:

sysinst/Makefile.inc の中で
MSGC?=          msgc
...
msg_defs.c msg_defs.h: msg.def
        ${MSGC} msg.def
となっていて、msgc(1) で生成されるもの。
scrolltext は static で宣言されているから多分違う。 utils/sysinst/arch/macppc/menu_defs.c
1704:static char *scrolltext = " <: page up, >: page down";
試しに distrib/utils/sysinst/arch/macppc/menu_defs.h
14 struct menu_ent {
15         char   *opt_name;
16         int     opt_menu;
17         int     opt_flags;
18         int     (*opt_action)(struct menudesc *);
19 } menu_ent ;
を変えて見たいのだが、これは生成されるものなので、直せない.. ? man menuc すると、この文字が書いてある。

Comman: pax -zpre -f /mnt2//binary/sets/comp.tgz でも:

Segmentation Fault 18c0c6c
 18c0c48:       54 eb 10 3a     rlwinm  r11,r7,2,0,29
 18c0c4c:       7c cb 48 2e     lwzx    r6,r11,r9
 18c0c50:       3b a7 00 01     addi    r29,r7,1
 18c0c54:       80 06 00 00     lwz     r0,0(r6)
 18c0c58:       70 09 00 01     andi.   r9,r0,1
 18c0c5c:       41 82 02 24     beq     0x18c0e80
 18c0c60:       81 26 00 08     lwz     r9,8(r6)
 18c0c64:       a8 a4 00 20     lha     r5,32(r4)
 18c0c68:       81 84 00 1c     lwz     r12,28(r4)
>18c0c6c:       81 49 00 00     lwz     r10,0(r9)

/usr/pkgsrc make package して見ている:

例えば (の All/) の下にあるものと、 版とか、揃えとかいう意味で同じものが出来るのだろうか。 2002/06/15 には (1.5 の方で) 1925 くらいあった(と思う)。
たまに何か聞いて来るやつがある。例えば minicom。これに答えないと先に行かない。 (何かいい手はあるのかな)
CDROM に書いて売ってはいけないという契約もある。(何だか忘れた)

全然関係ないけれど:

更に全然関係ないけれど:




最近の日記
2024年03月10日
停電 (瞬電)
2024年03月03日
the second try on bare-metal
useradd
2024年02月29日
opendkim and senmail
2024年01月24日
chat/iam 0.0.8
2024年01月21日
uselocale vs setlocale (textproc/R-readxl)
以上、1 日分です。
タイトル一覧
カテゴリ分類
Powered by hns-2.19.9, HyperNikkiSystem Project

Count.cgi (since 2000/02/05)