Lorsque j'utilise gdb pour déboguer mon programme C++ avec segmentation fault , je viens avec cette erreur dans gdb.
Traceback (dernier appel le plus récent): Fichier "/ usr/share/gdb/auto-load/usr/lib/x86_64-linux- gnu/libstdc ++. So.6.0.19-gdb.py", ligne 63, dans libstdcxx .v6.printers import register_libstdcxx_printers ImportError: aucun module nommé 'libstdcxx'
J'utilise Gdb 7.7.1 et g ++ version 4.8.4. J'ai cherché sur Google mais je n'ai pas eu de réponses. Quelqu'un peut-il résoudre mon erreur? Merci beaucoup.
Ceci est un bogue dans /usr/lib/debug/usr/lib/$triple/libstdc++.so.6.0.18-gdb.py; Lorsque vous démarrez gdb, veuillez entrer:
python sys.path.append("/usr/share/gcc-4.8/python");
J'ai rencontré cette erreur lors de l'utilisation de gdb dans emacs. (in docker container - ubuntu) Je l'ai essayé comme ci-dessous et j'ai bien fonctionné.
(1) ouvrez 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) modifiez ce fichier (libstdc ++. So.x.x.x-gdb.py) comme ci-dessous.
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) relancez 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)
Si vous avez utilisé Sudo
pour démarrer gdb, assurez-vous que le chemin est correct.
Essayez ce Sudo PATH=$PATH gdb ...