Я пытаюсь выполнить программу C/C++ (MapServer) в Visual Studio, но не вижу локальные переменные.
Я создал новый проект, добавив основной .exe, который я собрал из исходного кода. Я могу установить точки останова и выполнить программу без проблем, но я не вижу, что хранится ни в одной из переменных. Я запускаю все это на виртуальной машине — хост-ОС — Windows 10, а виртуальная машина — Windows 7.
Программа:
- построен как отладочная версия
- не имеет оптимизаций
- символы загружаются нормально
Я совершенно уверен, что это связано с тем, что это 64-разрядная версия, так как я могу использовать точно такой же подход для сборки x32 и видеть переменные.
Пример отладчика x32 (первые 5 переменных правильные, остальные не заданы):
Пример сеанса отладки x64 (обратите внимание, что программа работает нормально):
Я думал, что это может быть связано с VS2008, поэтому я также пробовал в VS2015, но получил аналогичные (неудачные) результаты:
Попытка доступа к переменным в Immediate Window приводит к:
// working VS2008 x32 build
map->name
0x00ffcb40 "WFS_server"
// VS2008 x64 build
map->name
0x0000000000000000 <Bad Ptr>
// VS2015 x64 build
map->name
0x0000000000000000 <NULL>
Я пропустил некоторые настройки отладчика в Visual Studio, чтобы установить проект отладки на x64? Или есть какая-то проблема с кастингом в исходном коде, который производит это?
Любые указатели приветствуются.