【发布时间】:2023-03-30 05:49:01
【问题描述】:
当我调试 C++ 应用程序时,我看不到变量的值
如果你在下面看到,
std::string s = "a";
即使我扩展了该值,调试器也只会将该值显示为 {...}。
我尝试过的
- 已删除符号缓存,(工具 > 选项 ... > 调试 > 符号。
- 未选中“使用托管兼容模式”
- 选中“使用托管兼容模式”
- 未选中“使用本机兼容模式”
- 选中“使用本机兼容模式”
- 我曾尝试从工作环境中导出设置,然后将它们导入到另一个环境中,但没有成功。
有什么建议吗? ...
std::vector<std::string> ... 或任何其他类型都有相同的问题,我无法展开数据。
编辑:添加了一张应该看起来像什么的图片...
编辑 2:我尝试从工作环境中导出设置,然后将它们导入到另一个环境中,但没有成功。
【问题讨论】:
-
它在您突出显示的那一行。您需要将
_Myval2节点扩展几级。 -
是的,但这不是它应该的工作方式。如果您有
std::vector<string> ...,则必须为每个值扩展大约 10 个级别(例如)。调试器通常不会那样工作。 -
你是如何得到“应该看起来像”的图片的?从发布版本?我猜 CRT 的调试版本有很多复杂性来帮助您捕捉错误,这会弄乱调试器可视化器。我不记得在 Visual Studio 中看到的是哪个视图;我现在不在安装它的计算机附近。
-
这是从另一台开发机器上获取的。两个版本都不是发布版本,都在调试中运行完全相同的代码(相同的断点,遵循相同的步骤),因此我认为它必须是环境设置而不是项目设置。
-
@FFMG,我在我身边测试它,它在 VS2015 中运行良好,Windows 10 中的更新 3:1drv.ms/i/s!Auvjmr9ZOuhVhwpUEA18h9fHrdoo。我只是使用默认的 VS 设置(C#),如果相同的应用程序在其他 VS 机器上运行良好,我建议你修复你的 VS。请同时安装最新的更新3。实际上我没有选择“使用托管/本机兼容模式”两个选项,在项目属性中我选择了“自动”调试类型。实际上我之前遇到过这个与 VS 设置有关的问题:stackoverflow.com/questions/32656222/….
标签: c++ debugging visual-studio-2015