Я выполнил инструкции on the GDB wiki, чтобы установить python pretty-printers для просмотра контейнеров STL. Мой ~/.gdbinit
теперь выглядит следующим образом:Как красиво печатать контейнеры STL в GDB?
python
import sys
sys.path.insert(0, '/opt/gdb_prettyprint/python')
from libstdcxx.v6.printers import register_libstdcxx_printers
register_libstdcxx_printers (None)
end
Однако, когда я отлаживать и попытаться напечатать тип STL, я получаю следующее:
print myString
Python Exception <class 'gdb.error'> No type named std::basic_string<char>::_Rep.:
$3 =
Может кто-нибудь пролить некоторый свет на это? Я запускаю Ubuntu 12.04, который поставляется с GDB 7.4.
Просто может быть, что библиотека C++ изменила свои внутренние типы и переменные-члены, а модуль Python не поддерживал. –
Не могли бы вы вставить дополнительную информацию, такую как источник C++, параметры компилятора и т. Д.? Я просто тестировал это на Ubuntu 12.04, и он работает для меня. – user1202136
Работает для меня с Fedora 17. – Omnifarious