Как напечатать std:: значение карты в gdb
У меня есть std:: map < std::string, std::string > cont;
Я хочу видеть cont [ "some_key" ] в gdb. Когда я пытаюсь
p cont [ "some_ket" ]
Я получаю это сообщение: один из аргументов, которые вы пытались передать оператору [], не мог быть преобразован в то, что хочет функция.
Я использую GNU gdb Red Hat Linux (6.3.0.0-1.162.el4rh). Благодаря
Ответы
Ответ 1
В последнем gdb поддерживается поддержка python, поэтому можно легко написать функцию для печати содержимого любой stl-структуры. Однако вам придется изучить API и написать script. К счастью, gcc 4.5 будет поставляться с необходимыми сценариями python, чтобы получить gdb, чтобы разумно обрабатывать stl-структуры данных.
EDIT: вам не нужно ждать GCC 4.5 (который, кстати, уже был выпущен), вы можете просто захватить код из SVN.
Ответ 2
Вы можете написать свои собственные функции дампа и вызвать их:
(gdb) call dump(m)
посмотреть эту тему:
http://www.mail-archive.com/[email protected]/msg02109.html
Мне интересны макросы помощника GDB.
Ответ 3
Gdb не понимает перегрузку оператора С++.