galilette
2006-05-11 17:23:43 UTC
Hi, all
The problem mentioned can always be reproduced by:
1) setting LC_CTYPE=zh_CN
2) start an XIM (I tried SCIM and fcitx) that operates with the above
locale.
3) emacs -Q -nw -f server-start (in some x term emulator, say xterm or
urxvt)
4) start several x-framed emacsclient and closing them. Then upon closing
the last one, emacs segfaults.
Curretly I have two ways to avoid this:
1) by setting `emacs*UseXIM: false' in my ~/.Xresources. But you know, we
prefer xim over the leim im.
2) in emacs/src/xterm.c, comment out
if (dpyinfo->display)
XCloseIM (dpyinfo->xim);
but this is quite dirty.
I guess closing the last x-frame somehow trigger an attempt to kill an XIM
reference in the tty server frame, but I don't know much about programming.
Following is a gdb backtrace:
(gdb) backtrace
#0 0x00000000 in ?? ()
#1 0xb7c2b66d in _X11TransWrite () from /usr/lib/libX11.so.6
#2 0xb7c2ffbb in _XError () from /usr/lib/libX11.so.6
#3 0xb7c09244 in XFlush () from /usr/lib/libX11.so.6
#4 0xb7c67fd7 in _XInitIM () from /usr/lib/libX11.so.6
#5 0xb7ceb764 in ?? () from /usr/lib/libX11.so.6
#6 0xbfbfecd8 in ?? ()
#7 0xb7c66969 in _XimFlush () from /usr/lib/libX11.so.6
#8 0xb7c66969 in _XimFlush () from /usr/lib/libX11.so.6
#9 0xb7c5789e in _XimProtoIMFree () from /usr/lib/libX11.so.6
#10 0xb7c3f86d in XCloseIM () from /usr/lib/libX11.so.6
#11 0x080d0231 in x_delete_display (dpyinfo=0x85bc940) at xterm.c:8176
#12 0x080d0a9c in x_delete_terminal (terminal=0x859a140) at xterm.c:10858
#13 0x0805c9be in Fdelete_frame (frame0484948, force7603273) at
frame.c:1549
#14 0x08156bfb in Ffuncall (nargs=2, args=0xbfc00e60) at eval.c:2905
#15 0x08182442 in Fbyte_code (bytestr0402888, vector=-1077932320,
maxdepth=1) at bytecode.c:694
#16 0x081565c7 in funcall_lambda (fun0326396, nargs=1,
arg_vector=0xbfc01034) at eval.c:3089
#17 0x081569d4 in Ffuncall (nargs=2, args=0xbfc01030) at eval.c:2957
#18 0x08182442 in Fbyte_code (bytestr0402888, vector=-1077931984,
maxdepth=1) at bytecode.c:694
#19 0x081565c7 in funcall_lambda (fun0328892, nargs=2,
arg_vector=0xbfc01174) at eval.c:3089
#20 0x081569d4 in Ffuncall (nargs=3, args=0xbfc01170) at eval.c:2957
#21 0x08182442 in Fbyte_code (bytestr0402888, vector=-1077931664,
maxdepth=2) at bytecode.c:694
#22 0x081565c7 in funcall_lambda (fun6366908, nargs=1,
arg_vector=0xbfc01324) at eval.c:3089
#23 0x081569d4 in Ffuncall (nargs=2, args=0xbfc01320) at eval.c:2957
#24 0x08153d8c in Fcall_interactively (function8142561,
record_flag7603273, keys7650724) at callint.c:883
#25 0x080f62bf in Fcommand_execute (cmd8142561, record_flag7603273,
keys0091712, special7603273) at keyboard.c:9964
#26 0x080fd83b in command_loop_1 () at keyboard.c:1865
#27 0x08154ccf in internal_condition_case (bfun=0x80fd4b0 <command_loop_1>,
handlers7668993, hfun=0x80f6c80 <cmd_error>) at eval.c:1474
#28 0x080f0f7e in command_loop_2 () at keyboard.c:1400
#29 0x0815498f in internal_catch (tag0091712, func=0x80f0f50
<command_loop_2>, arg7603273) at eval.c:1212
#30 0x080f0d2e in command_loop () at keyboard.c:1379
#31 0x080f0dd4 in recursive_edit_1 () at keyboard.c:987
#32 0x080f0f2c in Frecursive_edit () at keyboard.c:1049
#33 0x080f0004 in main (argc=3, argv=0xbfc01c04) at emacs.c:1793
(gdb)
Any clue?
regards,
galilette
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.fnord.hu/pipermail/multi-tty/attachments/20060512/c88638d2/attachment.htm
The problem mentioned can always be reproduced by:
1) setting LC_CTYPE=zh_CN
2) start an XIM (I tried SCIM and fcitx) that operates with the above
locale.
3) emacs -Q -nw -f server-start (in some x term emulator, say xterm or
urxvt)
4) start several x-framed emacsclient and closing them. Then upon closing
the last one, emacs segfaults.
Curretly I have two ways to avoid this:
1) by setting `emacs*UseXIM: false' in my ~/.Xresources. But you know, we
prefer xim over the leim im.
2) in emacs/src/xterm.c, comment out
if (dpyinfo->display)
XCloseIM (dpyinfo->xim);
but this is quite dirty.
I guess closing the last x-frame somehow trigger an attempt to kill an XIM
reference in the tty server frame, but I don't know much about programming.
Following is a gdb backtrace:
(gdb) backtrace
#0 0x00000000 in ?? ()
#1 0xb7c2b66d in _X11TransWrite () from /usr/lib/libX11.so.6
#2 0xb7c2ffbb in _XError () from /usr/lib/libX11.so.6
#3 0xb7c09244 in XFlush () from /usr/lib/libX11.so.6
#4 0xb7c67fd7 in _XInitIM () from /usr/lib/libX11.so.6
#5 0xb7ceb764 in ?? () from /usr/lib/libX11.so.6
#6 0xbfbfecd8 in ?? ()
#7 0xb7c66969 in _XimFlush () from /usr/lib/libX11.so.6
#8 0xb7c66969 in _XimFlush () from /usr/lib/libX11.so.6
#9 0xb7c5789e in _XimProtoIMFree () from /usr/lib/libX11.so.6
#10 0xb7c3f86d in XCloseIM () from /usr/lib/libX11.so.6
#11 0x080d0231 in x_delete_display (dpyinfo=0x85bc940) at xterm.c:8176
#12 0x080d0a9c in x_delete_terminal (terminal=0x859a140) at xterm.c:10858
#13 0x0805c9be in Fdelete_frame (frame0484948, force7603273) at
frame.c:1549
#14 0x08156bfb in Ffuncall (nargs=2, args=0xbfc00e60) at eval.c:2905
#15 0x08182442 in Fbyte_code (bytestr0402888, vector=-1077932320,
maxdepth=1) at bytecode.c:694
#16 0x081565c7 in funcall_lambda (fun0326396, nargs=1,
arg_vector=0xbfc01034) at eval.c:3089
#17 0x081569d4 in Ffuncall (nargs=2, args=0xbfc01030) at eval.c:2957
#18 0x08182442 in Fbyte_code (bytestr0402888, vector=-1077931984,
maxdepth=1) at bytecode.c:694
#19 0x081565c7 in funcall_lambda (fun0328892, nargs=2,
arg_vector=0xbfc01174) at eval.c:3089
#20 0x081569d4 in Ffuncall (nargs=3, args=0xbfc01170) at eval.c:2957
#21 0x08182442 in Fbyte_code (bytestr0402888, vector=-1077931664,
maxdepth=2) at bytecode.c:694
#22 0x081565c7 in funcall_lambda (fun6366908, nargs=1,
arg_vector=0xbfc01324) at eval.c:3089
#23 0x081569d4 in Ffuncall (nargs=2, args=0xbfc01320) at eval.c:2957
#24 0x08153d8c in Fcall_interactively (function8142561,
record_flag7603273, keys7650724) at callint.c:883
#25 0x080f62bf in Fcommand_execute (cmd8142561, record_flag7603273,
keys0091712, special7603273) at keyboard.c:9964
#26 0x080fd83b in command_loop_1 () at keyboard.c:1865
#27 0x08154ccf in internal_condition_case (bfun=0x80fd4b0 <command_loop_1>,
handlers7668993, hfun=0x80f6c80 <cmd_error>) at eval.c:1474
#28 0x080f0f7e in command_loop_2 () at keyboard.c:1400
#29 0x0815498f in internal_catch (tag0091712, func=0x80f0f50
<command_loop_2>, arg7603273) at eval.c:1212
#30 0x080f0d2e in command_loop () at keyboard.c:1379
#31 0x080f0dd4 in recursive_edit_1 () at keyboard.c:987
#32 0x080f0f2c in Frecursive_edit () at keyboard.c:1049
#33 0x080f0004 in main (argc=3, argv=0xbfc01c04) at emacs.c:1793
(gdb)
Any clue?
regards,
galilette
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.fnord.hu/pipermail/multi-tty/attachments/20060512/c88638d2/attachment.htm