Подтвердить что ты не робот

Как напечатать 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). Благодаря

4b9b3361

Ответ 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 не понимает перегрузку оператора С++.