Tk - segfaults quando eu uso o widget (botão, o texto)
-
14-11-2019 - |
Pergunta
Eu compilei Tcl/Tk para a minha aplicação.Quando eu abrir minha aplicação, eu recebo uma janela (devido a Tk_init) que eu posso manipular:
> wm title . "mysh"
> wm geometry . 300x300
Mas quando eu tento botão ou qualquer um dos outros widgets que segfaults
> button .b
Segmentation fault
Eu carreguei isso no gdb e dirigiu uma volta de rastreamento
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 ()
Eu acho que existe algum problema com as Fontes.Alguma idéia para resolver isso?
EDITAR 1 (Abr 01 2011):
% 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 (04 de Abril de 2011)
% cat /etc/*-release
CentOS release 4.6 (Final)
% cat /proc/version
Linux version 2.6.9-67.ELsmp (mockbuild@builder10.centos.org) (gcc version 3.4.6 20060404 (Red Hat 3.4.6-9)) #1 SMP Fri Nov 16 12:49:06 EST 2007
Solução
Você esta pergunta em comp.lang.tcl, e o solução alternativa é especificar --disable-xft
quando a configuração de Tk.
Eu suspeito que a causa real é uma falha de ligação de um analisador de XML, o que foi relatado como sendo um problema potencial em algumas versões recentes do Linux devido a uma mudança do sistema para a forma que as dependências transitivas são processados.(Eu me esqueça do fornecedor responsável;Eu não estava prestando muito atenção para o desenvolvedor de discussão onde este foi perscrutados recentemente.) Você pode relatar o que ldd
relatórios para o Tk biblioteca (sem solução) e que sistema operacional você está no edifício?Também, exatamente qual a versão do Tk você está tentando construir contra?Observe também, que é muito mais útil usar o --enable-symbols
configurar a opção para Tcl e Tk quando o rastreamento de um problema, como o que permite obter melhores informações em rastreamentos de pilha.