导入错误:没有模块名libstdcxx

2024-06-16 08:23:01 发布

您现在位置:Python中文网/ 问答频道 /正文

< >我用GDB调试我的C++程序,使用<强>分段故障< /强>,我在GDB中出现这个错误。

Traceback (most recent call last): File "/usr/share/gdb/auto-load/usr/lib/x86_64-linux- gnu/libstdc++.so.6.0.19-gdb.py", line 63, in from libstdcxx.v6.printers import register_libstdcxx_printers ImportError: No module named 'libstdcxx'

我使用的是Gdb 7.7.1和g++版本4.8.4。我在网上搜索了一下,但没有得到答案。有人能解决我的错误吗?非常感谢你。


Tags: 程序mostusr错误callfile故障last
3条回答

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

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

在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) 

如果使用sudo启动gdb,请确保路径正确。

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

相关问题 更多 >