在调试器中查看重复的全局变量?
问题描述:
我有以下简单代码的2个文件。在调试器中查看重复的全局变量?
Linkertest.cpp
#include "stdafx.h"
#include "Foobar.h"
char x = 5;
char y = 5;
int main()
{
ChangeX();
x = 'a';
return 0;
}
和Foobar.cpp
#include "stdafx.h"
int x;
void ChangeX()
{
x = -1;
}
foobar.h中
#pragma once
extern void ChangeX();
当步进在Visual Studio 2015年调试器的代码,调试器窗口选择显示值int x; (忽略char x)。 (我明白这不是一件好事)。看看反汇编(和映射文件),我可以看到链接器正确地给int x和char x单独的内存分配,并正确地写入它们。有没有人知道一种方法让调试器显示char x的值?
感谢
答
我使用VS2015和VS2017测试。
的VS2015确实有这个问题:
但在VS2017现在工作得很好:
因此,对于这个问题,如果可能的话,我建议你使用VS2017版本。
当然,如果你只需要使用VS2015,你也可以在这里报告此反馈:
https://connect.microsoft.com/VisualStudio/feedback/CreateFeedback.aspx
+0
谢谢,我们很快就会切换到VS 2017。很高兴听到这个问题解决! –
它应该显示取决于范围您目前内正确的X。如果不是的话,你应该向微软报告一个错误。那就是如果有人可以复制这种行为。 – drescherjm
你可以请你张贴代码。 –
这就是当你在不同的范围内使用相同名称的不同变量隐藏*变量时发生的情况。但是,使用VS2015(以及更高版本和更早版本),我认为你可以切换文件,然后使用游标(指针),你可以从'Linkertest.cpp'中选择变量并添加一个监视。然后它应该引用正确的变量。 –