We have a tool that runs cdb and processes dmp files. The symbol server needs authentication for cdb to be able to download files from it. Our setup does not allow symbol access without auth.
I get the below log from the cdb for downloading ntdll. ntdll is just an example, and this dll could be any private dll.
The logs show its trying to auth using some credential provider, but there is no info about how to resolve the error. Can anyone share documentation related to credential provider, how to give cdb the credentials in non-interactive mode?
SYMSRV: BYINDEX: 0x9
c:\sym1*https://repos.net/factory/symbols/microsoftsymbols/
ntdll.pdb
03818EC49CBD48F2B0B378C3558734891
SYMSRV: UNC: c:\sym1\ntdll.pdb\03818EC49CBD48F2B0B378C3558734891\ntdll.pdb - path not found
SYMSRV: UNC: c:\sym1\ntdll.pdb\03818EC49CBD48F2B0B378C3558734891\ntdll.pd_ - path not found
SYMSRV: UNC: c:\sym1\ntdll.pdb\03818EC49CBD48F2B0B378C3558734891\file.ptr - path not found
SYMSRV: HTTPGET: /factory/symbols/microsoftsymbols//ntdll.pdb/03818EC49CBD48F2B0B378C3558734891/ntdll.pdb
SYMSRV: HttpQueryInfo: 80190191 - HTTP_STATUS_DENIED
SYMSRV: Credential Provider: Getting credentials for: protocol=https, host=repos.net, path=factory/symbols/microsoftsymbols/, interactive=0, isRetry=0
SYMSRV: Credential Provider: Getting credentials from provider: C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\credentialproviders\gcmw\dbgcredentialprovider_gcmw.dll...
SYMSRV: Credential Provider: DebuggerCredentialManager.exe is not found.
SYMSRV: Credential Provider: DbgCredentialProvider_gcmw: Failed to build execution command.
HttpQueryInfo: Requesting Authentication for Web Site.
SYMSRV: RESULT: 0x80190191
Update 10/31/2024:
Modified the powershell script and its reading the credential from Credential manager successfully but the debugger is receiving only the last 13 chars. Verified the powershell script is returning the expected info. We use the debugger version 10.22621.755.
SYMSRV: BYINDEX: 0x7
c:\sym1*https://repos.net/factory/symbols/microsoftsymbols/
ntdll.pdb
03818EC49CBD48F2B0B378C3558734891
SYMSRV: UNC: c:\sym1\ntdll.pdb\03818EC49CBD48F2B0B378C3558734891\ntdll.pdb - path not found
SYMSRV: UNC: c:\sym1\ntdll.pdb\03818EC49CBD48F2B0B378C3558734891\ntdll.pd_ - path not found
SYMSRV: UNC: c:\sym1\ntdll.pdb\03818EC49CBD48F2B0B378C3558734891\file.ptr - path not found
SYMSRV: HTTPGET: /factory/symbols/microsoftsymbols//ntdll.pdb/03818EC49CBD48F2B0B378C3558734891/ntdll.pdb
SYMSRV: HttpQueryInfo: 80190191 - HTTP_STATUS_DENIED
SYMSRV: Credential Provider: Getting credentials for: protocol=https, host=repos.net, path=factory/symbols/microsoftsymbols/, interactive=0, isRetry=0
SYMSRV: Credential Provider: Getting credentials from provider: C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\credentialproviders\mycredentialprovider\mycredentialprovider.bat...
SYMSRV: Credential Provider: Stream response:'WdG90amuHYswd'
SYMSRV: Credential Provider: Stream response:''
SYMSRV: Credential Provider: Failed to get user credentials from stream for 'C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\credentialproviders\mycredentialprovider\mycredentialprovider.bat'.
HttpQueryInfo: Requesting Authentication for Web Site.
SYMSRV: RESULT: 0x80190191
credProviderLog.txt contains the Found PAT log:
Entering Credential Provider
interactive=0
symbolsRequest=1
isRetry=0
parentHwnd=0x10010
protocol=https
host=repos.net
path=factory/symbols/microsoftsymbols/
Installing module
Found path line: host=repos.net
Found symbol path: symbol:repos.net
Found PAT!
Official documentation for custom credential providers has been published.
Note that the specific location of DbgCredentialProvider.config.xml depends on which version of the Windows Kit you have installed. Based on your debugger logs, you don't have the latest Kit, but I don't think that affects the instructions linked above.