0
我编译了Tcl/Tk到我的应用程序。当我打开我的申请,我得到一个窗口(由于Tk_init),我可以操纵:Tk - 段错误,当我使用小部件(按钮,文本)
> wm title . "mysh"
> wm geometry . 300x300
但是当我尝试按钮或任何其他部件的它出现segfaults
> button .b
Segmentation fault
我装这在gdb并跑了回去跟踪
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 182897358752 (LWP 14112)]
0x0000000100000000 in ??()
(gdb) bt
#0 0x0000000100000000 in ??()
#1 0x0000000000fe3004 in XML_ParseBuffer()
at <local>/software/gcc_64/include/c++/3.3.6/bits/stl_pair.h:83
#2 0x0000000000fa4955 in FcConfigParseAndLoad()
at <local>/software/gcc_64/include/c++/3.3.6/bits/stl_pair.h:83
#3 0x0000000000f9d3cc in FcInitLoadConfig()
at <local>/software/gcc_64/include/c++/3.3.6/bits/stl_pair.h:83
#4 0x0000000000f9d416 in FcInitLoadConfigAndFonts()
at <local>/software/gcc_64/include/c++/3.3.6/bits/stl_pair.h:83
#5 0x0000000000f9d5bd in FcInit()
at <local>/software/gcc_64/include/c++/3.3.6/bits/stl_pair.h:83
#6 0x0000000000f97015 in FcConfigGetCurrent()
at <local>/software/gcc_64/include/c++/3.3.6/bits/stl_pair.h:83
#7 0x0000000000f98906 in FcConfigSubstituteWithPat()
at <local>/software/gcc_64/include/c++/3.3.6/bits/stl_pair.h:83
#8 0x0000000000edf28c in InitFont()
at <local>/software/gcc_64/include/c++/3.3.6/bits/stl_pair.h:83
#9 0x0000000000edf52f in TkpGetFontFromAttributes()
at <local>/software/gcc_64/include/c++/3.3.6/bits/stl_pair.h:83
#10 0x0000000000f00c4c in Tk_AllocFontFromObj()
at <local>/software/gcc_64/include/c++/3.3.6/bits/stl_pair.h:83
#11 0x0000000000efa4d2 in DoObjConfig()
at <local>/software/gcc_64/include/c++/3.3.6/bits/stl_pair.h:83
#12 0x0000000000efaa3a in Tk_InitOptions()
at <local>/software/gcc_64/include/c++/3.3.6/bits/stl_pair.h:83
#13 0x0000000000e70db2 in ButtonCreate()
at <local>/software/gcc_64/include/c++/3.3.6/bits/stl_pair.h:83
#14 0x0000000001588581 in TclEvalObjvInternal()
我认为有一些字体问题。任何想法解决这个问题?
EDIT 1(2011年4月1日):
% uname -a
Linux scdbuild04 2.6.9-67.ELsmp #1 SMP Fri Nov 16 12:49:06 EST 2007 x86_64 x86_64 x86_64 GNU/Linux
% ldd libtk8.5.so
libX11.so.6 => /usr/X11R6/lib64/libX11.so.6 (0x0000002a957b7000)
libXss.so.1 => /usr/X11R6/lib64/libXss.so.1 (0x0000002a959b0000)
libXext.so.6 => /usr/X11R6/lib64/libXext.so.6 (0x0000002a95ab3000)
libdl.so.2 => /lib64/libdl.so.2 (0x0000002a95bc5000)
libm.so.6 => /lib64/tls/libm.so.6 (0x0000002a95cc8000)
libc.so.6 => /lib64/tls/libc.so.6 (0x0000002a95e4e000)
/lib64/ld-linux-x86-64.so.2 (0x000000552aaaa000)
EDIT 2(2011年4月4日)
% cat /etc/*-release
CentOS release 4.6 (Final)
% cat /proc/version
Linux version 2.6.9-67.ELsmp ([email protected]) (gcc version 3.4.6 20060404 (Red Hat 3.4.6-9)) #1 SMP Fri Nov 16 12:49:06 EST 2007
在帖子中添加了'ldd'和'uname -a'信息。我将在后面打开'--enable-symbols'后发布堆栈跟踪。 – Anand 2011-04-01 15:40:13
我用'--enable-symbols'和'gdb'中的'bt'编译了同样的信息。应该在'gdb'或'tcl/tk'编译中启用任何其他开关? – Anand 2011-04-01 17:06:39
@Anand:我真的在想哪个供应商。红帽? SUSE? Debian的? – 2011-04-02 08:29:00