【问题标题】:VS2015 Debugger is not expanding variablesVS2015 调试器没有扩展变量
【发布时间】: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


【解决方案1】:

为了解决这个问题,我完全卸载了 VS2015(包括几个月来安装的所有更新和其他“vs2015”工具。

然后我运行 ccleaner 几次以删除遗留的无效注册表设置,(不确定这是否有帮助,但没有伤害)。

我重新运行安装,发现需要更新 3。

由于我不需要重新注册和输入我的凭据,因此有几项内容没有被删除。
但似乎这不是问题,因为重新安装就可以了。

还有:

  • 未选中“使用托管兼容模式”
  • 未选中“使用本机兼容模式”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-17
    • 1970-01-01
    • 1970-01-01
    • 2016-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多