Как напечатать значение std::map в gdb

У меня есть std:: map cont;

Я хочу видеть продолжение [ "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.

Gdb не понимает перегрузку операторов C++.

Другие вопросы по тегам