当我使用gdb使用分段错误调试我的C ++程序时,我在gdb中遇到此错误。
追踪(最近一次通话): 文件“/ usr / share / gdb / auto-load / usr / lib / x86_64-linux-gnu / libstdc ++。so.6.0.19-gdb.py”,第63行, 来自libstdcxx.v6.printers导入register_libstdcxx_printers ImportError:没有名为'libstdcxx'的模块
我正在使用Gdb 7.7.1和g ++版本4.8.4。我用谷歌搜索但没有得到答案。任何人都可以解决我的错误吗?非常感谢你。
答案 0 :(得分:17)
这是/usr/lib/debug/usr/lib/$triple/libstdc++.so.6.0.18-gdb.py中的错误; 当你启动gdb时,请输入:
python sys.path.append("/usr/share/gcc-4.8/python");
答案 1 :(得分:10)
我在emacs中使用gdb时遇到此错误。 (在docker容器中 - ubuntu) 我尝试过如下并且效果很好。
(1)打开libstdc ++。so.x.x.x-gdb.py
(define (sublis alist tree)
(if (pair? tree)
(cons (sublis alist (car tree))
(sublis alist (cdr tree)))
(if (assv tree alist)
(cdr (assv tree alist))
tree)))
(2)修改该文件(libstdc ++。so.x.x.x-gdb.py )如下所示。
sh> sudo vi /usr/share/gdb/auto-load/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19-gdb.py
(3)再次执行gdb
import sys
import gdb
import os
import os.path
pythondir = '/usr/share/gcc-4.8/python'
libdir = '/usr/lib/x86_64-linux-gnu'
sys.path.append(pythondir) <-- add this code
答案 2 :(得分:0)
如果您使用sudo
启动gdb,请确保PATH正确无误。
试试这个sudo PATH=$PATH gdb ...
答案 3 :(得分:0)
我从gcc安装路径中选择了libstdcxx,这个错误对我来说消失了。
sys.path.insert(0, '/global/freeware/Linux/RHEL6/gcc-6.2.0/share/gcc-6.2.0/python')