如果您有一個靜態分配的數組,Visual Studio調試器可以輕鬆顯示所有數組元素。但是,如果您有一個動態分配的數組並且由指針指向,那麼當您單擊+展開數組時,它將僅顯示數組的第一個元素。有沒有一種簡單的方法可以告訴調試器,將這些數據顯示爲Foo類型的數組和X型?如何在Visual Studio調試器中顯示動態分配的數組?
回答
是的,很簡單。 說你有
char *a = new char[10];
在調試器中寫着:
a,10
會告訴你的內容就好像它是一個數組。
在監視窗口中,在數組名稱後面添加一個逗號,以及要顯示的項目數量。
我還沒有找到一種方法來使用多維數組。但你至少可以(如果你知道你想要的條目的索引)添加一個手錶到一個特定的值。只需使用索引運算符。
對於命名當前的陣列,其中有一個名爲Attribs裏的數組,其內部有一個名爲ATTRIB陣列,它應該是這樣的,如果你想有26位:
((*((*current).Attribs)).Attrib)[26]
你也可以使用偏移量
((*((*current).Attribs)).Attrib)+25
將顯示ne「next」25個元素。 (我正在使用VS2008,這隻顯示了最多25個元素)。
對於MFC陣列(CARRAY,CStringArray的,...) 按照其提示#下一環節4
http://www.codeproject.com/Articles/469416/10-More-Visual-Studio-Debugging-Tips-for-Native-De
例如,對於 「CARRAY粒子陣列」,加在監視窗口
pArray.m_pData,5
看到前5個元素。
如果粒子陣列是二維CARRAY你可以看任何使用下一個語法的第二個維度的元素:
pArray.m_pData[x].m_pData,y
重訪:
讓我們假設你有一個低於指針:
double ** a; // assume 5*10
,那麼你可以在Visual Studio調試手錶下面寫:
(double(*)[10]) a[0],5
將其轉換爲如下所示的數組,您可以一次查看所有內容。
double[5][10] a;
有兩種方法在陣列m4x4的,以查看數據:
float m4x4[16]={
1.f,0.f,0.f,0.f,
0.f,2.f,0.f,0.f,
0.f,0.f,3.f,0.f,
0.f,0.f,0.f,4.f
};
一種方法是用一個監視窗口(調試/窗/觀看)。添加監視=
m4x4,16
此列表中顯示的數據:
另一種方法是使用Memory窗口(調試/視窗/內存)。指定一個存儲器起始地址=
m4x4
這在表中,這是更好的用於二維和三維矩陣顯示數據:
內存窗口上點擊右鍵,以確定如何二進制數據可視化。選擇僅限於整數,浮點數和一些文本編碼。
另一種方法是在MSDN中指定。
總之,您可以將字符數組顯示爲幾種類型的字符串。如果你有一個數組聲明:
char *a = new char[10];
你可以打印出來作爲在監視窗口中Unicode字符串有以下:
a,su
請參閱MSDN頁上的表格所有的不同的轉換可能,因爲有不少。許多不同的字符串變種,變種打印單個項目數組中,等
你可以找到很多東西,你可以用這種寶石在監視窗口中的變量在文檔中做一個列表: https://msdn.microsoft.com/en-us/library/75w45ekt.aspx
對於一個變量,還有在其他的答案已經提到的像
a,10
a,su
的事情,但還有一大堆其他符的格式和大小,如:
a,en (shows an enum value by name instead of the number)
a,mb (to show 1 line of 'memory' view right there in the watch window)
因爲,
int **a; //row x col
添加此觀看
(int(**)[col])a,row
- 1. 如何將Visual Studio配置爲在調試時將整數顯示爲小數?
- 2. 顯示調試器沒有顯示在Visual Studio 2017
- 3. Visual Studio在調試器中顯示{...}作爲Javascript變量的值
- 4. Visual Studio在調試過程中如何顯示System.Double?
- 5. Visual Studio 2017不在調試器上顯示工具提示
- 6. 如何讓調試器在Visual Studio中顯示未使用的變量?
- 7. 在Visual Studio調試模式下的「淺」顯示STL容器?
- 8. 爲什麼在Visual Studio 2008調試器中部分顯示字符串?
- 9. Visual Studio調試器 - 以十六進制顯示整數值
- 10. 在Visual Studio調試器中查看數組?
- 11. 在Visual Studio調試器中查看數組?
- 12. 如何查看VS 2010中調試時動態分配數組的內容?
- 13. Visual Studio分離當前調試器
- 14. Visual Studio 2008調試器分離
- 15. 如何在Visual Studio中調試(僅)JavaScript?
- 16. 調試如何在Visual Studio中工作?
- 17. 如何在VISUAL STUDIO 2005中調試TSQL?
- 18. 如何在Visual Studio中調試finally塊?
- 19. 如何在visual studio中停止調試
- 20. 如何在Visual Studio 2013中調試javascript
- 21. 如何在Visual Studio 2015中調試Mscorlib.dll
- 22. 如何在visual studio中調試sql
- 23. 在列表框中顯示已分配的字符串Visual Studio
- 24. Visual Studio 2013 - 在調試時不顯示代碼中的更改
- 25. 動態分配的數組只顯示最後的結果
- 26. 更改Visual Studio調試器顯示字符變量的方式
- 27. Visual Studio 2013調試器顯示std :: string的奇怪值
- 28. Visual Studio調試器顯示本機類型的錯誤值
- 29. 在Visual Studio .NET中調試動態加載的程序集
- 30. 在Visual Studio&C中調試一個動態創建的類#
這是一個偉大的把戲,但如果你的指針指向結構數組中,我發現,「一個擴展的單個元素,10「在觀察窗口中本身不可擴展。這意味着你不能用這種方法挖掘數組的第三個元素。那是可以克服的嗎? – SirPentor 2012-05-11 18:20:41
@SirPentor我有同樣的問題。你找到了解決方案嗎? – becko 2012-08-22 19:43:59