我有以下簡單代碼的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的值?
感謝
它應該顯示取決於範圍您目前內正確的X。如果不是的話,你應該向微軟報告一個錯誤。那就是如果有人可以複製這種行爲。 – drescherjm
你可以請你張貼代碼。 –
這就是當你在不同的範圍內使用相同名稱的不同變量隱藏*變量時發生的情況。但是,使用VS2015(以及更高版本和更早版本),我認爲你可以切換文件,然後使用遊標(指針),你可以從'Linkertest.cpp'中選擇變量並添加一個監視。然後它應該引用正確的變量。 –