[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]
[MD:2820]Portable dumper
- X-ml-count: 2820
- Subject: [MD:2820]Portable dumper
- From: Keiichiro Nagano (永野圭一郎) <knagano@xxxxxxxxx>
- Date: Thu, 17 Jan 2002 14:04:02 +0900
- User-agent: Wanderlust/2.6.1 (Upside Down) EMY/1.13.9 (Art is long, life is short) SLIM/1.14.7 (酒井彩名) APEL/10.3 Emacs/21.1 (i586-pc-linux-gnulibc1) MULE/5.0 (SAKAKI)
僕の手元は、Linux kernel 2.2.19, gcc 3.0.3, GNU binutils 2.11.2 です。
たぶん CVS の外では最新だと思います。
At 17 Jan 2002 12:47:12 +0900,
Yoshiki Hayashi wrote:
> しまった、焦ってぼけました。これ、patch にもれがあるのではな
> くて、最近の GNU binutils の LD だと、LDFLAGS に
> -znocombreloc を追加する必要があるのでした。もしかして、お二
> 人とも temacs を消して、LDFLAGS に追加して build しなおすと
> 直ったりしますでしょうか?
ダメです。src の下で make clean ; rm emacs.dmp して Makefile の
LDFLAGS に -znocombreloc を追加し、make してできた temacs で
./temacs -q -no-site-file -batch -f garbage-collect すると100%落ちます。
落ちる個所は同じで、mark_object の一番外側の
switch (SWITCH_ENUM_CAST (XGCTYPE (obj))) の case を全部すり抜けて
default: の abort(); で死んでいます。
少し遡った結果はこれです。
# buffer local variable なのかなあ。
(gdb) up
#1 0x080e2ae9 in mark_object (argptr=0xbff8c) at alloc.c:2317
2317 abort ();
(gdb) p obj
$1 = 2147483647
(gdb) xtype
Lisp_Type_Limit
0
(gdb) up
#2 0x080e295d in mark_object (argptr=0x44f24) at alloc.c:2208
2208 mark_object (&ptr->function);
(gdb) p obj
$2 = 786308
(gdb) xtype
Lisp_Int
0
(gdb) up
#3 0x080e2a39 in mark_object (argptr=0xc23c0) at alloc.c:2253
2253 mark_object (&ptr->buffer);
(gdb) p obj
$3 = 537153308
(gdb) xtype
Lisp_Misc
Lisp_Misc_Buffer_Local_Value
(gdb) up
#4 0x080e294f in mark_object (argptr=0xeb2d4) at alloc.c:2207
2207 mark_object ((Lisp_Object *) &ptr->value);
(gdb) p obj
$5 = 795580
(gdb) xtype
Lisp_Int
0
(gdb) up
#5 0x080e2910 in mark_object (argptr=0xc22ec) at alloc.c:2195
2195 mark_object (&ptr1->contents[i]);
(gdb) p obj
$6 = 0
(gdb) xtype
Lisp_Int
0
(gdb) up
#6 0x080e295d in mark_object (argptr=0xeb294) at alloc.c:2208
2208 mark_object (&ptr->function);
(gdb) p obj
$7 = 795364
(gdb) xtype
Lisp_Int
0
(gdb) up
#7 0x080e2910 in mark_object (argptr=0xc22d4) at alloc.c:2195
2195 mark_object (&ptr1->contents[i]);
(gdb) p obj
$8 = 1
(gdb) xtype
Lisp_Int
0
(gdb) up
#8 0x080e295d in mark_object (argptr=0xeac60) at alloc.c:2208
2208 mark_object (&ptr->function);
(gdb) p obj
$9 = 795340
(gdb) xtype
Lisp_Int
0