首頁  >  問答  >  主體

c++ - codeblock 调试时要怎么查看容器内元素的值?

ode

我像图中所示 在监视窗口输入 (decrptS.begin()) ,(decrptS.begin()+1)
显示

貌似是只能监视 raw type 基本类型

天蓬老师天蓬老师2765 天前782

全部回覆(2)我來回復

  • 天蓬老师

    天蓬老师2017-04-17 13:11:55

    沒用過CodeBlocks,不過調試器想要調試STL,肯定是需要插件的,單純的GDB或者VC的調試器,都不行,都得加插件。
    因為各個STL的內部實作都不一樣,libstdc++的話,https://github.com/egmkang/gdb_printers__python
    如果用的是libc++,可以看https://github.com/egmkang/pretty_printer_for_libcxxer_for_libcxx,後面這個是我寫的

    幫你搜了一下,丫的實在太懶了
    http://www.cnblogs.com/wanglikai91/archive/2011/11/08/2241432.html

    回覆
    0
  • 黄舟

    黄舟2017-04-17 13:11:55

    如果你使用VC++2010以上版本的話,問題都會很簡單。 VC++的debugger允許你自訂debugger查看元素內容的時候的外觀,而且已經自帶針對STL的設定。當你滑鼠移動到一個容器上面的時候,他就會直接把所有的容器的內容告訴你。所以@emgkang 的答案說“單純的GDB或VC的調試器,都不行”,是不對的。

    我自己因為某些原因也寫了自己的容器類,然後就是用這個xml,解決了這個問題。你只要在C盤裡面搜尋到stl.natvis,把檔案貼在相同的資料夾,重啟VC++,你自己的類別庫的插件就搞定了。建議題主試試,使用進階工具,不要糾結於什麼CodeBlocks。

    https://github.com/vczh-libraries/Vlpp/blob/master/Release/vlpp.natvis

    回覆
    0
  • 取消回覆