Visual Studio 2010 не может отображать ничего, кроме значений локальных конкретных переменных (например, int, bool и т. Д.) При отладке кода, созданного с помощью Visual Studio 6.
В сборке Visual Studio 6 создается файл pdb, «Отладочная информация» и «Формат Microsoft» выбираются в соответствии с предложением в ответ на следующий вопрос: Просмотр содержимого переменных VC6 DLL (DEBUG)
Например, в следующем коде единственная переменная, значение которой я вижу, это ‘var’. Под «видеть» я подразумеваю, что переменная появляется в окне «Locals» или «Auto» со значением, я получаю значение во всплывающей подсказке или что имя переменной разрешается, когда я вводю ее в окне Watch.
Кажется, я не вижу ‘num’, поскольку это аргумент функции, я не вижу ‘m_member’, поскольку он является членом класса. Я не вижу «stackMem» или «heapMem», поскольку они не являются простыми типами.
class MyClass
{
public:
MyClass() : m_member(0) {}
int aMethod(int num)
{
m_member = m_member + num;
return m_member;
}
private:
int m_member;
};
void main()
{
MyClass* heapMem = new MyClass();
MyClass stackMem;
int var = heapMem->aMethod(5);
var = stackMem.aMethod(10);
}
Могу ли я что-нибудь сделать, чтобы лучше отлаживать старый код VC6 в более новой среде отладки, такой как VS 2010?
Я не помню, как работал VC6; но в VS2005 и более поздних выпусках Visual Studio для отладки доступны разные представления (вкладки / окна), которые можно закрепить.
Часы, Авто (авто переменные), Местные жители, Callstack …
Они доступны (должны быть) из меню «Отладка» при запуске отладки.
Других решений пока нет …