gdb
我已经在 Ubuntu 14.04 中使用调试了 C++ 代码。当我将stl
容器传递给print
命令时,它用于打印容器的内容。但一周前我升级到了 Ubuntu 16.04 LTS。现在那些漂亮的打印机不能用了。当我打印它们时,我会得到那些未安装 python 打印机时得到的原始容器输出。
这家伙也有同样的问题。
我的系统上有libstdcxx/v6/python.py
。我libstdc++.so.6.0.21-gdb.py
的自动加载文件夹中也有。当我在 中打印 info Pretty-printer 时gdb
,我得到了打印机列表stl
,因此我知道它们已注册。但是,我的gdb
不打印stl::list
变量。我已启用pretty-printer
,并将打印设置为漂亮。
我的gcc版本是5.4,gdb版本是7.11.1。两者都与Ubuntu 16.04一起安装。我没有手动构建它们。那么我缺少什么明显的东西吗?
答案1
就我而言,该~/.gdbinit
文件有一行:
sys.path.insert(0, '/usr/share/gcc-4.8/python/')
结果改成:(4.8->5)
sys.path.insert(0, '/usr/share/gcc-5/python/')
帮助了。