2015-09-04 17 views
10

जब मैं सेगमेंटेशन गलती के साथ अपने सी ++ प्रोग्राम को डीबग करने के लिए जीडीबी का उपयोग करता हूं, तो मैं इस त्रुटि के साथ gdb में आ जाता हूं।आयात त्रुटि: कोई मॉड्यूल नाम 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'

मैं जीडीबी 7.7.1 और जी ++ संस्करण 4.8.4 का उपयोग कर रहा हूं। मैंने चारों ओर गुगल किया है लेकिन जवाब नहीं मिला है। क्या कोई मेरी त्रुटि हल कर सकता है? आपका बहुत बहुत धन्यवाद।

+1

पहले googled .... [http://askubuntu.com/questions/345873/gdb-crashes-with-importerror-no-module-named-libstdcxx-v6-printers] (http://askubuntu.com/questions/345873/gdb-crashes-with-importerror-no- मॉड्यूल- नाम- libstdcxx-v6-printers) – LPs

+0

बहुत बहुत धन्यवाद। – toantruong

उत्तर

16

यह /usr/lib/debug/usr/lib/$triple/libstdc++.so.6.0.18-gdb.py में एक बग है; जब आप gdb शुरू, दर्ज करें:

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

10

मैं Emacs में gdb का उपयोग कर के दौरान इस त्रुटि का सामना किया। (डॉकर कंटेनर में - उबंटू) मैंने इसे नीचे की तरह कोशिश की और अच्छी तरह से काम किया।

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

निष्पादित यदि आप sudo इस्तेमाल किया gdb शुरू करने के लिए, सुनिश्चित करें कि आप पथ सही किया हुआ है।

प्रयास करें इस sudo PATH=$PATH gdb ...

संबंधित मुद्दे