Я отлаживал коды C++, используя gdb
Ubuntu 14.04. Когда я передаю stl
контейнер команде print
, она печатала содержимое контейнера. Но потом я обновился до Ubuntu 16.04 LTS неделю назад. Теперь эти красивые принтеры не работают. Когда я их печатаю, я получаю тот сырой вывод контейнера, который вы получаете, когда у вас не установлены принтеры Python.
Этот пареньу него та же проблема.
У меня есть libstdcxx/v6/python.py
в моей системе. У меня также есть libstdc++.so.6.0.21-gdb.py
в папке автозагрузки. Когда я печатаю info pretty-printer в gdb
, я получаю список stl
принтеров, поэтому я знаю, что они зарегистрированы. Однако мой gdb
не печатает stl::list
переменную. Я включил pretty-printer
, установил print pretty на.
Моя версия gcc — 5.4, а версия gdb — 7.11.1. Оба были установлены вместе с Ubuntu 16.04. Я не собирал их вручную. Так что, что-то очевидное я упускаю?
решение1
В моем случае в ~/.gdbinit
файле была строка:
sys.path.insert(0, '/usr/share/gcc-4.8/python/')
Оказалось, что, изменив его на: (4.8->5)
sys.path.insert(0, '/usr/share/gcc-5/python/')
помогло.