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年07月03日
kicad oddity
2024年05月08日
comparison on ./buildsh tools
2024年05月06日
py-setuptools (python 3.11.9)
make release took 1 hours and 10 min
qemu invocation for 10.99.10
2024年05月05日
Windows 10 version
serial connection
bc bench
2024年05月04日
Trial on 10.99.10
another version (later trial) to succeed
以上、1 日分です。
タイトル一覧
カテゴリ分類
Powered by hns-2.19.9, HyperNikkiSystem Project

Count.cgi (since 2000/02/05)