LinuxSir.cn,穿越时空的Linuxsir!

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

有关gtk程序因段错误无法启动的一个可能原因

[复制链接]
发表于 2012-2-26 14:59:31 | 显示全部楼层 |阅读模式
我用kde4,近日所有gtk程序,如firefox、google-chrome等均因“段错误”无法启动,本打算emerge -e world 一下,后发现root用户没有问题,遂新建普通用户测试,也没有问题。于是把~/里的所有文件mv到其它地方,然后不断移回~,最后发现是~/.local/share/mime/里的一个cache文件出问题,解决办法是删掉它。

后分析出错原因,应该是使用wine增加了windows程序,后又删除所致。

记之以助同病。
发表于 2012-2-26 15:34:56 | 显示全部楼层
还有这么离奇的故障,见识了,谢谢分享。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-2-26 19:20:12 | 显示全部楼层
再多说几句。
谁能告诉我,一但出现段错误,应该怎样跟踪并确定问题?
我这次碰到的这个问题就是开始的时候找不到详细的错误提示,结果逼得我差点emerge -e了,也幸亏没这么干,不然更悲剧。
回复 支持 反对

使用道具 举报

发表于 2012-2-26 20:36:14 | 显示全部楼层
应该用gdb做debug:
http://www.gentoo.org/proj/en/qa/backtraces.xml

可能需要重新编译一个简单的用来测试的GTK+程序、glib和gtk+,得到它们的debugging symbols,才能找到准确的信息。注意FEATURES中一定要有"splitdebug"和"compressdebug“,而千万不能有“nostrip“。compressdebug之前pavuk的debugging symbols占了56MB,compressdebug后是1.6MB...

得到"bt full”的完整backtrace之后,可以选择自己找到bug,然后提供patch。(相当简单的,我几天前调试一个pavuk中的segfault问题,涉及到gtk+:2/glib,只需要基本的C知识。当然对gtk+2有深刻认识的开发者可能不用debug就发现问题了,而我用了5个小时... )如果感觉有困难,也可以直接向upstream(GTK+)报bug,如果能确定问题是wine引起的,winehq那边也可以报一个。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-2-26 22:20:07 | 显示全部楼层
多谢指点。。。。
回复 支持 反对

使用道具 举报

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

本版积分规则

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