debugging VS2022 17.4.4社区调试器(使用旧版编译器工具集)在悬停时不显示变量值

ijnw1ujt  于 2023-02-19  发布在  其他
关注(0)|答案(1)|浏览(517)

我正在使用visual studio 2022进行日常开发,我有绑定到旧库或平台的二进制文件,所以我将platform toolset属性设置为旧版本。
但悬停时它不显示变量值。

如果将平台工具集修改为 Visual studio 2022(v143),则此功能有效。

有人能帮我解决这个调试问题吗?先谢谢了。

bvn4nwqk

bvn4nwqk1#

我在VS2022 17.4中使用编译器VS2010进行了测试,并重现了该问题。但我发现std::string是c++中的类类型。在Local窗口中使用旧编译器工具集VS2010进行调试时,它确实返回类类型数据结构。展开str,您将在char* 类型数据结构中看到_Buf中的值test。您可以在监 windows 口中添加str. c_str(),您将看到它以char* 类型显示值。c_str返回一个常量char*,它指向一个以null结尾的字符串(即C样式字符串)

我猜两个编译器在调试模式下显示字符串类型变量值的差异是由编译器决定的。如果你想让VS2010编译器在悬停时显示变量值,这里有一个解决方案。

const char* str = "test";
 char str[] = "test";

相关问题