При отладке непроизведенного проекта С++ в Visual Studio 2008 я иногда хочу увидеть значение глобальной переменной. У нас их не так много, но те, которые там все объявлены в пространстве имен, называемом глобальным. например.
namespace global
{
int foo;
bool bar;
...
}
Проблема заключается в том, что когда код останавливается в точке останова, всплывающая подсказка по умолчанию (от указателя на имя переменной) и quickwatch (shift-f9 от имени переменной) не учитывает пространство имен и, следовательно, выигрывает работа.
Так, например, я могу указать на "foo", и ничего не получается. Если я сменю-f9 на foo, он выведет quickwatch, который затем скажет 'CXX0017: Ошибка: символ "foo" не найден ". Я могу обойти это, вручную отредактировав имя переменной в окне quickwatch, чтобы префикс" global:: "(что громоздко, учитывая, что вам нужно делать это каждый раз, когда вы хотите использовать quickwatch), но нет никакого исправления для всплывающей подсказки что я могу разобраться. Установка" пространства имен по умолчанию" свойств проекта не помогает.
Как я могу сказать отладчику VS использовать пространство имен, которое уже знает, что переменная объявлена в (поскольку она имеет там объявление там), или, наоборот, указывать пространство имен по умолчанию для поиска переменных, если оно не выполняется не найти их?
Мой google-fu не смог найти ответ. В этом отчете указывается одна и та же проблема: MS говорит, что это "по дизайну", но даже в этом случае я надеюсь, что есть какой-то способ обойти это ( возможно, с умным использованием autoexp.dat?)