1

如何让 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/>.
4

2 回答 2

3

我在我的 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)

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

于 2013-09-03T20:55:03.407 回答
1

在 Suse 上报告了类似的问题

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

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

Fedora 和 Suse gdb 发行版都有一个不符合 GNU 编码标准的 gdb 标头。请参阅已发布到 Fedora 错误跟踪器的错误:

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

于 2013-09-05T20:36:46.200 回答