Saya mencoba mengatur pencetakan cantik GDB (untuk pekerjaan yang lebih mudah dengan wadah standar) menurut anwer ini . Alih-alih menggunakan kode printer cantik python dari svn, saya menggunakan kode yang dikirimkan bersama ubuntu . Setelah melalui seluruh proses saya berakhir dengan pesan kesalahan berikut ketika meluncurkan 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.
Setelah melihat sedikit lebih dalam masalah saya menemukan akar penyebabnya terletak lebih dalam - Python 3 yang digunakan dalam gdb tidak kompatibel dengan libstdc ++ printer cantik .
Apakah ada yang punya solusi fungsional untuk itu? Untuk saat ini saya terjebak dengan pembantu (juga bermanfaat, tetapi tidak berfungsi) dari Dan Marinescu: http://www.yolinux.com/TUTORIALS/GDB-Commands.html#STLDEREF
Jawaban:
Perbaikan termudah tampaknya adalah dengan mengatur printer cantik seperti biasa tetapi kemudian dikonversi
printers.py
ke python3 menggunakan 2to3:Saya hanya mengujinya secara singkat, tetapi tampaknya berfungsi dengan baik.
sumber