如何在Visual Studio调试器监视窗口(或其他位置)中找到堆栈上变量的地址?读取变量工作正常:streets streets [11790](0x1c66a690 [...] std::vector<Street *,std::allocator<Street *> >但是以&开头的地址并没有给我一个地址:&streets streets [11790](0x1c66a690 [...] std::vector<Street *,std::allocator<Street *> >另外,尝试读取尺寸不起作用,为什么呢?streets.size() CXX0075: Error: Cannot set up Function Evaluation该程序在 Debug模式下编译。 最佳答案 Visual Studio调试器通过由架构定义的转换来驱动调试器的监视,快速监视,自动 View 和局部变量 View ,该文件称为 autoexp.dat (取决于您的VS版本,其中的内容可能会有很大不同)。该文件位于VS-InstallDir / Common7 / Packages / Debugger文件夹中(至少适用于VS2010和VS2012)。知道这一点后,您可以尝试/考虑以下两个想法: 方法一:图书馆知识要访问 vector 中第一个元素的实际地址,我最终只需执行以下操作:streets._Myfirst如果知道要查看的元素数量,则可以通过以下方式使用数组扩展扩展名:streets._Myfirst,N其中N是元素数注意:这仅适用于 vector 。根据您所使用的容器,做法会有所不同。毫无疑问,更简单的方法可能不太依赖std::vector 的实现,但这是最简单的工作,我知道如何快速入门和调试。 方法二:焦土在“工具/选项/调试/常规”下是可以打开和关闭的功能列表。您将发现其中之一对这个问题特别有用: Show raw structure of objects in variable windows.将此设为,以查看的所有结构和容器的原始成员变量,包括诸如std::vector 之类的标准容器。这有效地禁用了 autoexp.dat 中的模板的使用
07-24 14:21