LinuxSir.cn,穿越时空的Linuxsir!

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

刚刚找到了stardict-3.0.1 festival plugin segfault的根源

[复制链接]
发表于 2007-11-11 15:12:47 | 显示全部楼层 |阅读模式
不过解决方法,还在研究中

<r0bertz> hi jserv--
<r0bertz> 我刚刚找的了stardict-3.0.1的festival plugin segfault的原因
<jserv--> r0bertz, 恭喜
<r0bertz> libestools.so里的一个叫backtrace的符号的引用被解析成了libc里的backtrace,而不是libestools里的backtrace
<r0bertz> 可是,不明白为什么如此
<jserv--> ouch, namespace problem.
<r0bertz> festival运行时,也要解析backtrace,但却是正确的
<r0bertz> jserv--, any details?
<r0bertz> link?
<jserv--> r0bertz, 用 ltrace 去追蹤吧
<r0bertz> ok
<jserv--> r0bertz, 料想跟 libtool 的 default rules 有關
<r0bertz> 谢谢你的提示
<jserv--> Palatis_, 我這個 bot 不只會 say greeting,也會幫忙 debug 啦
<jserv--> r0bertz, 期待您的 stardict
<r0bertz> hehe,您太客气了,我只不过帮个小忙,顺便满足自己的好奇心,XD
发表于 2007-11-11 16:47:25 | 显示全部楼层
is it because of the order of library linking specified in compilation or even of #include statements in the src?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-11-11 22:36:45 | 显示全部楼层
我找到了一个理论上绝对正确,但是未能解释我前面所说的现象(即stardict有问题,而festival没问题)的解决方法
就是在定义backtrace的时候加上static,因为那个backtrace只在它被定义的.cc文件里被用到

至于为什么stardict有问题,而festival没问题,如果有人有兴趣,可以继续研究。我就不再继续了。
回复 支持 反对

使用道具 举报

发表于 2008-1-3 15:37:04 | 显示全部楼层
谢谢,我已经把这个问题报告给upstream了 :)
https://bugzilla.redhat.com/show_bug.cgi?id=242607
回复 支持 反对

使用道具 举报

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

本版积分规则

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