dotnet / vscode-csharp

Official C# support for Visual Studio Code

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Debugger should support authentication with symbol server and source link

gregg-miskelly opened this issue Β· comments

In 1.15, the debugger added support for Source Link and Symbol Server. However, it currently doesn't support either symbol servers or source link endpoints that require authentication.

This feature request tracks adding support for either or both of these. My guess is that we would want to do both at the same time, but I could be wrong.

Workaround

Manually clone the repo/source repository and add a sourceFileMap entry to your launch.json.

Hey Guys,

I presume this is an issue for private Azure Dev Ops repositories then as I'm getting a 401 when trying.

Correct

@gregg-miskelly thanks for the reply. Is there a spec for this and is it up-for-grabs?

Is this planned out at all for a (near-)future version of VSCode? Maybe a way to provide a local fallback for such scenarios?

@ransagy by 'local fallback' do you mean pointing at a local source file? Local source files should always take precedence over SourceLink -- you want to add a sourceFileMap to your launch.json.

We don't have a timeline for the feature currently. It is not particularly easy to do as we need some sort of cross-platform credential UI to do it right.

Hah, missed that bit of the docs, damn.
I completely understand this is nowhere near easy, Just wanted to gauge if there's any work being done towards it, so that answers both my questions. Thanks!

@ransagy It was a good question, so thanks for asking it. I added a 'Workaround' section above to hopefully make it more obvious.

I guess traditional VS taught me to expect that "where is your source" dialog, hence i assumed it's not implemented.

@gregg-miskelly any news on the this one fella?

@gregg-miskelly any chance that this will get looked at soon?

Unfortunately, the status of this feature is unlikely to change anytime soon. It is not particularly easy to do as we need some sort of cross-platform credential UI to do it right. Also, the debugger team is currently fully booked on other work.

@CRuppert That might be a good option. GCM Core is one of the things we use in Visual Studio.

@gregg-miskelly just wanted to circle back around on this issue. Is this being considered any time in the next few quarters?

The debugger team doesn't currently have time booked for this. Prioritizations change often, so it is certainly possible, especially if this got enough up votes. But its not something that I can promise.

Thanks for the reply @gregg-miskelly. I get it, it would just be a really helpful feature for organizations like mine with private repos. 😞

We are waiting this improvement like πŸ™‡β€β™‚οΈπŸ™‡πŸ™‡β€β™€οΈ

please

Is there a place to vote for this feature?

Also, i have been trying to use the sourceFileMap without success with vs code where debugging a dll.

Is there a way to diagnostic the problem with the source map and is there a documentation explaining with a real use case?

I read the foo example but what is the "c:\foo" in the case the dll is build on a build server does it represent the original build path?

"sourceFileMap": {
    "C:\\foo":"/home/me/foo"
}

I have tried to set some key map but keep receiving Error: Unable to Locate Source File message because of authentication issue do it's look like the map not working.


"sourceFileMap": {
                "https://api.bitbucket.org/2.0/repositories/XYX/Project/src/5040ef34b3a083b7789eaa711f03a58319c03db4/": "G:\\Git\\LOCAL\\Project\\",
                "C:\\BuildAgent\\work\\be4f9bbfc6a122ad\\*": "G:\\Git\\LOCAL\\Project\\*",
                "/_/": "G:\\Git\\LOCAL\\Project\\*",
            },
// -----------------------------------
// Error: Unable to Locate Source File
// -----------------------------------
// 
// The source file you're trying to access, located at
// '/_/src/Project/Test.cs', cannot be found on this
// computer. The debugger attempted to download the source file using Source Link, but the
// request failed.
// 
// Possible Reasons:
// * The server requires authentication, but the VS Code C# debugger doesn't support
// authentication. See: https://aka.ms/VSCode-DotNet-SourceLinkAuthNotSupported
// * The source control commit that this module was built from doesn't exist on the
// server. For example, if this module was compiled on a developer's computer, the source
// commit might have been temporary or never pushed to the server.
// 
// What to Do:
// Manually obtain source code, for example by cloning the appropriate repo locally, and
// use `sourceFileMap` to point the debugger at the source code. See
// https://aka.ms/VSCode-CS-SourceFileMap for complete instructions.
// 
// Error Details:
// The request failed with HTTP status code 404 (NotFound).
// 
// The URL where the source file will be downloaded from:
// https://api.bitbucket.org/2.0/repositories/XYX/Project/src/5040ef34b3a083b7789eaa711f03a58319c03db4/src/Project/Test.cs
// 
// For more information about Source Link and VS Code see
// https://aka.ms/VSCode-DotNet-SourceLink