2012-04-10 24 views
1

當我嘗試查看Visual Studio調試器中的std :: list時,我基本上只想查看所有myList.size值的數組,列表包含。在一個理想的世界中,我可以通過在監視窗口中鍵入「MyList,x」來獲得一些x < myList.size。Visual Studio Debugger:輕鬆查看std :: list(以及其他std容器)

但是,那什麼都不做。相反,我必須手動擴大的變量,一個可笑的金額,看看每個值,一個接一個:

myList中 - >的std :: _ List_val - >的std :: _ List_nod - > _Myhead - > _Myval

而這只是列表中的第一個值。

這是一個糟糕的調試方式 - 查看列表中的值。有沒有什麼辦法可以看到列表中的所有值,而不用擔心實現細節?

此問題也適用於其他STD容器,如向量。我只想做「MyStdContainer,x」而不關心我如何包含我的變量。

謝謝!

+3

你實際上應該看到'的std :: list',如果它是在默認情況下VS調試器窗口的數組,在任何適度最近版本的VS(我認爲自2005年以來?) - 例如請參閱http://technet.microsoft.com/en-us/query/aa718539。您是否正在使用STL的第三方實現(例如STLPort)? – 2012-04-10 22:51:14

+0

真的嗎?我絕對不會。 STL的第一方實施,VS2010。 – 2012-04-10 22:52:05

+2

確保您沒有在工具 - >選項 - >調試 - >常規中選中「在變量窗口中顯示對象的原始結構」。 – 2012-04-10 22:58:18

回答

2

聽起來像您的autoexp.dat文件丟失或損壞。這通常位於%VSINSTALLDIR%\Common7\Packages\Debugger\中,並提供調試器所需的信息,以便可視化容器的std::

如果你找到這個文件,涉及std::list的部分開始:

;------------------------------------------------------------------------------ 
; std::list from <list> 
;------------------------------------------------------------------------------