web-dev-qa-db-ja.com

Ubuntu 13.10でGDBプリティ印刷を設定する

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

8
nietaki

最も簡単な修正方法は、通常のようにプリティプリンターをセットアップすることですが、2to3を使用してprinters.pyをpython3に変換することです。

2to3 printers.py -w

簡単にテストしただけですが、うまくいくようです。

8
dshepherd