[Sumika-devel 20] Re: libuim custom API対応

アーカイブの一覧に戻る

Masahito Omote omote****@t-bas*****
2004年 5月 15日 (土) 07:31:06 JST


おもてです。

On Thu, 13 May 2004 17:26:28 +0900
YamaKen <yamak****@bp*****> wrote:
> なお、このパッチには現在以下の不具合が確認されています。
> 
> ・cannaserverの指定でSEGVする
>   1. "Use remote cannaserver"をチェック
>   2. サーバ名に"hoge"等と入力
>   3. "Use remote cannaserver"のチェックを外す("hoge"は残ったまま)
>   4. Applyすると不特定の箇所でSEGVが発生する。ただしこの一連の手
>      順を踏むとSEGVが発生する事だけは再現性がある

私の環境でも再現しました。backtraceを付けておきましたが、何故uim_quit_canna
が4回もcallされているのかいまいち理解できていません。

さらにこの件の検証の過程でcb_uim_specify_check_button_clickedにおいて、
"Use remote cannaserver"のcheckをトグルすると、最初の条件文が評価されて
しまうことがわかったので、もう少し検証してから改めて報告します。

# 何故正しく連動されるのかがよくわからない

* 環境
   Debian GNU/Linux unstable + kernel 2.6.6
   GTK+ 2.2.4
   gcc 3.3.3
   uim revision: 840

* backtrace
(gdb) bt
#0  0x414c1cc2 in ?? ()
#1  0x40aa4c3a in uim_quit_canna () from /usr/lib/libuim.so.0
#2  0x40aa552a in uim_quit_canna () from /usr/lib/libuim.so.0
#3  0x40aa65e8 in uim_quit_canna () from /usr/lib/libuim.so.0
#4  0x40aa5752 in uim_quit_canna () from /usr/lib/libuim.so.0
#5  0x40aa97cc in uim_quit_canna () from /usr/lib/libuim.so.0
#6  0x40a9f93c in uim_scm_eval () from /usr/lib/libuim.so.0
#7  0x40aa0383 in uim_custom_definition_as_string () from /usr/lib/libuim.so.0
#8  0x0805bf5b in write_uim_config (config=0xbfffec20) at uimconfig.c:387
#9  0x080571cf in cb_uim_config_pane_save_button_clicked (button=0x824a6f8,
    container=0x414c1cb8) at uimcontainer.c:677
#10 0x412a2212 in g_cclosure_marshal_VOID__VOID ()
   from /usr/lib/libgobject-2.0.so.0
.....

* uim_custom_definition_as_stringのどこで落ちているのかを検証
[Thread debugging using libthread_db enabled]
[New Thread 1078437312 (LWP 11775)]
custom_def: (define candidate-window-position "left")
custom_def: (define switch-im-key? )
custom_def: (define enable-im-switch #t)
(snip)
custom_def: (define spellcheck-always-show-window? #t)
custom_def: (define spellcheck-preedit-immediate-commit? #f)
custom_def: (define spellcheck-candidate-op-count 1)

Program received signal SIGTRAP, Trace/breakpoint trap.
[Switching to Thread 1078437312 (LWP 11775)]
0x414c1cc2 in ?? ()

* strace
% strace ./gtk2/sumika
(snip)
write(1, "custom_def: (define prime-nr-can"..., 47custom_def: (define prime-nr-candidate-max 10)
) = 47
write(1, "custom_def: (define generic-nr-c"..., 49custom_def: (define generic-nr-candidate-max 10)
) = 49
write(1, "custom_def: (define generic-cand"..., 50custom_def: (define generic-candidate-op-count 1)
) = 50
write(1, "custom_def: (define generic-use-"..., 54custom_def: (define generic-use-candidate-window? #t)
) = 54
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++
-- 
Masahito Omote(omote****@utyuu*****, omote****@sapme*****, omote****@debia*****)



Sumika-devel メーリングリストの案内
アーカイブの一覧に戻る