如何让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/>.
答案 0 :(得分: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:]
之后添加version[1]
,我告诉脚本无条件地跳过第一个字符,这在我的机器上需要发生。这可能不是一个长期的修复,但它让我的pyclewn工作=)
答案 1 :(得分:1)
Suse在
报道了一个类似的问题http://sourceforge.net/p/pyclewn/bugs/119/
现在已经在pyclewn开发分支中解决了这个问题 还解决了Fedora(7.6-32.fc19)的问题。所以这两个问题 将在下一个pyclewn版本1.11中修复。
Fedora和Suse gdb发行版都有一个gdb标题 不符合GNU编码标准。请参阅已有的错误 发给Fedora bug跟踪器: