Как просмотреть переменные в контейнерах STL (например, std :: map) в NetBeans в C ++? - PullRequest
3 голосов
/ 20 сентября 2010

Как я вижу, невозможно определить, что находится в карте STL, используя NetBeans.

Есть ли плагин / трюк / решение, которое позволит мне распечатать все значения с карты в режиме отладки?

Насколько я знаю, он использует GDB для отладки приложений C ++. Я нашел несколько хороших макросов GDB для контейнеров STL (здесь: http://sourceware.org/ml/gdb/2008-02/msg00064.html). Можно ли выполнить их из NetBeans?

Ответы [ 3 ]

2 голосов
/ 13 апреля 2014

NetBeans использует gdb для внутреннего использования, поэтому при обновлении gdb до красивой печати стандартных контейнеров библиотеки в результате NetBeans показывает разумные значения.

Следуйте инструкциям в вики gdb для установки симпатичных принтеров python для просмотра контейнеров STL: http://sourceware.org/gdb/wiki/STLSupport

(Убедитесь, что путь был введен правильно внутри .gdbinit; попробуйте ввести команды в python, чтобы убедиться, что все работает)

Однако эта симпатичная печать работает только с g ++ 4.7 (и выше). Убедитесь, что версия компилятора соответствует:

g++ --version

Чтобы установить последнюю версию (для Linux Mint 13, с здесь ):

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install g++-4.7 c++-4.7

Обновите gcc и g++, чтобы указать на новые версии 4.7 (с здесь ):

sudo su
rm /usr/bin/g++
rm /usr/bin/gcc
ln -s /usr/bin/g++-4.7 /usr/bin/g++
ln -s /usr/bin/gcc-4.7 /usr/bin/gcc
1 голос
/ 20 сентября 2010

Попробуйте поместить их в файл .gdbinit в каталоге, где находится ваш источник (или домашний каталог), и посмотрите, подхватит ли их GDB.

0 голосов
/ 21 сентября 2010

stl-views.gdb довольно старый.GDB 7.x имеет много лучше механизм для проверки контейнеров STL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...