添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

你可以使用格式说明符更改在“监视”、“自动”和“局部变量”窗口中显示的值所用的格式。

还可在“即时”窗口、“命令”窗口、 跟踪点 甚至源窗口中使用格式说明符。 如果将鼠标悬停在这些窗口中的某个表达式上,结果将在 数据提示 中显示。 “数据提示”显示格式说明符。

在 Visual Studio 本机调试器更改为新的调试引擎时,添加了一些新的格式说明符,并删除了一些旧的格式说明符。 当你使用 C++/CLI 进行互操作(混合本机和托管)调试时,仍使用较早的调试器。

设置格式说明符

我们将使用以下示例代码:

int main() {
    int my_var1 = 0x0065;
    int my_var2 = 0x0066;
    int my_var3 = 0x0067;

调试期间,将 my_var1 变量添加到“监视”窗口,“调试”>“窗口”>“监视”>“监视 1”。 接下来,右键单击变量,然后选择“十六进制显示”。 现在,“监视”窗口显示值 0x0065。 若要查看以字符而不是整数形式表达的此值,请先右键单击并取消选择“十六进制显示”。 然后,在“名称”列的变量名称之后添加字符格式说明符“, c”。 现在,“值”列显示“101 'e'”。

可以通过将逗号 (,) 追加到“监视”窗口中的值来查看可用格式说明符列表并从中进行选择。

格式说明符

下表介绍可以在 Visual Studio 中使用的格式说明符。 仅新调试器支持加粗的说明符,但 C++/CLI 的互操作调试不支持。

环境块(双空终止字符串) <location> L"=::=::\\" L"=::=::\\\0=C:=C:\\windows\\system32\0ALLUSERSPROFILE=... UTF-32 字符串(加引号) <location> U"hello world" u"hello world" UTF-32 string (no quotation marks) <location> U"hello world" hello world Saturday(6) 指针类型 - 指示被检查的指针值是数组的堆分配的结果,如 new int[3]。 <location>{<first member>} <location>{<first member>, <second member>, ...} 取消指向对象的指针的内存地址。 <location>, {member=value...} {member=value...} 仅显示基类信息,忽略派生的类 (Shape*) square 包括基类和派生类信息 仅显示基类信息 HRESULT 或 Win32 错误代码。 HRESULT 不再需要此说明符,因为调试器会自动对其进行解码。 窗口类标志 0x0010 WC_DEFAULTCHAR Windows 消息数字 WM_CLOSE 取消“原始视图”项

如果存在 hv 格式说明符,调试器会尝试确定缓冲区的长度并显示相应的元素数。 由于调试器并非总是可以查找确切的数组缓冲区大小,只要可能时,就应该使用大小说明符 (pBuffer,[bufferSize]) 。 当缓冲区大小尚不可用时,hv 格式说明符很有用。

指针的大小说明符作为数组

如果有一个指针指向要看做数组形式的对象,则可以使用一个整数或表达式来指定数组中元素的数量。

原始监视值

本机和 C++/CLI 代码的 d、e、f、g、h、i、l、m、ma、mb、md、mq、mu、mw 和 u 说明符需要旧调试器,这在 Visual Studio 2022 或更高版本中不受支持。

粗体 的说明符仅支持本地调试和 C++/CLI 代码。 这些说明符需要使用托管兼容模式指定的旧版调试器。

原始监视值 64 个 ASCII 字符 0x0012ffac 0x0012ffac .4...0...".0W&.......1W&.0.:W..1...."..1.JO&.1.2.."..1...0y....1 以十六进制表示的 16 个字节,后跟 16 个 ASCII 字符 0x0012ffac 0x0012ffac B3 34 CB 00 84 30 94 80 FF 22 8A 30 57 26 00 00 .4...0...".0W&. 以十六进制表示的 16 个字节,后跟 16 个 ASCII 字符 0x0012ffac 0x0012ffac B3 34 CB 00 84 30 94 80 FF 22 8A 30 57 26 00 00 .4...0...".0W&. 0x0012ffac 0x0012ffac 34B3 00CB 3084 8094 22FF 308A 2657 0000 4 个双字 0x0012ffac 0x0012ffac 00CB34B3 80943084 308A22FF 00002657 2 个双字 0x0012ffac 0x0012ffac 7ffdf00000000000 5f441a790012fdd4 双字节字符 (Unicode) 0x0012ffac 0x0012ffac 8478 77f4 ffff ffff 0000 0000 0000 0000