我已经搜索了很多关于如何在 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 脚本。哎呀!

解决方案:

  • 首先,确保您的主文件夹中有所需的“.gdbinit”文件——您的超链接引用的那个。这将通知 GDB 在哪里寻找
    需要 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”shell 命令将 Python2 脚本转换为 Python3 脚本。例如:

    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 文件,您需要执行以下操作:
  • 在包含其他 pretty-print 脚本的文件夹中,创建一个文件并将其命名为 libstdcxx.py
  • 转到以下网页:

    http://gcc.gnu.org/svn/gcc/trunk/libstdc++-v3/python/libstdcxx/v6/printers.py

    现在,复制网页内容并将其粘贴到新创建的 libstdcxx.py 文件中。

    由于这个文件来自 gcc,它很可能是一个 Python3 脚本——你必须看看。
  • 10-08 09:45