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は実行を続けます(つまり、完全にクラッシュしません)。
私はこれについていくつかのバグ報告があることを知っています( here 、 here および here )。 2番目のレポートでは、修正がリリースされたという主張もあります。 3番目の方法では、シンボリックリンクの回避策がありますが、それは私には機能しませんでした(そして、たとえ機能していても気に入らない)。
誰かがこれの回避策を見つけましたか?不足しているパッケージはありますか?
注:Ubuntu Toolchainテストビルド(ppa:ubuntu-toolchain-r/test)PPAをアクティブにしました。
これは/usr/lib/debug/usr/lib/$triple/libstdc++.so.6.0.18-gdb.py
のバグです。正常に動作していれば、ImportError
が1回だけ表示され、プリティプリンターが機能します。
ここで何が間違っているのかについての情報は http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=701935#18 をご覧ください。これはDebianのgcc-4.7
では問題なく機能しましたが、最近までDebianのgcc-4.8
では機能しませんでした。 gcc-4.6
でこれを試したかしたかどうかはわかりません。
とにかく、あなたはcanそのファイルにパッチを当てて正しい場所を探します。