2015-09-04 2 views
10

セグメンテーションフォールトでgdbを使用してC++プログラムをデバッグすると、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'

私はGdb 7.7.1およびg ++バージョン4.8.4を使用しています。私の周りGoogleで検索してきたが、答えを得るしていません。誰かが私のエラーを解決できますか?どうもありがとうございました。

+1

... [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-module-named-libstdcxx-v6-printers) – LPs

+0

ありがとうございました。 – toantruong

答えて

16

これは/usr/lib/debug/usr/lib/$triple/libstdc++.so.6.0.18-gdb.pyのバグです。 あなたはGDBを起動し、入力してください:私はemacsの中でGDBを使って中にこのエラーが発生しました

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

10

。 (ドッカコンテナに - Ubuntuの) 私は以下のようにそれを試してみましたが、うまくいきました。 so.x.x.x-gdb.py(1)オープンのlibstdC++

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 )を変更します。あなたは正しいパスを持っていることを確認し、GDBを起動するためにsudoを使用した場合

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)再び

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

をGDBを実行します。

この最初のグーグルsudo PATH=$PATH gdb ...

関連する問題