microsoft / vscode-cpptools

Official repository for the Microsoft C/C++ extension for VS Code.
Other
5.5k stars 1.55k forks source link

Symbols are not found on the symbol server #12776

Open JVApen opened 1 day ago

JVApen commented 1 day ago

Environment

Bug Summary and Steps to Reproduce

Bug Summary: Symbols from the symbol server are not discovered

Steps to reproduce:

  1. Have a symbol server available (\\servername\directory)
  2. Create a dump file from a process who's symbols are available on the server
  3. Clear the symbol cache completely (or remove from configuration)
  4. Debug the dump file with vs code (debugger icon)
  5. See that no symbols are loaded for this process

Debugger Configurations

`
        {
            "name": "Open Dump File (Windows)",
            "type": "cppvsdbg",
            "request": "launch",
            "dumpPath": "C:/Temp/process.DMP",
            "program": "unused field in case of opening dumps, that is required in the json",
            "args": [],
            "cwd": "${workspaceFolder}",
            "environment": [],
            "requireExactSource": false,
            "symbolOptions": {
                "searchPaths": [
                    "file://servername/directory"
                ],
                "searchMicrosoftSymbolServer": true,
                "cachePath": "E:/Cache",
            },
            "console": "internalConsole",
            "logging": {
                "exceptions": true,
                "programOutput": true,
                "moduleLoad": true,
                "engineLogging": true,
                "trace": true,
                "traceResponse": true
            }
        },

### Debugger Logs

```shell
`
<- (R) {"seq":5,"type":"response","request_seq":2,"success":true,"command":"launch"}
-> (C) {"type":"response","seq":1,"command":"handshake","request_seq":2,"success":true,"body":{"signature":"***"}}
<- (E) {"seq":8,"type":"event","event":"initialized","body":{}}
-> (C) {"command":"setFunctionBreakpoints","arguments":{"breakpoints":[]},"type":"request","seq":3}
<- (R) {"seq":11,"type":"response","request_seq":3,"success":true,"command":"setFunctionBreakpoints","body":{"breakpoints":[]}}
-> (C) {"command":"setInstructionBreakpoints","arguments":{"breakpoints":[]},"type":"request","seq":4}
<- (R) {"seq":14,"type":"response","request_seq":4,"success":true,"command":"setInstructionBreakpoints","body":{"breakpoints":[]}}
-> (C) {"command":"setExceptionBreakpoints","arguments":{"filters":[],"filterOptions":[{"filterId":"all"}]},"type":"request","seq":5}
<- (R) {"seq":17,"type":"response","request_seq":5,"success":true,"command":"setExceptionBreakpoints","body":{"breakpoints":[{"verified":true}]}}
-> (C) {"command":"configurationDone","type":"request","seq":6}
<- (E) {"seq":20,"type":"event","event":"output","body":{"category":"telemetry","output":"VS/Diagnostics/Debugger/vsdbg/ProcessCreate","data":{"VS.Diagnostics.Debugger.vsdbg.OSFamily":"Windows","VS.Diagnostics.Debugger.vsdbg.Version":"17.12.10729.1 commit:f369b458d0e8e43fcaae9d514696aba8466573c7","VS.Diagnostics.Debugger.vsdbg.WindowsVersion":"10.0.20348","VS.Diagnostics.Debugger.vsdbg.TargetArchitecture":"AMD64"}}}
<- (E) {"seq":22,"type":"event","event":"process","body":{"name":"C:\\Temp\\process.DMP","startMethod":"launch","pointerSize":64}}
<- (R) {"seq":24,"type":"response","request_seq":6,"success":true,"command":"configurationDone"}
<- (E) {"seq":26,"type":"event","event":"progressStart","body":{"progressId":"1","title":"Loading...","cancellable":true,"message":"Loading symbols for process.exe from: file://servername/directory","percentage":0}}
<- (E) {"seq":28,"type":"event","event":"progressUpdate","body":{"progressId":"1","message":"Loading symbols for process.exe from: Microsoft Symbol Servers","percentage":0}}
-> (C) {"command":"threads","type":"request","seq":7}
<- (R) {"seq":31,"type":"response","request_seq":7,"success":true,"command":"threads","body":{"threads":[]}}
<- (E) {"seq":33,"type":"event","event":"output","body":{"category":"console","output":"Loaded 'E:\\process.exe'. \n"}}
Loaded 'E:\process.exe'.
<- (E) {"seq":35,"type":"event","event":"module","body":{"reason":"new","module":{"id":1000,"name":"process.exe","path":"E:\\process.exe","isUserCode":true,"version":"99.99.0.0","symbolStatus":"Cannot find or open the PDB file."}}}


### Other Extensions

_No response_

### Additional Information

I've already tried with many variations, like `//servername/directory`, `\\\\servername\\directory`, `file://///servername/directory`, `S:/directory` (mapped in the file system).

If I open the same dump file with visual studio, it nicely loads the symbols from the exact same location and stores it in `E:/Cache`, after which opening the dump file in VS Code again, it does have all the symbols as it loads them from `E:/Cache`