LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 943|回复: 6

[求助]部分GUI程序一运行就报段错误,但Gnome正常运行

[复制链接]
发表于 2008-7-2 19:56:18 | 显示全部楼层 |阅读模式
我运行mkvtoolnix的GUI时发现“段错误”,查到它用wxWidgets。前段时间doxygen也是GUI出错,但它是用Qt3的。
如何判断是哪出错了?

在putty+Xming下都是“段错误”,在NX Client下是只有Qt3的那个“段错误”,wxWidgets那个无报错也没显示窗口。
xclock是正常的,应该不关远程显示的关系吧?

刚发现qtdemo是正常的,那到底是啥原因?
发表于 2008-7-2 22:34:33 | 显示全部楼层
很遗憾,鄙人不知道。不过鄙人以为最好把出错信息帖出来,可能更有利于解决。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-2 23:41:17 | 显示全部楼层
galaxy@wwww ~ $ doxywizard
段错误
galaxy@wwww ~ $

叫我贴啥才完整……
回复 支持 反对

使用道具 举报

发表于 2008-7-2 23:53:10 | 显示全部楼层
strace
ltrace
gdb

google "gentoo bug report"
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-3 00:50:06 | 显示全部楼层
ltrace log:
qt3那个
_ZN7QWidget16staticMetaObjectEv(0x80da4e8, 0xb7750120, 0xbf9fb54c, 0xb7ed6318, 0x80e99c0) = 0x80b9830
_ZN14QPtrCollection7newItemEPv(0x80b9bb8, 0x80e99c0, 0x19fb418, 0xb7efaff4, 0x80e99c0) = 0x80e99c0
_ZN7QWidget17setBackgroundModeEN2Qt14BackgroundModeE(0x80e99c0, 4, 0xbf9fb488, 0xb7efaff4, 0xb7efaff4) = 0
_ZN7QWidget13setSizePolicyE11QSizePolicy(0x80e99c0, 1, 0xbf9fb488, 0xb7efaff4, 0xb7efaff4 <unfinished ...>
_ZNK7QWidget10sizePolicyEv(0xbf9fb438, 0x80e99c0, 4, 0xb7efaff4, 0x80e99c0) = 0xbf9fb438
<... _ZN7QWidget13setSizePolicyE11QSizePolicy resumed> ) = 0
<... _ZN11QPushButtonC1ERK7QStringP7QWidgetPKc resumed> ) = 0
--- SIGSEGV (Segmentation fault) ---
+++ killed by SIGSEGV +++

wxWidgets那个:
_ZN12wxWindowBase12SetValidatorERK11wxValidator(0x8214e00, 0x81756a0, 58, 0xb793a348, 0xb7c37ff4) = 0
_ZN8wxWindow8AddChildEP12wxWindowBase(0x81ccc00, 0x8214e00, 0x81c6a90, 393218, 0xb7a45400) = 0xb7c3df6c
_ZN12wxWindowBase17InheritAttributesEv(0x8214e00, 0xb7ba2583, 0xb7a45200, 0, 0x8214e00) = 0
_ZN8wxWindow16ApplyWidgetStyleEb(0x8214e00, 0, 0x8173608, 0x81c29a4, 0xb7a9ab00 <unfinished ...>
_ZNK12wxWindowBase10IsTopLevelEv(0x8214e00, 0xb7f86000, 0x81c29a8, 0x81c29a4, 0xb7c37ff4) = 0
<... _ZN8wxWindow16ApplyWidgetStyleEb resumed> ) = 1
_ZN12wxWindowBase18SetBestFittingSizeERK6wxSize(0x8214e00, 0x8173608, 0x8173608, 0x81c29a4, 0xb7a9ab00 <unfinished ...>
_ZN12wxWindowBase14DoSetSizeHintsEiiiiii(0x8214e00, -1, -1, -1, -1) = -1
--- SIGSEGV (Segmentation fault) ---
+++ exited (status 0) +++

感觉是wx的问题。

make.conf中关于编译的:
CFLAGS="-O2 -march=nocona -pipe -fstack-protector -finline-functions -msse3 -funswitch-loops -fomit-frame-pointer -falign-functions=64 -freg-struct-return"
CXXFLAGS="${CFLAGS}"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"

CHOST="i686-pc-linux-gnu"
MAKEOPTS="-j3"

我是否CFLAGS加多了?(Core Duo2 6300的)
回复 支持 反对

使用道具 举报

发表于 2008-7-3 05:50:26 | 显示全部楼层
很难说,不过一般CFLAGS里如果超过-O2 -march -fomit-frame-pointer -pipe的话,出问题就只能自己兜着了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-4 22:00:10 | 显示全部楼层
CFLAGS="-O2 -march=nocona -pipe -fomit-frame-pointer -msse3"
然后把QT,wxGTK,doxygen都remerge后正常。
估计是-fstack-protector的关系。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表