Как напечатать значение std::map в gdb
У меня есть std:: map
Я хочу видеть продолжение [ "some_key" ] в GDB. Когда я пытаюсь
p cont[ "some_ket" ]
Я получаю это сообщение: один из аргументов, которые вы пытались передать оператору [], не может быть преобразован в то, что хочет функция.
Я использую GNU GDB Red Hat Linux (6.3.0.0-1.162.el4rh). Спасибо
3 ответа
В последней версии GDB встроена поддержка Python, поэтому можно легко написать функцию для вывода содержимого любой структуры stl. Однако вам придется изучить API и написать скрипт. К счастью, gcc 4.5 будет поставляться с необходимыми скриптами на python, чтобы gdb мог интеллектуально обрабатывать структуры данных stl.
РЕДАКТИРОВАТЬ: вам не нужно ждать GCC 4.5 (который, кстати, уже был выпущен), вы можете просто получить код из SVN.
Вы можете написать свои собственные функции дампа и вызывать их:
(gdb) call dump(m)
см. эту ветку: http://www.mail-archive.com/help-gplusplus@gnu.org/msg02109.html
Мне любопытно о вспомогательных макросах GDB.