【问题标题】:Import Error: No module name libstdcxx导入错误:没有名为 libstdcxx 的模块
【发布时间】:2015-11-30 03:14:51
【问题描述】:

当我使用 gdb 调试带有 分段错误 的 C++ 程序时,我在 gdb 中出现了这个错误。

Traceback(最近一次调用最后一次): 文件“/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。我已经google了,但没有得到答案。任何人都可以解决我的错误吗?非常感谢。

【问题讨论】:

标签: python c++ c linux


【解决方案1】:

这是 /usr/lib/debug/usr/lib/$triple/libstdc++.so.6.0.18-gdb.py 中的一个错误; 启动gdb时,请输入:

python sys.path.append("/usr/share/gcc-4.8/python");

【讨论】:

    【解决方案2】:

    我在 emacs 中使用 gdb 时遇到了这个错误。 (在 docker 容器中 - ubuntu) 我像下面这样尝试过,效果很好。

    (1) 打开 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
    

    (2) 修改该文件(libstdc++.so.x.x.x-gdb.py ) 如下所示。

    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
    

    (3)再次执行gdb

    Type "apropos word" to search for commands related to "word"...
    Reading symbols from ./a.out...done.
    (gdb) b main
    Breakpoint 1 at 0x400ae9: file vector7.cpp, line 7.
    (gdb) r
    Starting program: /home/dplee/work/study_room/c++/a.out 
    
    Breakpoint 1, main () at vector7.cpp:7
    7       vector<int> v(10);
    (gdb) list
    2   #include <vector>
    3   using namespace std;
    4   
    5   int main()
    6   {
    7       vector<int> v(10);
    8       int num = 0;
    9   
    10      for(auto& i : v)
    11      {
    (gdb) 
    

    【讨论】:

      【解决方案3】:

      我从 gcc 安装路径中选择了 libstdcxx,这个错误对我来说消失了。

      sys.path.insert(0, '/global/freeware/Linux/RHEL6/gcc-6.2.0/share/gcc-6.2.0/python')
      

      【讨论】:

      • 在我的环境中本地安装的 gcc 路径也为我工作!
      【解决方案4】:

      如果您使用sudo 启动 gdb,请确保您的 PATH 正确。

      试试这个sudo PATH=$PATH gdb ...

      【讨论】:

        猜你喜欢
        • 2018-07-10
        • 2012-05-25
        • 2012-03-16
        • 2011-12-10
        • 2016-07-18
        • 2018-07-06
        • 1970-01-01
        • 2019-07-20
        相关资源
        最近更新 更多