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

Embedded symbols/sources not found #750

Closed
mattjohnsonpint opened this issue Jan 30, 2023 · 9 comments · Fixed by getsentry/sentry-cli#1463
Closed

Embedded symbols/sources not found #750

mattjohnsonpint opened this issue Jan 30, 2023 · 9 comments · Fixed by getsentry/sentry-cli#1463
Assignees

Comments

@mattjohnsonpint
Copy link
Contributor

mattjohnsonpint commented Jan 30, 2023

Environment

Sentry-CLI 2.12.0

Steps to Reproduce

  1. Using .NET 6 or .NET 7 SDK, create a new class library
dotnet new classlib -n MyLib
cd MyLib
  1. Modify MyLib.csproj and add the following to the existing property group, which tells the compiler to embed debug info into the dll/exe itself. Reference here.
<DebugType>embedded</DebugType>
  1. Build in release configuration:
dotnet build -c Release
  1. Check the resulting file with Sentry CLI:
sentry-cli dif check bin/Release/net7.0/MyLib.dll

Expected Result

Should have found debug symbols and sources. This works if we build without embedded sources and check the pdb file, but not when we use embedded sources and check the dll.

Actual Result

Nothing found in the dll.

Debug Info File Check
  Type: pe library
  Contained debug identifiers:
    > Debug ID: 940225b8-316b-46cd-b6c5-4e6a5a6613d7-1
      Code ID:  8be87e768000
      Arch:     x86
  Contained debug information:
    > none
  Usable: no (missing debug or unwind information)

Doesn't work with dif upload either.

@mattjohnsonpint
Copy link
Contributor Author

mattjohnsonpint commented Jan 30, 2023

@Swatinem @vaind

@mattjohnsonpint
Copy link
Contributor Author

I presume this is a symbolic issue, not specifically sentry-cli. But let me know. Thanks.

@vaind
Copy link
Collaborator

vaind commented Jan 30, 2023

Duplicate of getsentry/sentry-dotnet#2073 though that's in the dotnet repo

@Swatinem
Copy link
Member

There is a bunch of PRs that I never finished to read the "correct" deterministic debug id from the dll, as well as provide access to the underlying .NET metadata from the dll: #658 and #659
I believe if we finish those up, we should be able to use the dll directly, instead of requiring a pdb. Might be some work though.
Can you provide us with a small fixture to test against?

@vaind
Copy link
Collaborator

vaind commented Jan 31, 2023

I'll have a look if I can pick those up @Swatinem

@vaind
Copy link
Collaborator

vaind commented Feb 6, 2023

FYI, some of the PRs are merged now but this issue is not resolved yet. I'm currently jumping through the hoops to get DLL-with-PPDB picked up by the CLI properly (or just extract the PPDB) and also get it processed in the symbolicator afterwards. While trying to avoid having to decompressed the PPDB on each function call...

@vaind vaind self-assigned this Feb 6, 2023
@Swatinem
Copy link
Member

Swatinem commented Feb 6, 2023

I believe sentry-cli should pick up a DLL just like any other? Or does it reject .NET dlls?

@vaind
Copy link
Collaborator

vaind commented Feb 6, 2023

I believe sentry-cli should pick up a DLL just like any other? Or does it reject .NET dlls?

It skips these DLLs because they don't have any of the looked-for "features". It's actually also pasted in the original issue description above, in Actual Result

@Swatinem
Copy link
Member

Swatinem commented Feb 6, 2023

Ohhhh, I understand. Well, I would just say "debug info: true" if it has an embedded ppdb. because that is quite literally the debug info.

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

Successfully merging a pull request may close this issue.

3 participants