2014-01-06 61 views
2

我使用Ubuntu 13.10,Eclipse Kepler Service Release 1,GDB 7.6.1-ubuntu和最新的CDT,可通過Eclipse「安裝新軟件」獲得。我按照幾個網站上發佈的說明設置了STL容器的漂亮打印。Eclipse CDT漂白打印機

因爲它沒有以這種方式工作,所以下面的其他指令修改了printers.py以使字符串len最大化爲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

如果我去調試按鈕,它已我的配置設置爲第一,它似乎也使用它(否則我不會必須更改printers.py我認爲),但調試爲...是空的。

的GBD痕跡有這樣的消息:

193677 36 ^錯誤,味精= 「不能讓孩子迭代器」。

193674 35^DONE,名字= 「VAR5」,numchild = 「0」,值=「{靜態非營利組織=,_M_dataplus = {> = {< __ \ gnu_cxx :: new_allocator> = {},}, _M_p =爲0x0}}」,類型= 「標準:: STRI \ NG」 時,線程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 

顯然,我的問題是,我該如何解決這個問題?沒有prettyprint,我只是寧願在windows下進行調試,但我不想那麼做:)

+0

在沒有Eclipse的gdb命令行中有漂亮的打印工作嗎? – ks1322

+0

我編輯的問題,簡短的回答是否:) – fbence

回答

3

gdb libstdC++漂亮的打印機實際上已經在Ubuntu 13.10中破壞了。例如,請參閱this bug

gdb在Ubuntu 13.10中與Python3鏈接,而漂亮的打印機腳本僅支持Python2語法。你可以申請this patch給你漂亮的打印機。它將增加對Python3的支持。儘管我不使用Eclipse進行調試,但該解決方案對我來說很合適。

+0

謝謝,這固定它 – fbence