[Date Prev][Date Next][Thread Prev][][Date Index][Thread Index]

Re: mule2 segmentation fault



>> On 19 Apr 2002 00:59:01 +0900
>> suto@ks-and-ks.ne.jp (Kiyokazu SUTO) said as follows:

>> うーん,backtrace を取ってみて,一番怪しそうな xfns.c:x_window() の実
>> 行部分の変数の値を調べてみたのですが….これで,不審な個所があるでしょ
>> うか?

>static linkなバイナリを作るわけには行きませんか。

原因は全く不明なのですが,末尾に添付したパッチを適用して,libXt と 
libXaw を static link すると,segmentation fault せずに正常に起動する
ようになってしまいました.

libXt か libXaw のどちらかだけでも,dynamic link にするとやっぱり segv 
します.

libXaw を dynamic link にした場合は,

  (gdb) bt
  #0  0x402a4781 in kill () from /lib/libc.so.6
  #1  0x080a605c in fatal_error_signal (sig=11) at emacs.c:236
  #2  0x402a46b8 in sigaction () from /lib/libc.so.6
  #3  0x08146e39 in XtInitializeWidgetClass ()
  #4  0x08146fc7 in xtWidgetAlloc ()
  #5  0x0814714e in xtCreate ()
  #6  0x08147a45 in _XtAppCreateShell ()
  #7  0x08147ac2 in XtAppCreateShell ()
  #8  0x08089534 in x_window (f=0x83bc000, window_prompting=3, minibuffer_only=0) at xfns.c:2632
  #9  0x0808ab29 in Fx_create_frame (parms=1479905740) at xfns.c:3318
  (gdb) f 8
  #8  0x08089534 in x_window (f=0x83bc000, window_prompting=3, minibuffer_only=0) at xfns.c:2632
  2632	  shell_widget = XtAppCreateShell (f->namebuf, EMACS_CLASS,

と言う感じです.

libXt を dynamic link にした場合は,

  (gdb) bt
  #0  0x4029c781 in kill () from /lib/libc.so.6
  #1  0x080a3cdc in fatal_error_signal (sig=11) at emacs.c:236
  #2  0x4029c6b8 in sigaction () from /lib/libc.so.6
  #3  0x400c9c95 in _XtCreateWidget () from /usr/X11R6/lib/libXt.so.6
  #4  0x400c9e69 in XtCreateWidget () from /usr/X11R6/lib/libXt.so.6
  #5  0x081649ef in XawVendorShellInitialize ()
  #6  0x400c946b in XtInitializeWidgetClass () from /usr/X11R6/lib/libXt.so.6
  #7  0x400c9439 in XtInitializeWidgetClass () from /usr/X11R6/lib/libXt.so.6
  #8  0x400c9439 in XtInitializeWidgetClass () from /usr/X11R6/lib/libXt.so.6
  #9  0x400c993a in XtInitializeWidgetClass () from /usr/X11R6/lib/libXt.so.6
  #10 0x400ca178 in _XtAppCreateShell () from /usr/X11R6/lib/libXt.so.6
  #11 0x400ca205 in XtAppCreateShell () from /usr/X11R6/lib/libXt.so.6
  #12 0x080871b4 in x_window (f=0x83d3000, window_prompting=3, minibuffer_only=0) at xfns.c:2632
  #13 0x080887a9 in Fx_create_frame (parms=1479889356) at xfns.c:3318
  (gdb) f 12
  #12 0x080871b4 in x_window (f=0x83d3000, window_prompting=3, minibuffer_only=0) at xfns.c:2632
  2632	  shell_widget = XtAppCreateShell (f->namebuf, EMACS_CLASS,
  (gdb) l
  2627	  ac = 0;
  2628	  XtSetArg (al[ac], XtNallowShellResize, 1); ac++;
  2629	  XtSetArg (al[ac], XtNinput, 1); ac++;
  2630	  XtSetArg (al[ac], XtNmappedWhenManaged, 0); ac++;
  2631	  XtSetArg (al[ac], XtNborderWidth, f->output_data.x->border_width); ac++;
  2632	  shell_widget = XtAppCreateShell (f->namebuf, EMACS_CLASS,
  2633					   applicationShellWidgetClass,
  2634					   FRAME_X_DISPLAY (f), al, ac);
  2635	
  2636	  f->output_data.x->widget = shell_widget;

という感じで,どちらも同じ個所で落ちているようですね.

Emacs20 の xfns.c を引っ張り出してきて差分を調べ,色々試してみたんです
が,どうも該当する変更はなさそうでした.

と言うわけで,一応は動くようになったのですが,どうにも原因が分からない
ままなので,気持が悪いです.以上の情報で原因が分かる方がいらしたら教え
てください.宜しくお願いします.

-- 
土屋 雅稔  ( TSUCHIYA Masatoshi )

--- mule-2.3-19.34/src/Makefile.in~	Tue Jul 23 01:56:12 2002
+++ mule-2.3-19.34/src/Makefile.in	Tue Jul 23 02:21:45 2002
@@ -347,7 +347,7 @@
 #ifdef USE_X_TOOLKIT
 #define @X_TOOLKIT_TYPE@
 #if defined (LUCID) || defined (ATHENA)
-LIBW= -lXaw
+LIBW= /usr/X11R6/lib/libXaw.a
 #endif
 #ifdef MOTIF
 #ifdef LIB_MOTIF
@@ -378,7 +378,7 @@
    (Don't forget you need different definitions with and without __GNUC__.)  */
 LIBXT= STATIC_OPTION $(LIBW) LIBXMU -lXt $(LIBXTR6) -lXext DYNAMIC_OPTION
 #else /* not LIBXT_STATIC */
-LIBXT= $(LIBW) LIBXMU -lXt $(LIBXTR6) -lXext
+LIBXT= $(LIBW) LIBXMU /usr/X11R6/lib/libXt.a $(LIBXTR6) -lXext -lXpm
 #endif /* not LIBXT_STATIC */
 
 #else /* not USE_X_TOOLKIT */