找回密码
 注册
查看: 3582|回复: 2

关于 gnome-terminal 中运行 vim 导致崩溃

[复制链接]
发表于 2004-6-29 15:07:50 | 显示全部楼层 |阅读模式
关于 gnome-terminal 中运行 vim 导致崩溃,以及 gtk 程序的一些奇怪崩溃的原因

许多人都发现在 gnome-terminal 中运行 vim 会崩溃。对这个问题最后我们发现的线索是,只要删掉 vte.mo,崩溃就不再发生了,由此证明此崩溃与中文 locale 有关,并非程序逻辑有错。

另外一些多次被提及的 gtk 程序神秘崩溃,在出错的终端上往往能看见这样的字样:

[code:1](g_string_erase): assertion `pos >= 0' failed[/code:1]

我们最后的跟踪发现是,由于传递了非合法 UTF8 字符串进入 glib 的字符串函数(比如最常见的 g_log())导致,由此结案。

最近我翻查 gnome 的 bugzilla 时发现,此两个问题都已经得到确认。在 bug#139441 中,确认 vte 由于没有呼叫 bind_textdomain_codeset 设定字符集为 utf-8,导致传递了非法字符串进而引发上述第二个问题。

同时在 bug#139030 中对第二个问题的研究结果认为,glib 处理非 utf-8 串时的崩溃行为应该属于 bug。

由此这一系列问题应该说都得到了合理的解释。至于在相关模块的最新版中是否已经得到修复,还需要试验加以确认
发表于 2004-6-29 17:39:39 | 显示全部楼层
已经成历史. 佩服你的研究精神.
回复 支持 反对

使用道具 举报

发表于 2009-11-1 21:09:51 | 显示全部楼层
我这的gnome-terminal崩溃了,似乎问题还存在
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2021-12-1 03:20 , Processed in 0.052136 second(s), 15 queries .

© 2021 Powered by Discuz! X3.4.

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