как напечатать значение std :: map в gdb - PullRequest
12 голосов
/ 21 апреля 2010

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

Я хочу видеть продолжение ["some_key"] в GDB. Когда я пытаюсь

p cont ["some_ket"]

Я получаю это сообщение: один из аргументов, которые вы пытались передать оператору [], не может быть преобразован в то, что хочет функция.

Я использую GNU GDB Red Hat Linux (6.3.0.0-1.162.el4rh). Спасибо

Ответы [ 3 ]

6 голосов
/ 21 апреля 2010

Вы можете написать свои собственные функции дампа и вызывать их:

(gdb) call dump(m)

см. Эту ветку: http://www.mail-archive.com/help-gplusplus@gnu.org/msg02109.html

Мне интересно узнать о вспомогательных макросах GDB.

6 голосов
/ 21 апреля 2010

В последней версии GDB встроена поддержка Python, так что можно легко написать функцию для вывода содержимого любой структуры stl.Однако вам придется изучить API и написать скрипт.К счастью, gcc 4.5 будет поставляться с необходимыми скриптами Python, чтобы gdb мог интеллектуально обрабатывать структуры данных stl.

РЕДАКТИРОВАТЬ: вам не нужно ждать GCC 4.5 (который, кстати, уже выпущен)можно просто получить код из SVN .

1 голос
/ 21 апреля 2010

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

...