this anwer に従ってGDBプリティ印刷(標準コンテナでの作業を容易にするため)を設定しようとしました。 svnのpython prettyプリンターコードを使用する代わりに、 buntuに同梱 のコードを使用しました。残りのプロセスを実行した後、gdbを起動すると次のエラーメッセージが表示されました。
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Traceback (most recent call last):
File "<string>", line 3, in <module>
File "/home/nietaki/gdb_printers/python/libstdcxx/v6/printers.py", line 54
raise ValueError, "Cannot find type %s::%s" % (str(orig), name)
^
SyntaxError: invalid syntax
/home/nietaki/.gdbinit:6: Error in sourced command file:
Error while executing Python code.
問題をもう少し詳しく見てみると、根本的な原因がより深いことがわかりました- gdbで使用されているPython 3はlibstdc ++ pretty printersと互換性がありません 。
誰かがそのための機能的な回避策を持っていますか?今のところ、私はDan Marinescuの(同じく機能的ではないが便利ですが)ヘルパーにこだわっています: http://www.yolinux.com/TUTORIALS/GDB-Commands.html#STLDEREF
最も簡単な修正方法は、通常のようにプリティプリンターをセットアップすることですが、2to3を使用してprinters.py
をpython3に変換することです。
2to3 printers.py -w
簡単にテストしただけですが、うまくいくようです。