LinuxSir.cn,穿越时空的Linuxsir!

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

关于用gdb去调试scim和scim-fcitx

[复制链接]
发表于 2006-8-17 13:35:14 | 显示全部楼层 |阅读模式
尽管和输入法无关, 但是可能这里的大侠们之前做过类似的工作, 所以也在这里发一个帖子.

scim 输入法平台会使用scim-fcitx 输入法engine的动态链接库. 我现在要用gdb去调试一下scim-fcitx输入法engine. 如果只用gdb scim, 找不到关于fcitx动态库的相关信息. 如果用attach + scim_launcher (socket) pid的话, 可以看到scim 所 load到的各个输入法engine的so文件. 而且这个时候gdb也可以找的到有关fcitx的文件和函数的. 可设置断点后scim的程序就会没有响应. 打开终端也会出错.这个时候只能强行关闭终端/log off/或者重新启动. 请问应该怎样去作这样的调试呢?
发表于 2006-8-17 23:31:58 | 显示全部楼层
you can use cout to print something out to see how it works

or use scim::debug

do not forget to turn on verbose to see debug information
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-8-18 11:33:15 | 显示全部楼层
感谢liuspider! 不可以实时方式进行debug嘛? 用了cout, print, cerr都不能在终端上打印信息.后来不得不输出到文件方式打印消息,不过这种方式不能设置断点,不是很适合.
回复 支持 反对

使用道具 举报

发表于 2006-8-28 14:08:17 | 显示全部楼层
Post by multinet
尽管和输入法无关, 但是可能这里的大侠们之前做过类似的工作, 所以也在这里发一个帖子.

scim 输入法平台会使用scim-fcitx 输入法engine的动态链接库. 我现在要用gdb去调试一下scim-fcitx输入法engine. 如果只用gdb scim, 找不到关于fcitx动态库的相关信息. 如果用attach + scim_launcher (socket) pid的话, 可以看到scim 所 load到的各个输入法engine的so文件. 而且这个时候gdb也可以找的到有关fcitx的文件和函数的. 可设置断点后scim的程序就会没有响应. 打开终端也会出错.这个时候只能强行关闭终端/log off/或者重新启动. 请问应该怎样去作这样的调试呢?


呵呵,我以前移植scim-fcitx的时候是在系统里启动两个输入法,一个是正在开发的scim-fcitx(也就是scim输入法),另一个就是真正的fcitx,其中我用来调试的窗口用的输入法是用fcitx的,这样即使scim挂住了我的调试窗口不会受影响。当然,也可以让调试窗口不使用任何输入法。我都有点记不清了,当时应该写个文档的。

这样调试是蛮麻烦的,没办法,以后再开发的时候真的要用scim::debug了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-8-29 10:17:20 | 显示全部楼层
flonk_zj, 请问怎样用scim::debug呢? 我看到的好像scim::debug就是打印消息. 我设置了debug选项,可是没有任何输出. 我估计是和连printf 都打印不出来消息有关的. 目前还是只能打印到文件.
回复 支持 反对

使用道具 举报

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

本版积分规则

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