[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]

[MD:3014] portable dumper for Emacs 21.1



Keiichiro Nagano (永野圭一郎) <knagano@xxxxxxxxx> writes:

> At Fri, 15 Mar 2002 12:30:46 +0900,
> ABE Yasushi (阿部 靖司) wrote:
> > bt.txt.gzのほうは、ただconfigure;makeしたもの(昨日のまま)
> > bt2.txt.gzのほうは、CFLAGS='-g'を付けたものです。
> 
> ありがとうございます。さっぱり分かりません。:)

通常、Lisp の call stack が壊れることはありえないので、crash
するまでのどこかで heap を破壊するバグが存在しているはずです。
こういうバグの場合、stacktrace を見て原因がわかることはほぼ
ありません。

こういう場合に私が使う原始的かつ確実な方法は2分探索で、今回
なら例えば call_debugger の前後、Fsave_window_exursion, X 回
目の Feval みたいな感じでわけて heap を覗いていくとどこで 
heap が壊れているかを特定できます。場所さえわかれば debug は
簡単なので (要再現性)。

残念ながら私の環境では再現しないので阿部さんのところの問題は
わかりませんが、hoge C-j とやると Attempt to split
fixed-size window とでます。で、こいつは original の Emacs の
bug で以下の patch で直ります。CVS の Emacs でも直っていない
ようなので、誰か emacs-devel を追っている人が patch を投げて
くれると助かります。
# やはり、全部 Lisp_Vectorlike でまかなうのはどうかと思うなぁ。
# もうちょっとだけ一般化して XEmacs みたいな code にすればよ
# いのに。

> ・C-x v =, M-x vc-diff すると "Symbol's value as variable is void: d" 
> という謎の signal が出ます。

Keiichiro Nagano (永野圭一郎) <knagano@xxxxxxxxx> writes:

> 阿部さんの backtrace と vc-diff の問題は、まだよく分かりません。現在の
> 開発環境以外で、再現できないか試してみます。

とのことですが、私の所では C-x v = は動いています。どうも、
こいつも heap corruption っぽい匂いがします。
# まだ patch は見てません。今日帰ってからにでも眺めてみます。
## まだまだ debug 地獄が続くでしょうが、とりあえず動く状態ま
## で来ている、ということで、お疲れ様でした。おかげさまで楽
## をさせてもらいました。(^^;;
--- src/window.c~	Tue Mar 19 16:37:36 2002
+++ src/window.c	Tue Mar 19 17:09:27 2002
@@ -278,6 +278,7 @@
   XSETWINDOW (val, p);
   XSETFASTINT (p->last_point, 0);
   p->frozen_window_start_p = 0;
+  p->height_fixed_p = 0;
 
   Vwindow_list = Qnil;
   return val;
-- 
Yoshiki Hayashi