Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Symbols are not loaded #195

Open
sberserker opened this issue Aug 30, 2017 · 6 comments
Open

Symbols are not loaded #195

sberserker opened this issue Aug 30, 2017 · 6 comments

Comments

@sberserker
Copy link

sberserker commented Aug 30, 2017

Created test .nestandard library and pushed to Klondike

dotnet pack --output ..\nupkg --include-symbols --include-source --configuration Release Library.Test/Library.Test.csproj

dotnet nuget push nupkg\Library.Test.0.1.0.nupkg -k --source http://10.40.25.84/api

dotnet nuget push nupkg\Library.Test.0.1.0.symbols.nupkg -k <token --source http://10.40.25.84/api/symbols

In Klondike I can see "Symbols and source code are available for this package."

Configured Visual studio:

When I try to debug I'm getting the following in the symbol load information

SYMSRV: HTTPGET: /api/symbols/Library.Test.pdb/92BD31265460470A86142B33172F2B571/Library.Test.pdb
SYMSRV: HttpQueryInfo: 80190194 - HTTP_STATUS_NOT_FOUND
SYMSRV: HTTPGET: /api/symbols/Library.Test.pdb/92BD31265460470A86142B33172F2B571/Library.Test.pd_
SYMSRV: HttpQueryInfo: 80190194 - HTTP_STATUS_NOT_FOUND
SYMSRV: HTTPGET: /api/symbols/Library.Test.pdb/92BD31265460470A86142B33172F2B571/file.ptr
SYMSRV: HttpQueryInfo: 80190194 - HTTP_STATUS_NOT_FOUND
SYMSRV: RESULT: 0x80190194
http://10.40.25.84/api/symbols: Symbols not found on symbol server.

IIS logs:

2017-08-30 01:30:22 10.40.25.84 GET /api/symbols/Library.Test.pdb/92BD31265460470A86142B33172F2B57ffffffff/file.ptr - 80 - 139.49.193.71 Microsoft-Symbol-Server/10.0.0.0 - 404 0 0 16
2017-08-30 01:30:22 10.40.25.84 GET /api/symbols/Library.Test.pdb/92BD31265460470A86142B33172F2B571/Library.Test.pdb - 80 - 139.49.193.71 Microsoft-Symbol-Server/10.0.0.0 - 404 0 0 18
2017-08-30 01:30:22 10.40.25.84 GET /api/symbols/Library.Test.pdb/92BD31265460470A86142B33172F2B571/Library.Test.pd_ - 80 - 139.49.193.71 Microsoft-Symbol-Server/10.0.0.0 - 404 0 0 15
2017-08-30 01:30:22 10.40.25.84 GET /api/symbols/Library.Test.pdb/92BD31265460470A86142B33172F2B571/file.ptr - 80 - 139.49.193.71 Microsoft-Symbol-Server/10.0.0.0 - 404 0 0 18

Visual Studio 2017, test library is .net standard 2.0
Klondike: v2.1.1
Windows 10 SDK

@chriseldredge
Copy link
Owner

I'm not sure how well Klondike handles .net packages built on ecosystems later than .net 4.5, but if you look in your Symbols directory on the filesystem, you should see the files there (e.g. Library.Test.pdb/92BD31265460470A86142B33172F2B57ffffffff/file.ptr). If you do not, Klondike's log file (~/App_Data/Logs/Klondike.log) may provide additional clues.

I haven't kept up to date with recent tooling, so it's certainly possible that the Windows Debugger Kit that Klondike uses to process symbols is not compatible with .net standard packages, assemblies and symbols.

@sberserker
Copy link
Author

I don't see Library.Test.pdb folder generated.
I tried also setup on the same machine where Visual Studio is. I can see only this:

image

image

What is responsible for generating pdb? Can update Nuget dll help with this?

@chriseldredge
Copy link
Owner

I'm not sure, as I haven't tried much of anything in .net standard. Honestly I'm surprised Klondike works with these newer packages at all.

Klondike uses srctool, pdbstr and symstore from Debugging Tools for Windows to process symbols. The source code can be reviewed at https://github.com/themotleyfool/NuGet.Lucene/blob/master/source/NuGet.Lucene.Web/Symbols/SymbolTools.cs.

Did you take a look at Klondike.log? There isn't much in the way of diagnostic logging, but if any exceptions are being raised they would show up there.

@sberserker
Copy link
Author

sberserker commented Aug 30, 2017

No exceptions or something which stands out from the logs.

@sberserker
Copy link
Author

One step closer. Added this to .csproj file

   <PropertyGroup>
     <DebugType>full</DebugType>
     <DebugSymbols>True</DebugSymbols>
   </PropertyGroup>

Now i can see pdb info is generated after i pushed new package.

image

The only problem that Visual Studio is requesting different path

SYMSRV:  HTTPGET: /api/symbols/Library.Test.pdb/92BD31265460470A86142B33172F2B571/Library.Test.pdb
SYMSRV:  HttpQueryInfo: 80190194 - HTTP_STATUS_NOT_FOUND

SYMSRV:  HTTPGET: /api/symbols/Library.Test.pdb/92BD31265460470A86142B33172F2B571/Library.Test.pd_
SYMSRV:  HttpQueryInfo: 80190194 - HTTP_STATUS_NOT_FOUND

SYMSRV:  HTTPGET: /api/symbols/Library.Test.pdb/92BD31265460470A86142B33172F2B571/file.ptr
SYMSRV:  HttpQueryInfo: 80190194 - HTTP_STATUS_NOT_FOUND

@sberserker
Copy link
Author

Appears I was going to wrong server that's why url mismatch. After I updated the settings Visual Studio was able to load the symbols.

The only problem remains is visual studio crashing when trying to pull the sources to step into but at the same time resharper go to implementation works. So it might be visual studio issue since endpoint works: /api/source/Library.Test/0.3.0/Library.Test/Class1.cs

The key settings is this in csproj file. So Klondike still works with .net standard libraries.

   <PropertyGroup>
     <DebugType>full</DebugType>
     <DebugSymbols>True</DebugSymbols>
   </PropertyGroup>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants