2015-09-04 18 views
10

C++ programımı segmentasyon hatası ile hata ayıklamak için gdb kullandığımda, gdb dosyasında bu hatayı alıyorum.Alma Hatası: Hayır modül adı libstdcxx

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 ve g ++ sürüm 4.8.4 kullanıyorum. Çevremdeyim ama cevap alamadım. Herhangi biri hatamı çözebilir mi? Çok teşekkür ederim.

+1

.... [http://askubuntu.com/questions/345873/gdb-crashes-with-importerror-no-module-named-libstdcxx-v6-printers] (Deneyin http://askubuntu.com/questions/345873/gdb-crashes-with-importerror-no-module-named-libstdcxx-v6-printers) – LPs

+0

Çok teşekkür ederim. – toantruong

cevap

16

Bu, /usr/lib/debug/usr/lib/$triple/libstdc++.so.6.0.18-gdb.py; Eğer gdb başlatmak yazınız: Ben emacs'taki gdb kullanarak sırasında bu hata ile karşılaştı

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

10

. (docker kabında - ubuntu) Aşağıda olduğu gibi denedim ve iyi çalıştı. so.x.x.x-gdb.py (1) açık libstdC++

.

sh> sudo vi /usr/share/gdb/auto-load/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19-gdb.py 

(2) aşağıdaki gibi bu dosyayı (libstdC++. so.x.x.x-gdb.py ) değiştirin. Eğer gdb başlatmak için sudo kullandıysanız

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) Eğer PATH doğru olduğundan emin olun, GDB yine

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

yürütün.

bu ilk googled sudo PATH=$PATH gdb ...