Konfigurowanie ładnego drukowania GDB w Ubuntu 13.10

8

Próbowałem skonfigurować ładne drukowanie GDB (dla łatwiejszej pracy ze standardowymi pojemnikami) zgodnie z tym pytaniem . Zamiast używać ładnego kodu drukarek Python z svn użyłem tych, które są dostarczane z Ubuntu . Po przejściu przez resztę procesu podczas uruchamiania gdb otrzymałem następujący komunikat o błędzie:

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.

Po głębszym przyjrzeniu się problemowi odkryłem, że podstawowa przyczyna leży głębiej - Python 3 używany w gdb jest niezgodny z ładnymi drukarkami libstdc ++ .

Czy ktoś ma na to funkcjonalne obejście? Na razie utknąłem w (pomocnych, ale nie tak funkcjonalnych) pomocnikach Dana Marinescu: http://www.yolinux.com/TUTORIALS/GDB-Commands.html#STLDEREF

nietaki
źródło
Mam dwa pytania: Po pierwsze, czy Ask Ubuntu jest właściwym miejscem i dlaczego? Po drugie, czy nie jest to błąd aplikacji? W obu przypadkach jest to nie na temat!
Lucio
Jak to jest poza tematem? Podłączyłem potwierdzony, bardzo ważny błąd ze startera Ubuntu, który powoduje mój problem, i poprosiłem o obejście. Gdyby ktoś korzystający z 13.10 działał poprawnie, z pewnością mógłbym skorzystać z ich rozwiązania. Sprawdziłem z przyjacielem, który jest na Gentoo i ten problem ich nie dotyczy.
nietaki
2
Istnieje niezaangażowana łatka, która umożliwia drukarkom pracę z Pythonem 3 na stronie gcc.gnu.org/ml/libstdc++/2013-10/msg00243.html
Jonathan

Odpowiedzi:

8

Najłatwiejszą printers.pymetodą wydaje się być skonfigurowanie ładnych drukarek w normalny sposób, ale następnie konwersja do python3 przy użyciu 2to3:

2to3 printers.py -w

Testowałem to tylko krótko, ale wydaje się, że działa dobrze.

dshepherd
źródło