как распечатать станд.:: отобразите значение в gdb

У меня есть станд.:: карта <станд.:: строка, станд.:: строка> продолжение следует;

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

p продолжение следует ["some_ket"]

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

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

12
задан ndim 21 April 2010 в 13:18
поделиться

3 ответа

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

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

6
ответ дан 2 December 2019 в 21:23
поделиться

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

1
ответ дан 2 December 2019 в 21:23
поделиться

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

(gdb) call dump(m)

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

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

6
ответ дан 2 December 2019 в 21:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: