Tag Archives: Linux

valgrind的调试fcitx的记录

今天调fcitx和kimpanel,以前杯具的sigpipe再度出现,幸好不使用dbus时不会出现这个问题,要不我还不被骂死…… 上网查了查dbus的sigpipe,信息不多,感觉一头雾水无从选择……相关的一个信息就是dbus的多线程问题,需要用dbus_threads_init_default,这个问题在当年决定用另外的线程来接收dbus信息时就用上了,所以导致我更加百思不得其解…… 幸好这个问题不甚多见,我能reproduce的情况就是,打开拼音,按left ctrl进英文模式,按shift+space切换全半角,然后就sigpipe。甚是杯具。我猜很多人也不这么用,甚至全角都完全不用,所以有幸躲过了。 回到这个问题上来,今天不断的测试之后还是没有解决,倒是有的时候segfault了。赶快看一看,发现问题总是出在property2string这个函数上面,很奇怪,于是祭出valgrind大神救我。 valgrind大神真是好,当年fcitx的dbus功能内存泄露大大滴……用了这个,真是腰不酸了,背不疼了,走路也有劲了,顺道还查出了个fcitx原来隐藏的内存泄露问题。 单纯记录经历就没啥意思了,也说说怎么用上它的,基本上这个命令总是这么敲就好了: valgrind –trace-children=yes –leak-check=full –log-file=filename commands args 其中第一个参数是记录子进程,第二个是显示完整的内存泄露信息,第三个是制定记录输出的文件,默认是重定向到stderr的。 于是乎,果然让我发现了一个问题,是新写的函数updatePropertyByConnectID有个问题,logo_prop这个变量记录了kimpanel第一个图标的信息,这里我在赋值之后将它free掉了……也许就是这个原因导致的,不过再我改过来之前就被亲爱的打发走了…… 回去之后看看是否能解决这个问题。 余下的是杂谈: 话说回来,我还是需要吐吐嘈,dbus实际上大家都在用dbus和glib的绑定(或者qt),这也无可厚非,但是我实在不想为fcitx加入新的依赖,dbus毕竟还是人人都安装的嘛。(什么,你不装dbus,主流桌面你还想用吗,你真的用linux做桌面吗)所以一直只用了dbus的核心部分,结果就没有办法做一个好的事件处理,这让人很苦恼。另外由于开了多线程,幸好有个dbus有个加锁的功能所以才能解决。fcitx确实很轻量级,带来的问题就是可扩展性上的缺失,这也算是一个feature吧……不用kimpanel的人大可以放心不用重新编译,在配置文件里面写上使用dbus接口=0就好,而且默认是不用的,不会带来啥性能和崩溃问题(基本确定,我check过屏蔽的还是很好的)。 用dbus底层接口带来的问题就是得自己搞个轮询……试了试sleep起码没有带来啥性能问题,就暂且放过。 fcitx的界面逻辑和核心逻辑混杂在一起,所以带来了很多问题……但是拆开来难得要做第二个ibus不成吗?……而且恐怕工程量巨大,也没有啥精力去搞这个了…… 其实说起来我还给fcitx搞过整体的utf8化哦……当时倒是有初步结果,只不过最后无疾而终了…… 说起来我为什么一直执着于fcitx,很多人也执着于fcitx呢?其实我执着的原因还蛮简单的,就是兼容性啊,纯底层x写的输入法,没有gtk,qt的依赖,真是很好的输入法。大多数人可能看重的是轻量吧。 fcitx的拼音输入其实还不错,只不过默认的词库小了点,具体的处理也是hand made的。有时候总会觉得有点遗憾,用了附加词库当然好了很多,不过貌似是最近匹配的算法?有时候输入有点小问题。 如果有人port一个新输入法算法过来可能会好很多。其实fcitx有很多人性化的地方,删除用户词库,record,等等都很方便。 不知道yuking对于小企鹅输入法的将来怎么看,活跃着的开发者貌似只有yuking?…… 不知道联系一下学校的协会怎么样

Posted in fcitx development | Tagged , , , , | Leave a comment

KDE4 常用软件

有些人有洁癖,装了qt就不用gtk,装了gtk就不用qt……当然我也有那么点,不过不至于……我的洁癖更主要关注与界面的和谐……(qt和gtk主题的统一) 好回到正题: 文件管理:dolphin,kde 4.4还需多测试,看看情况再说 图片浏览:gwenview pdf阅读:okular,貌似有各种奇怪的格式支持,例如djvu,甚至有chm 终端:konsole,没啥说的,挺好,有些人可能喜欢用yakuake,那个是类似quake的控制台 时事通信:kopete,没有qq,tx去死……要赶上pidgin还有段时间 音乐播放:amarok,音乐管理强大,有在线功能,不过教育网基本上不去…… 邮件收发:kmail,pop3没出过问题,没有用imap 日历管理:korganizer,同步下载google cal 下面是一些常用的,有些不是kde,而是纯qt,有些在用,有些是以前用的: mpd客户端:qmpdclient,还行,不过sonata更顺手一些 影片播放:smplayer,very good!强推,还有就是vlc(哈哈qt界面) BBS:fqterm,没啥问题 git浏览:qgit,挺顺手 虚拟机:virtualbox(哈哈……qt库界面哦),不说了…… chm阅读:kchmviewer,这个有些脑残,目录和页面内容编码是统一的,我这有些糟糕的chm目录也和页面不统一,杯具。更推荐pychmviewer,是pyqt开发的,中文支持稍好,不过竟然索引不排序,导致没法用(我自己修改过……所以还行) 开发:kate,预祝kdevelop早日走上正轨! 纯qt还是缺少一个好用的浏览器,目前暂时看好rekonq,希望作者有把它做大的愿望

Posted in KDE | Tagged , , | 2 Comments

KDE 4.4 Kernel 2.6.33

假期在家,没有动我的archlinux,所以不甚了解情况,回来之后终于升级了,不过暂时没有发现啥差别(毕竟是从以前升级过来的),具体参考以前写的 看图说话——KDE SC 4.4 Beta 2   nepomuk的功能貌似还不错,参考了一个视频 Kerenl 2.6.33发布了,也顺便升级了一下,实际上我只关注ati r600的显卡驱动问题啦,不过在升级之后发现没有渲染错误(噢耶),不过不幸的是性能有所下降……(oh no)…… compiz的kde托盘问题没有得到解决,要不然我就去用compiz了……杯具 archlinux的用户如果想测试可以参考 http://www.linuxsir.org/bbs/thread364320.html 有几个pkgbuild,git版本,但是是生成和官方一样的名字  

Posted in KDE | Tagged , , | Leave a comment

kimpanel fcitx 常见问题

Changelog Update issue 12 Changelog Update issue 10,11,12 Changelog Update issue 3 首先说明一下4.4.0的kimpanel 对应svn版本 = 1087679将要到来的4.4.1的kimpanel 对应svn版本 > 1097687 fcitx 3.6.3 = svn 303 1、用了kimpanel之后plasma的tooltip消失了! 额,这是kimpanel的问题,请使用这个patch重新编译吧 http://aur.archlinux.org/packages/kimpanel-plasmoid-svn/kimpanel-plasmoid-svn/collapse.patch 这个patch非常ugly,但是有效… 2、fcitx的cpu占用100%,杯具啊! 请确保使用fcitx的svn最新版本,如仍有问题请在code.google.com/p/fcitx留下bug report 3、 输入框在桌面边缘总是跳动,好烦啊 这个问题已经找到具体解决方案,是kimpanel在移动窗口的时候采用了两个不同的方式计算边界,一个计算了panel一个没有,可以使用这个 patch修正 http://aur.archlinux.org/packages/kimpanel-plasmoid-svn/kimpanel-plasmoid-svn/position.patch 这个问题我已经扔到bugs.kde.org上面去了,不知道啥时候会修正 AUR已经有这个补丁 4、kimpanel不能保存icon filter吗? … Continue reading

Posted in KDE | Tagged , , , , | Leave a comment

KDE 4.4 RC2 Rocks

今天正式发布了 其实我昨天就尝试了,哈哈哈 nepomuk依然由于akonadi关不了……囧 dolphin依然freeze…… 幸运的是wallpaper获取已经搞定(预料之中,因为bugs.kde.org已经标记为修正) plasma-netbook稳定多了,没注意什么问题,就是用着不习惯,研究研究才能用吧…… 今天看了gnome shell的新版本,KDE 4.4表示压力不大

Posted in KDE | Tagged , , | Leave a comment