我已经搜索了很多关于如何在 KDevelop 中启用 pretty-print 没有希望。
我找到了 this 链接并实现了那里提到的内容。然后在“启动器配置”中,我将我的 gdbinit 文件添加为“配置 gdb 脚本”。但它没有效果。
它在旧版本的 KDevelop 中运行良好,无需手动配置,但将我的 Ubuntu 升级到 14.04 并将 KDevelop 升级到 v4.6.0 似乎是个失误。
任何想法如何在 KDevelop 中启用 pretty-print ?
最佳答案
是的,我在 Ubuntu 13.10 和 KDevelop 4.5.1 上也遇到了同样的问题。下面,我已经包括了问题和解决方案。
问题:
Ubuntu 13.10 使用 GDB 7.61,它读取 Python3 pretty-print 脚本,但 Ubuntu 13.10 附带 Python2 pretty-print 脚本。哎呀!
解决方案:
需要 Python3 pretty-print 脚本。不用说,您可能需要更新“.gdbinit”中的路径。我的,看起来像这样:
Python
导入系统
sys.path.insert(0, '/usr/share/kde4/apps/kdevgdb/printers')
从 qt4 导入 register_qt4_printers
register_qt4_printers(无)
从 kde4 导入 register_kde4_printers
register_kde4_printers(无)
从 libstdcxx 导入 register_libstdcxx_printers
register_libstdcxx_printers(无)
结束
2to3 -w/usr/share/kde4/apps/kdevgdb/printers/qt4.py
2to3 -w/usr/share/kde4/apps/kdevgdb/printers/libstdcxx.py
我不需要转换 kde4.py 脚本:它已经是一个 Python3 脚本。
注意: 为了安全起见,在进行转换之前备份脚本文件——你永远不知道。
这就是它的全部内容,启动 KDevelop 并离开你......
实际上,您可以使用 gdb shell 命令来启动 GDB 并确保您的所有 Python 脚本都是版本 3:如果您没有收到任何读取错误,您就知道一切正常。如果它产生读取错误,只需转换这些脚本。
仅供引用:要退出 GDB,只需输入“quit”并按“Enter”键:(gdb) quit
附录:
如果您的系统不包含 libstdcxx.py 文件,您需要执行以下操作:
http://gcc.gnu.org/svn/gcc/trunk/libstdc++-v3/python/libstdcxx/v6/printers.py
现在,复制网页内容并将其粘贴到新创建的 libstdcxx.py 文件中。
由于这个文件来自 gcc,它很可能是一个 Python3 脚本——你必须看看。