我遇到了一个异常,并在监视窗口中查看变量,我看到一些问号(???)。这是否意味着它指向一个无效的地址?Visual Studio观察窗口中的问号(???)是什么意思?
7
A
回答
5
这意味着调试器无法计算出它的值。
例如,如果您的代码涉及HWND
s,您会看到相当多的内容。如果你通过Windows的头文件,它是通过一个宏定义是这样的:
struct HWND__{int unused;}; typedef struct HWND__ *HWND;
所以HWND
类型是真正的类型“指针到HWND__
”。但是,从CreateWindow()
等函数获得的值HWND
实际上并不是指向任何内容的指针。
但调试器会尝试找出在结构中的unused
成员的值,但不能做到这一点:
您也将看到这些类型的错误时观察的变量类型信息不正确或缺失。
1
这是一个C++风格的项目吗?
调试器通常使用“???”字符串,当它能够评估表达式但不能获取显示的特定部分的任何类型信息时。这通常是因为缺少或不正确的PDB符号。
如果表达式访问损坏的数据(overriten虚拟表或RTTI),可能会出现这种情况。但我不会100%知道这是否属实。
1
通常这意味着指针或引用指向无法访问的内存,因此无法获取值。例如,如果你有一个应该指向Foo的指针,那么调试器通常会将指针指向的位作为Foo进行解释 - 指针是否有效。但是在某些情况下,野生指针可能指向一个甚至没有映射到进程空间的位置。在这种情况下,调试器无法获取这些位。
相关问题
- 1. Visual Studio 2010观察窗口?
- 2. Visual Studio 2017社区观察窗口
- 3. IntelliJ工程窗口中的勾号是什么意思?
- 4. “[::]:端口号”是什么意思?
- 5. 在Visual Studio中展开观察窗口中的所有值
- 6. 在Visual Studio观察窗口中更改DateTime的默认显示
- 7. Visual Studio:观察窗口:C++:为什么垃圾字符类型的成员?
- 8. 这两个问号是什么意思?
- 9. 冒号是什么意思?
- 10. 符号“⊇”是什么意思?
- 11. &符号是什么意思?
- 12. 符号“#!”是什么意思?在Python中的意思是?
- 13. 是什么意思:是什么意思?
- 14. Visual Studio Code中的彩色标记是什么意思?
- 15. JSP中的$符号是什么意思
- 16. JavaScript中的$符号是什么意思?
- 17. Javascript中的符号“:”是什么意思?
- 18. /Zc:wchar_t-中的减号是什么意思?
- 19. XSLT中的冒号是什么意思?
- 20. TSQL中的“#”符号是什么意思?
- 21. URL中的冒号是什么意思?
- 22. Linux中的符号^ \意思是什么
- 23. C#中成员访问中的问号是什么意思?
- 24. URL中的问号(?)和&符号(&)是什么意思?
- 25. C3867错误在Visual Studio中,不知道这是什么意思
- 26. 在Visual Studio调试器中,{null = ???}是什么意思?
- 27. 在R中“:=”符号是什么意思?
- 28. 在Perl中,美元符号后跟问号是什么意思?
- 29. 这个Visual Studio的快捷键是什么意思:Ctrl + \,E
- 30. Visual Studio断点下面的蓝点是什么意思?
不正确。该???错误字符串与错误类型信息有关。如果它不能评估表达式,它将提供更有用的错误消息 – JaredPar 2010-10-22 21:52:51
@JaredPar:我的措辞有点偏离。我的意思是调试器无法弄清它的价值。 – 2010-10-22 22:03:48
Gotcha。编辑版本解决了混乱。但它确实显示???对于不好的类型和不好的价值。 – JaredPar 2010-10-22 22:07:33