在Visual Studio调试器中查看数组?

use*_*493 232 c++ arrays debugging view visual-studio

是否可以在Visual Studio调试器中查看数组?QuickWatch仅显示数组的第一个元素.

Jar*_*Par 554

你可以试试C++这个不错的小技巧.获取给出数组的表达式,然后附加逗号和要查看的元素数.扩展该值将显示元素0-(N-1),其中N是您在逗号后添加的数字.

例如,如果pArray是数组,请pArray,10在监视窗口中键入.

  • 请注意,您还可以在调试视图中使用强制转换.如果`pArray`类型为`void*`,则可以键入`(char*)pArray,10`,它将显示解释为char的数组内容. (26认同)
  • 难以置信的发现.但它只能使用立即值,不允许算术或动态成员访问. (12认同)
  • 我认为您可能正在使用GDB作为Eclipse中的调试器,在这种情况下,您正在寻找等效的语法* pArray @ 10。我没有在Eclipse中尝试过,但是它可以在命令行GDB中使用。 (2认同)

Ken*_*Ken 80

如果你有一个大型数组并且只想看到数组的一个子部分,你可以在观察窗口中输入它;

ptr+100,10
Run Code Online (Sandbox Code Playgroud)

显示从ptr [100]开始的10个元素的列表.请注意,显示的数组下标将从[0]开始,因此您必须记住ptr [0]实际上是ptr [100]而ptr [1]是ptr [101]等.


Rod*_*son 24

我使用Visual Studio的ArrayDebugView加载项(http://arraydebugview.sourceforge.net/).

这似乎是一个漫长的死亡项目(但我正在考虑继续自己)但是对于C++和C#,加载项在VS2010中对我来说仍然很有效.

它有一些怪癖(Tab键顺序,模态对话框,没有关闭按钮),但是能够在图形中绘制数组的内容而不是弥补它.

编辑2014年7月:我终于构建了一个新的Visual Studio扩展来替换ArrayebugView的功能.它可以在VIsual Studio Gallery上找到,搜索ArrayPlotter或者访问http://visualstudiogallery.msdn.microsoft.com/2fde2c3c-5b83-4d2a-a71e-5fdd83ce6b96?SRC=Home

  • 它应该做!我是在VS2013开发的!您运行的是什么版本的VS2013(Service Pack/edition)?如果您在Extension Manager(在线部分)中搜索ArrayPlotter,您是否在其中看到它可用? (2认同)

sta*_*tor 14

您是否尝试查看具有动态分配内存的阵列?如果没有,您可以通过将它放在调试器的监视窗口中来查看C++和C#的数组,当您通过鼠标左键单击在监视窗口中的小(+)上展开数组时,其内容可见.

如果它是指向动态分配的数组的指针,要查看指针的N个内容,请在调试器的监视窗口中键入"pointer,N".注意,N必须是整数,否则调试器会给出错误,说它无法访问内容.然后,左键单击出现的小(+)图标以查看内容.