VS 2017 pdb файлы не читаются с DIA SDK

Я пытаюсь получить информацию о символах из приложения, созданного с помощью Visual Studio 2017.

При использовании VS2015 в прошлом я мог читать символы с помощью DIA SDK.

Код (проверка ошибок удалена):

CComPtr<IDiaDataSource> pSource;
hr = CoCreateInstance(CLSID_DiaSource, NULL, CLSCTX_INPROC_SERVER, __uuidof(IDiaDataSource), (void **)&pSource);

hr = pSource->loadDataForExe(exepath, NULL, NULL);
CComPtr<IDiaSession> psession;
CComPtr<IDiaSymbol> pGlobal;
hr = psession->get_globalScope(&pGlobal);

// Enumerate compilands
CComPtr<IDiaEnumSymbols> pEnumSymbols;
pGlobal->findChildren(SymTagCompiland, 0, nsNone, &pEnumSymbols);
CComPtr<IDiaSymbol> pCompiland;
ULONG celt = 0;
while (SUCCEEDED(pEnumSymbols->Next(1, &pCompiland, &celt)) && (celt == 1))
{
ULONG celt = 0;
CComPtr<IDiaSymbol> pSymbol;
CComPtr<IDiaEnumSymbols> pEnumSymbols;
HRESULT hr = pCompiland->findChildren(SymTagFunction, NULL, nsNone, &pEnumSymbols);
....

Последний вызов возвращает E_NOTIMPL. В прошлом это работало, и я смог получить символы для каждой компиляции. Код взят из инструмента dia2dump внутри DIA SDK, который также не работает. я нашел https://github.com/Microsoft/microsoft-pdb но исполняемый файл в этом репозитории также дает сбой (cvdump.exe -s test.exe показывает много 1167 найденных неизвестных символов).

Они изменили формат PDB, чтобы сделать его несовместимым с SDK? Или я что-то упускаю очень очевидное?

Благодарю.

РЕДАКТИРОВАТЬ: это происходит только в отладке pdbs, работа pdbs компиляции режима выпуска.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]