Fedora 19 Pyclewn无法找到GDB版本



如何获得pyclewn以获得我的gdb版本?

[mehoggan@localhost emulator]$ pyclewn
gdb  CRITICAL response to "show version":
***START***
=thread-group-added,id="i1"
~"GNU gdb (GDB) Fedora (7.6-32.fc19)n"
~"Copyright (C) 2013 Free Software Foundation, Inc.n"
~"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>nThis is free software: you are free to change and redistribute it.nThere is NO WARRANTY, to the extent permitted by law.  Type "show copying"nand "show warranty" for details.n"
~"This GDB was configured as "x86_64-redhat-linux-gnu".nFor bug reporting instructions, please see:n"
~"<http://www.gnu.org/software/gdb/bugs/>.n"
***END***

vim  CRITICAL 
Exception in pyclewn:
<class 'clewn.ClewnError'>
"cannot find the gdb version"
source line: "raise ClewnError('cannot find the gdb version')"
at /usr/lib64/python2.7/site-packages/clewn/gdb.py:340
pyclewn aborting...

[mehoggan@localhost emulator]$ gdb --version
GNU gdb (GDB) Fedora (7.6-32.fc19)
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.

我在我的Red Hat盒子上遇到了同样的问题。我通过转到引用的文件和行号:/usr/lib64/python2.7/site-packages/clewn/gdb.py:340并进行以下修复来修复它:

从328线开始:

            version = ''.join(takewhile(lambda x: x.isdigit() or x == '.',
            version[1]))

并将其更改为:

            version = ''.join(takewhile(lambda x: x.isdigit() or x == '.',
            version[1][1:]))

问题是它如何处理版本字符串中的第一个"("字符:

[root@localhost ~ 03:52 PM] $ gdb -v
GNU gdb (GDB) Red Hat Enterprise Linux (7.0.1-42.el5)
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.

它只使用这个输出的第一行:

GNU gdb (GDB) Red Hat Enterprise Linux (7.0.1-42.el5)

通过在version[1]之后添加[1:],我告诉脚本无条件跳过第一个字符,这在我的机器上是需要发生的。这可能不是一个长期的解决方案,但它让我的pyclewn工作起来了=)

据报道,的Suse也存在类似问题

http://sourceforge.net/p/pyclewn/bugs/119/

这个问题现在在pyclewn开发分支中得到了解决还修复了Fedora(7.6-32.fc19)的问题。所以这两个问题将在下一个pyclewn版本1.11中修复。

Fedora和Suse gdb发行版都有一个gdb头不符合GNU编码标准。参考已经出现的错误发布给Fedora漏洞跟踪器,地址:

https://bugzilla.redhat.com/show_bug.cgi?id=1004949

最新更新