GDBがクラッシュします:ImportError:libstdcxx.v6.printersというモジュールはありません


14

GDBに問題があります。C ++プログラムを実行した直後にデバッグしようとすると、GDBは次のエラーを出します。

(gdb) run
Starting program: /home/errikos/Workspaces/tests/a.out 
Traceback (most recent call last):
  File "/usr/lib/debug/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.18-gdb.py", line 59, in <module>
    from libstdcxx.v6.printers import register_libstdcxx_printers
ImportError: No module named libstdcxx.v6.printers
Traceback (most recent call last):
  File "/usr/lib/debug/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.18-gdb.py", line 59, in <module>
    from libstdcxx.v6.printers import register_libstdcxx_printers
ImportError: No module named libstdcxx.v6.printers

その後、GDBは実行を続けます(つまり、完全にクラッシュしません)。

私はこれについていくつかのバグレポートがあることを知っています(ここここここ)。2番目のレポートでは、修正がリリースされたという主張もあります。3番目の方法では、シンボリックリンクの回避策がありますが、それは私にとっては機能しませんでした(そして、機能していても気に入らない)。

誰かがこれの回避策を見つけましたか?不足しているパッケージはありますか?

注: Ubuntu Toolchainテストビルド(ppa:ubuntu-toolchain-r / test)PPAをアクティブにしました。

回答:


7

これは/usr/lib/debug/usr/lib/$triple/libstdc++.so.6.0.18-gdb.py;のバグです。正常に動作していれば、ImportError一度しか表示されず、プリティプリンターが機能します。

ここで何が問題になっているのかについては、http://bugs.debian.org/cgi-bin/bugreport.cgi?bug = 701935#18をご覧ください。これはDebianでうまくいきましたgcc-4.7が、最近までDebianでうまくいきませんでしたgcc-4.8。これを試したかどうかはわかりませんgcc-4.6

かかわらず、あなたができる適切な場所に見にそのファイルにパッチを適用します。


2
サンプルパッチを提供してもらえますか?
-fouric

このエラーはもう発生しないので、おそらくppa:ubuntu-toolchain-r / testの最新パッケージで修正されています。最近あまりC / C ++開発を行っていないので、これに興味を失っていました。あなたの答えをありがとう!
エリコス

注:Matthias Kloseは、関連ファイルをImportErrorDebian不安定版でスプリアスを引き起こさない場所に移動しました。
SAMB

どうすればこれにパッチを適用できますか?
ベッコ

@becko:libstdc ++ 6の正確にインストールされているバージョンは何ですか?
SamB
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.