首页 > 解决方案 > 防止 Visual Studio 2017 调试器混淆具有相同名称的静态变量

问题描述

我在 VS 2017 调试器中观察到以下现象:
如果在不同的文件中有两个同名和类型的静态变量,则会混淆两者。

变量声明的伪代码

文件A:
静态字符信息[2048];

文件B:
静态字符信息[64];

如果我调试文件 B,调试器会显示文件 A 的 msg 的内容。

我的猜测是,在开发调试器时没有预见到同名静态变量的情况,它显示的变量取决于编译顺序。

问题: VS 2017 调试器如何在
更改正在调试的代码的情况下 “强制”访问当前调试文件的静态变量?

重命名变量的琐碎建议不是我的选择,恕我直言,也不是静态变量的精神。

标签: visual-studio-2017visual-studio-debugging

解决方案


这是在VS2019 调试器下报告的相同问题,被多个具有相同名称的变量混淆,并于 20 年 11 月在 VS 2019 版本 16.8 中修复。

不幸的是,根据这个MSFT 的回复,目前或计划中没有对 VS 2017 的修复的反向移植。

VS 2017 的另一条评论中提出的一种解决方法是查找目标变量的内存地址,然后使用适当的演员表观察它。


推荐阅读