Я только что столкнулся с той же проблемой ... попробовал все те же шаги ... просмотрел все (по-видимому) похожие советы ...
Кроме того, я попытался запустить symchk
, используя тот же dbghelp.dll
/ symsrv.dll
DLL, которые я скопировал в папку «bin» моего WPA, чтобы убедиться, что моя PDB доступна.(все еще думая, что я схожу с ума ...)
Я должен заметить: мое значение _NT_SYMBOL_PATH содержало серверы с кешем lcl и прямыми локальными расположениями: _NT_SYMBOL_PATH=srv*D:\SymbolCache*http://msdl.microsoft.com/download/symbols;D:\GitHub\...
.
Затем до него дошломне, что моя DLL, используемая моим "партнерским" EXE, загружается динамически через LoadLibrary () / GetProcAddress () ... это может быть проблемой для XPerf ?????
Я колебался, даже пытаясь это ...
Я добавил бесполезный экспорт в мою DLL, и я вызываю его прямо в EXE (чтобы вызвать запись таблицы импорта для моей DLL) Так что теперь EXE зависит от DLL, чтобы даже загрузить.
Получается ...
............. затем XPerf загрузил все символы :).
Редактировать : Я только что нашел этот URL на MSDN, где кто-то опубликовал код в '11, который демонстрирует аналогичную (такую же?) Проблему
EDIT :
Я недавно обсуждал это с коллегой и узнал, что XPerf правильно "решит" загрузить символы для DLL, загруженных программно.cally ... IF DLL остается загруженной до завершения процесса.
Таким образом, для библиотек DLL, которые загружаются и выгружаются во время выполнения и выгружаются при завершении ... XPerfпропустит попытку загрузить эти символы.