cht電腦資訊gcin
adm Find login register

gcin gtk-im與firefox 3相容性似乎有問題?

Hydonsingore
1 gcin gtk-im與firefox 3相容性似乎有問題?
Promote 0 Bookmark 12008-05-19quote  

System: Gentoo Linux, xorg-1.4, xfce

App: Firefox 3.0 RC1 (official binary), gcin-1.4.0

發作情形:

運作可,但每次離開Firefox一定跳出Crash report,要求回報,從部份設定無法於下次開啟firefox時生效可知firefox沒有完成關閉流程。X環境中gcin 為GTK immodule ( GTK_IM_MODULE=gcin ),即便不加此參數,gcin亦為預設輸入法,所以也會發作在非常clean的環境之下。

如果在firefox startup script中加上 GTK_IM_MODULE=xim,則上述crash情形不會發生。

Configuration script中的 --new_gtk_im 經測試發現沒有影響。

 

guest
3
Promote 0 Bookmark 02008-05-20quote  

 Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1238406928 (LWP 7016)]
0xb50262df in ?? ()
(gdb) where
#0  0xb50262df in ?? ()
#1  0xb6c824d1 in g_cclosure_marshal_VOID__BOOLEAN ()
   from /usr/lib/libgobject-2.0.so.0
#2  0xb6c74f9d in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#3  0xb6c892c0 in ?? () from /usr/lib/libgobject-2.0.so.0
#4  0xb6c8af0e in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#5  0xb6c8b24b in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#6  0xb6d99013 in gdk_display_close () from /usr/lib/libgdk-x11-2.0.so.0
#7  0xb745b34a in ?? () from /home/dhliu/firefox/libxul.so
#8  0xb6141020 in ?? ()
#9  0x0000000a in ?? ()
#10 0x00000000 in ?? ()

 

valgrind firefox 

==7034== Jump to the invalid address stated on the next line
==7034==    at 0x68F82DF: ???
==7034==    by 0x5D4001F: ???
==7034==  Address 0x68f82df is not stack'd, malloc'd or (recently) free'd
==7034==
==7034== Syscall param rt_sigaction(act->sa_mask) points to uninitialised byte(s)
==7034==    at 0x40419B7: __libc_sigaction (in /lib/i686/libpthread-2.7.so)
==7034==    by 0x4041AA2: sigaction (in /lib/i686/libpthread-2.7.so)
==7034==    by 0x41E7B55: (within /home/dhliu/firefox/libxul.so)
==7034==    by 0x41E7CF0: (within /home/dhliu/firefox/libxul.so)
==7034==    by 0x41E39C9: (within /home/dhliu/firefox/libxul.so)
==7034==    by 0x4041917: (within /lib/i686/libpthread-2.7.so)
==7034==    by 0x5D4001F: ???
==7034==  Address 0xbe8bfb78 is on thread 1's stack
==7090==
==7090== Thread 2:
==7090== Conditional jump or move depends on uninitialised value(s)
==7090==    at 0x41EA85E: (within /home/dhliu/firefox/libxul.so)
==7090==    by 0x41E940B: (within /home/dhliu/firefox/libxul.so)
==7090==    by 0x56C847D: clone (in /lib/i686/libc-2.7.so)
==7090==
==7090== Syscall param write(buf) points to uninitialised byte(s)
==7090==    at 0x40402CB: (within /lib/i686/libpthread-2.7.so)
==7090==    by 0x41EA970: (within /home/dhliu/firefox/libxul.so)
==7090==    by 0x41E90B4: (within /home/dhliu/firefox/libxul.so)
==7090==    by 0x41E9B21: (within /home/dhliu/firefox/libxul.so)
==7090==    by 0x41EA5EE: (within /home/dhliu/firefox/libxul.so)
==7090==    by 0x41EA0F5: (within /home/dhliu/firefox/libxul.so)
==7090==    by 0x41EA14D: (within /home/dhliu/firefox/libxul.so)
==7090==    by 0x41E8FFE: (within /home/dhliu/firefox/libxul.so)
==7090==    by 0x41E93D6: (within /home/dhliu/firefox/libxul.so)
==7090==    by 0x56C847D: clone (in /lib/i686/libc-2.7.so)
==7090==  Address 0xbe8c039c is on thread 1's stack
==7034==

eliu
4
Promote 0 Bookmark 02008-05-20quote  
Hydonsingore
5
Promote 0 Bookmark 02008-06-07quote  

Firefox 3.0RC2 結果相同 (系統環境相同)

將 GTK_IM_MODULE 設為 ipa, xim 或其他都很正常,唯設為gcin時會出問題。

eliu
6
Promote 0 Bookmark 02008-06-08quote  
eliu
8
Promote 0 Bookmark 02008-06-08quote  

找半天還是看不出那邊出問題。gnome-terminal 用的 libgnomebreakpad.so 裏面 memory 的問題似乎很多

 

 ==4495== Invalid read of size 4
==4495==    at 0x59E71FE: google_breakpad::MinidumpFileWriter::Allocate(unsigned) (in /usr/lib/gtk-2.0/modules/libgnomebreakpad.so)
==4495==    by 0x59E729D: google_breakpad::UntypedMDRVA::Allocate(unsigned) (in /usr/lib/gtk-2.0/modules/libgnomebreakpad.so)
==4495==    by 0x59E6224: (within /usr/lib/gtk-2.0/modules/libgnomebreakpad.so)
==4495==    by 0x59E55C8: (within /usr/lib/gtk-2.0/modules/libgnomebreakpad.so)
==4495==    by 0x530147D: clone (in /lib/i686/libc-2.7.so)
==4495==  Address 0x56564f4 is on thread 1's stack
==4495==
==4495== Invalid read of size 4
==4495==    at 0x59E7203: google_breakpad::MinidumpFileWriter::Allocate(unsigned) (in /usr/lib/gtk-2.0/modules/libgnomebreakpad.so)
==4495==    by 0x59E729D: google_breakpad::UntypedMDRVA::Allocate(unsigned) (in /usr/lib/gtk-2.0/modules/libgnomebreakpad.so)
==4495==    by 0x59E6224: (within /usr/lib/gtk-2.0/modules/libgnomebreakpad.so)
==4495==    by 0x59E55C8: (within /usr/lib/gtk-2.0/modules/libgnomebreakpad.so)
==4495==    by 0x530147D: clone (in /lib/i686/libc-2.7.so)
==4495==  Address 0x56564f0 is on thread 1's stack
==4495==
==4495== Invalid read of size 4
==4495==    at 0x59E722A: google_breakpad::MinidumpFileWriter::Allocate(unsigned) (in /usr/lib/gtk-2.0/modules/libgnomebreakpad.so)
==4495==    by 0x59E729D: google_breakpad::UntypedMDRVA::Allocate(unsigned) (in /usr/lib/gtk-2.0/modules/libgnomebreakpad.so)
==4495==    by 0x59E6224: (within /usr/lib/gtk-2.0/modules/libgnomebreakpad.so)
==4495==    by 0x59E55C8: (within /usr/lib/gtk-2.0/modules/libgnomebreakpad.so)
==4495==    by 0x530147D: clone (in /lib/i686/libc-2.7.so)
==4495==  Address 0x56564ec is on thread 1's stack
==4495==
==4495== Invalid read of size 4
==4495==    at 0x59E7145: google_breakpad::MinidumpFileWriter::Copy(unsigned, void const*, int) (in /usr/lib/gtk-2.0/modules/libgnomebreakpad.so)
==4495==    by 0x59E6251: (within /usr/lib/gtk-2.0/modules/libgnomebreakpad.so)
==4495==    by 0x59E55C8: (within /usr/lib/gtk-2.0/modules/libgnomebreakpad.so)
==4495==    by 0x530147D: clone (in /lib/i686/libc-2.7.so)
==4495==  Address 0x56564f4 is on thread 1's stack
==4495==
==4495== Invalid read of size 4
==4495==    at 0x59E5685: (within /usr/lib/gtk-2.0/modules/libgnomebreakpad.so)
==4495==    by 0x530147D: clone (in /lib/i686/libc-2.7.so)
==4495==  Address 0x56564e8 is on thread 1's stack
==4495==
==4495== Invalid read of size 4
==4495==    at 0x59E8E5C: google_breakpad::LinuxThread::ResumeAllThreads() const (in /usr/lib/gtk-2.0/modules/libgnomebreakpad.so)
==4495==    by 0x59E568F: (within /usr/lib/gtk-2.0/modules/libgnomebreakpad.so)
==4495==    by 0x530147D: clone (in /lib/i686/libc-2.7.so)
==4495==  Address 0x0 is not stack'd, malloc'd or (recently) free'd
==4495==
==4495== Process terminating with default action of signal 11 (SIGSEGV): dumping core
==4495==  Access not within mapped region at address 0x0
==4495==    at 0x59E8E5C: google_breakpad::LinuxThread::ResumeAllThreads() const (in /usr/lib/gtk-2.0/modules/libgnomebreakpad.so)
==4495==    by 0x59E568F: (within /usr/lib/gtk-2.0/modules/libgnomebreakpad.so)
==4495==    by 0x530147D: clone (in /lib/i686/libc-2.7.so)
==4481==
==4481== ERROR SUMMARY: 48 errors from 40 contexts (suppressed: 309 from 1)
==4481== malloc/free: in use at exit: 8,389,474 bytes in 41,793 blocks.

eliu
9
Promote 0 Bookmark 02008-06-10quote  

libgnomebreakpad.so 就是用來 report coredump bug,可以拿掉, gnome-terminal 可以執行但是會出現 

 Gtk-Message: Failed to load module "gnomebreakpad": libgnomebreakpad.so: cannot open shared object file: No such file or directory

的 message 

eliu
10
Promote 0 Bookmark 02008-06-10quote  
Hydonsingore
11
Promote 0 Bookmark 02008-06-11quote  

取代過後firefox 3rc2 還是會在結束時跳出 crash report

eliu
12
Promote 0 Bookmark 02008-06-11quote  
eliu
13
Promote 0 Bookmark 02008-06-11quote  
Hydonsingore
14
Promote 0 Bookmark 02008-06-12quote  

取代過後firefox不再顯示crash report了,感謝。

wsun013
15
Promote 0 Bookmark 02008-06-14quote  
請問一下去哪下載已經patch 過的檔案 在cle (gcin 同好會) 底下只有看到 1.4.0 的 release 版
wsun013
17
Promote 0 Bookmark 02008-06-14quote  

感謝calebot 與 eliu 大的協助, 問題不再出現了

Hydonsingore
18
Promote 0 Bookmark 02008-06-15quote  

剛剛發現,使用新的 gtkimcontextgcin.c 之後,configure 時的 --new_gtk_im='N'就沒效了,似乎都會變成 new gtk im。這樣就會引發古時候那個new gtk-im在firefox中造成輸入欄下拉選單閃爍只能選一個的問題(小弟因為這個問題所以一直使用old gtk-im)。在firefox 3系列中網頁中的輸入欄已經沒有這個問題了,可是網址欄和右上角的快速搜尋欄仍然有這個問題。

eliu
19
Promote 0 Bookmark 02008-06-15quote  
Hydonsingore
21
Promote 0 Bookmark 02008-06-15quote  

感謝,拿掉那行就可以用 old gtk-im 了。Pop-up window 對這個幫助不大。因為不開中文直接輸入英文也會有這樣的情形 。

 古時候貼過的影片(目前於Google網頁中輸入已經不會這樣了,但是上面的網址列和快速搜尋欄還是會如影片中這樣無法選擇。)

eliu
22
Promote 0 Bookmark 02008-06-15quote  

去年還是什麼時候有針對這個問題去解決。

所以用 popup 等於把 new-gtk im 關閉。

現在可以用上下鍵來選擇。 

Hydonsingore
23
Promote 0 Bookmark 02008-06-15quote  
確實如您所言。感謝。

cht電腦資訊gcin
adm Find login register
views:56433