2014-01-06 3 views
2

Я использую Ubuntu 13.10, Eclipse Kepler Service Release 1, GDB 7.6.1-ubuntu и последний CDT, доступный через Eclipse «установить новое программное обеспечение». Я следил за инструкциями, размещенными на нескольких сайтах, чтобы настроить симпатичную печать для контейнеров STL.Eclipse CDT prettyprint broken

Поскольку это не сработало, следуя другим инструкциям, я изменил printers.py, чтобы получить максимальную длину строк до 100 и отформатировал все значения ValueError, «...», чтобы повысить ValueError («... «).

Мой файл .gdbinit является следующие:

python 
import sys 
sys.path.insert(0, '/home/fbence/stlPrettyPrinter') 
from libstdcxx.v6.printers import register_libstdcxx_printers 
register_libstdcxx_printers (None) 
end 

Мои настройки таковы:

http://fbence.web.elte.hu/setup.png

Если я иду к кнопке отладки это моя конфигурация набора, как первый, и похоже, тоже его использует (иначе мне не пришлось бы менять принтеры.py, я думаю), но отладка как ... пуста.

ГПБ следы есть подобные сообщения:

193.677 36^ошибка, сообщ = «Не удалось получить детей итератор».

193674 35^Молодцы, имя = "var5", numchild = "0", значение = "{статические НСС =, _M_dataplus = {> = {< __ \ gnu_cxx :: new_allocator> = {},}, _M_p = 0x0}}», тип = "станд :: стри \ нг", поточно-ID = "1", displayhint = "строка", динамическая = "1", has_more = "0"

Это является выход:http://fbence.web.elte.hu/eclipseproblem.png

Использование GDB из терминала приводит следующий вывод, когда я хочу, чтобы напечатать простой вектор:

Python Exception <class 'TypeError'> iter() returned non-iterator of type '_iterator': 

$3 = std::vector of length 6, capacity 16 

Очевидно, что мой вопрос: как мне исправить это? Без особого отпечатка я бы скорее отлаживал под окнами, но я действительно не хочу этого делать :)

+0

Отличная работа печати в командной строке gdb без Eclipse? – ks1322

+0

Я отредактировал вопрос, короткий ответ - нет :) – fbence

ответ

3

gdb libstdC++ довольно принтеры фактически сломаны в Ubuntu 13.10 сейчас. См. Например, this bug.

gdb связан с Python3 в Ubuntu 13.10, в то время как симпатичные принтеры поддерживают только синтаксис Python2. Вы можете подать this patch вам симпатичные принтеры. Он добавит поддержку Python3. Это решение работало для меня, хотя я не использую Eclipse для отладки.

+0

спасибо, это исправлено – fbence