StringHolder windowsSymbolPath;
StringHolder authToken;
size_t timeoutInMinutes = 0;
+ std::string resolvedSearchDirectory;
BOOL disable = FALSE;
BOOL loadNative = FALSE;
BOOL msdl = FALSE;
DisableSymbolStore();
}
- if (msdl || symweb || symbolServer.data != nullptr || symbolCache.data != nullptr || searchDirectory.data != nullptr || windowsSymbolPath.data != nullptr)
+ if (searchDirectory.data != nullptr) {
+ if (!GetAbsolutePath(searchDirectory.data, resolvedSearchDirectory))
+ {
+ ExtErr("Invalid runtime directory %s\n", resolvedSearchDirectory.c_str());
+ return E_FAIL;
+ }
+ }
+
+ if (msdl || symweb || symbolServer.data != nullptr || symbolCache.data != nullptr || !resolvedSearchDirectory.empty() || windowsSymbolPath.data != nullptr)
{
- Status = InitializeSymbolStore(msdl, symweb, symbolServer.data, authToken.data, (int)timeoutInMinutes, symbolCache.data, searchDirectory.data, windowsSymbolPath.data);
+ Status = InitializeSymbolStore(msdl, symweb, symbolServer.data, authToken.data, (int)timeoutInMinutes, symbolCache.data, (resolvedSearchDirectory.empty() ? nullptr : resolvedSearchDirectory.c_str()), windowsSymbolPath.data);
if (FAILED(Status))
{
return Status;
{
ExtOut("Added symbol cache path: %s\n", symbolCache.data);
}
- if (searchDirectory.data != nullptr)
+ if (!resolvedSearchDirectory.empty())
{
- ExtOut("Added symbol directory path: %s\n", searchDirectory.data);
+ ExtOut("Added symbol directory path: %s\n", resolvedSearchDirectory.c_str());
}
if (windowsSymbolPath.data != nullptr)
{
}
return S_OK;
-}
\ No newline at end of file
+}