it-swarm.com.de

Importfehler: Kein Modulname libstdcxx

Wenn ich mein C++ - Programm mit gdb mit segmentation fault debugge, tritt dieser Fehler in gdb auf.

Traceback (letzter Aufruf zuletzt): Datei "/usr/share/gdb/autoload/usr/lib/x86_64-linux-gnu/libstdc ++. So.6.0.19-gdb.py", Zeile 63, aus libstdcxx .v6.printers import register_libstdcxx_printers ImportError: Kein Modul mit dem Namen 'libstdcxx'

Ich benutze Gdb 7.7.1 und g ++ Version 4.8.4. Ich habe herumgegoogelt, aber keine Antworten bekommen. Kann jemand meinen Fehler beheben? Vielen Dank.

11
toantruong

Dies ist ein Fehler in /usr/lib/debug/usr/lib/$triple/libstdc++.so.6.0.18-gdb.py; Wenn Sie gdb starten, geben Sie bitte Folgendes ein:

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

17
adairjun

Ich habe diesen Fehler bei der Verwendung von gdb in Emacs festgestellt. (in docker container - ubuntu) Ich habe es wie unten versucht und gut funktioniert.

(1) Öffnen Sie 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) Ändern Sie diese Datei (libstdc ++. So.x.x.x-gdb.py) wie unten.

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) Führe gdb erneut aus

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) 
10
cloudrain21

Ich habe libstdcxx aus dem gcc-Installationspfad ausgewählt und dieser Fehler ist für mich verschwunden.

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

Wenn Sie Sudo zum Starten der GDB verwendet haben, vergewissern Sie sich, dass der Pfad korrekt ist.

Versuchen Sie diesen Sudo PATH=$PATH gdb ...

0
Ken H