Skip to content
This repository was archived by the owner on May 29, 2025. It is now read-only.

Commit b4e320a

Browse files
author
Bruce Dawson
committed
Check for existence and version of symsrv.dll
The Windows 10 Anniversary Edition of WPA requires that symsrv.dll from the Debuggers directory be installed. This will normally happen automatically (when the Windows SDK or VS 2015 are installed) but it is not actually guaranteed. This adds checks for the existence and a minimum version of symsrv.dll in the Debuggers directory. If a significant number of people hit this check then I could bundle the installers, but for now I'm not going to because I don't want to add another 26 MB to the release zip files.
1 parent 1933664 commit b4e320a

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

UIforETW/UIforETWDlg.cpp

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -267,6 +267,30 @@ void CUIforETWDlg::CheckSymbolDLLs()
267267

268268
if (!filePaths.empty())
269269
DeleteFiles(*this, filePaths);
270+
271+
#if defined(_WIN64)
272+
const std::wstring symsrv_path = CanonicalizePath(wpt10Dir_ + L"..\\Debuggers\\x64\\symsrv.dll");
273+
#else
274+
const std::wstring symsrv_path = CanonicalizePath(wpt10Dir_ + L"..\\Debuggers\\x86\\symsrv.dll");
275+
#endif
276+
if (!PathFileExists(symsrv_path.c_str()))
277+
{
278+
AfxMessageBox((L"symsrv.dll (" + symsrv_path +
279+
L") not found. Be sure to install the Windows 10 Anniversary Edition Debuggers "
280+
L"or else symbol servers will not work.").c_str());
281+
}
282+
283+
// Previous versions of symsrv.dll may not be multithreading safe and therefore can't
284+
// be used with the latest WPA.
285+
const int64_t requiredSymsrvVersion = (10llu << 48) + 0 + (14321llu << 16) + (1024llu << 0);
286+
auto symsrvVersion = GetFileVersion(symsrv_path);
287+
if (symsrvVersion < requiredSymsrvVersion)
288+
{
289+
AfxMessageBox((L"symsrv.dll (" + symsrv_path +
290+
L") is not the required version (10.0.14321.1024 or higher). "
291+
L"Be sure to install the Windows 10 Anniversary Edition Debuggers "
292+
L"or else symbol servers will not work.").c_str());
293+
}
270294
}
271295

272296
BOOL CUIforETWDlg::OnInitDialog()

0 commit comments

Comments
 (0)