Linux Tcl/Tk-在LSF机器上运行时出现SEGFULT
我正在使用Tcl/Tk开发一个gui应用程序。我能够在本地机器上运行gui应用程序,但在LSF机器上运行时失败Linux Tcl/Tk-在LSF机器上运行时出现SEGFULT,linux,x11,tk,Linux,X11,Tk,我正在使用Tcl/Tk开发一个gui应用程序。我能够在本地机器上运行gui应用程序,但在LSF机器上运行时失败 [local] % rs -gui 很好。但以下几点失败了: [local] % bsub -q xyz -Is /bin/csh [lsf01] % rs -gui Segmentation fault 我在gdb中加载了可执行文件,得到了以下跟踪。关于如何解决这个问题有什么想法吗 Program received signal SIGSEGV, Segmentation
[local] % rs -gui
很好。但以下几点失败了:
[local] % bsub -q xyz -Is /bin/csh
[lsf01] % rs -gui
Segmentation fault
我在gdb
中加载了可执行文件,得到了以下跟踪。关于如何解决这个问题有什么想法吗
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1431984992 (LWP 8403)]
0x08932674 in _XimCheckIfLocalProcessing ()
(gdb) bt
#0 0x08932674 in _XimCheckIfLocalProcessing ()
#1 0x089326e8 in _XimCheckIfLocalProcessing ()
#2 0x089326d8 in _XimCheckIfLocalProcessing ()
#3 0x089326e8 in _XimCheckIfLocalProcessing ()
#4 0x08932715 in _XimLocalIMFree ()
#5 0x089294a2 in _XimOpenIM ()
#6 0x089043de in XOpenIM ()
#7 0x088a2155 in TkpSync ()
#8 0x088a1c21 in TkpOpenDisplay ()
#9 0x0883578d in Rechan_Init ()
#10 0x00000000 in ?? ()
编辑1:在本地和lsf计算机上的可执行文件上运行ldd
后添加信息
[local] % ldd rs
linux-gate.so.1 => (0xffffe000)
libdl.so.2 => /lib/libdl.so.2 (0x005a2000)
libtermcap.so.2 => /lib/libtermcap.so.2 (0x00681000)
libnsl.so.1 => /lib/libnsl.so.1 (0x005fe000)
libpthread.so.0 => /lib/tls/libpthread.so.0 (0xf7fb9000)
libutil.so.1 => /lib/libutil.so.1 (0x006a7000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0xf7f8a000)
librt.so.1 => /lib/tls/librt.so.1 (0xf7f76000)
libz.so.1 => /usr/lib/libz.so.1 (0x00695000)
libelf.so.1 => /usr/lib/libelf.so.1 (0xf7f65000)
libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x0097a000)
libm.so.6 => /lib/tls/libm.so.6 (0x0057d000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x005a8000)
libc.so.6 => /lib/tls/libc.so.6 (0x0044f000)
/lib/ld-linux.so.2 (0x00430000)
[lsf] % ldd rs
linux-gate.so.1 => (0xffffe000)
libdl.so.2 => /lib/libdl.so.2 (0x00505000)
libtermcap.so.2 => /lib/libtermcap.so.2 (0x55579000)
libnsl.so.1 => /lib/libnsl.so.1 (0x00562000)
libpthread.so.0 => /lib/tls/libpthread.so.0 (0x00530000)
libutil.so.1 => /lib/libutil.so.1 (0x008fc000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0x0062e000)
librt.so.1 => /lib/tls/librt.so.1 (0x5557e000)
libz.so.1 => /usr/lib/libz.so.1 (0x00544000)
libelf.so.1 => /usr/lib/libelf.so.1 (0x55592000)
libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x006c5000)
libm.so.6 => /lib/tls/libm.so.6 (0x0050b000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00556000)
libc.so.6 => /lib/tls/libc.so.6 (0x003d7000)
/lib/ld-linux.so.2 (0x003bd000)
您可以使用
ldd
查看两种环境中的库是否不同。(如果rs
是脚本,那么在#!
行中的解释器上运行ldd。)@Andy谢谢。我编辑了我的帖子以添加ldd
info。两台机器的输出几乎相同。您使用的是哪个版本的Tk?你已经静态链接了它,所以我无法从ldd输出中分辨出来。@Donal和@Andy我发现了问题所在。我在64位机器上运行32位可执行文件(lsf
),我遇到了这个问题。当我在这个64位机器(lsf
)上运行一个64位可执行文件时,它工作得很好。谢谢你的帮助,真奇怪!我想知道图书馆里到底发生了什么。(但这还不足以让我看起来很正常;XIM的东西完全不透明,让我很害怕。)