-
Notifications
You must be signed in to change notification settings - Fork 132
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
Consolidate symbols into a single artifact #3621
Comments
@dotnet/distro-maintainers, please comment on how you would like the symbols packaged. |
+1 In #3547 (which was closed last week), I requested symbols to be included in the SDK tarball. The rationale was that maintainers shouldn't have to figure out where these files need to be placed. Having a separate symbols tarball which can be extracted on top of the SDK tarball also meets that goal. |
Both We can only harvest symbols for each repo individually, and that was done with dotnet/arcade#14015. Repo-specific symbols packages are preserving the repo's output hierarchy, so that we can support the case of multiple different copies of the file with the same name. It is a non-trivial task to assemble an SDK tarball that would have symbols for each binary placed right next to the binary. Is this a goal for distros? I was under the impression that symbols are generally published to some distro server, to make them available for debug scenarios. By consolidating symbols in a single archive, we'd enable distros to publish the contents using less steps. |
This is what happens, but not exactly. More often, the symbols are packaged up into distro-style-packages that users can then install to get access to the full debug symbols (managed, and unmanaged). I don't think we even have debug servers that can provide managed debug symbols (unmanaged debug symbol servers are a recent thing on Linux).
As a distro maintainer, I primarily care that symbols are available in a location where the tools that use the symbols can pick them up. Does anyone know how tools like vscode handles scenarios like this? Does the pdb file need to be placed next to the dll, or can we put all symbols in a single directory on disk and have vscode be happy with that too? If tools are happy with all symbols in a single central I don't think we need to create more work for ourselves to mirror the SDK layout. |
Good point! As far as I know, the vscode-csharp extension searches by default next to the dll where the pdb was originally dropped to, but you can configure a directory where the extension should search in (see: debugger-launchjson.md#symbol-options) |
Unfortunately VSCode only checks for symbols in the actual directory provided in |
I'm looking into this option. We'd still preserve all symbols, as there are a lot of packages (i.e. various nugets) that are not included in SDK. |
Fixed with dotnet/installer#17454 We now have two symbols packages: one with all symbols and one with SDK symbols in folder hierarchy that matches SDK binaries. SDK symbols package can be extracted on top of extracted SDK package contents to enable easy debugging. Package names:
|
The package name is actually It would have been nice to avoid the prefix match with the sdk. cc @omajid |
[Triage] Reopening as we agree that it is convenient for everyone if a wildcard search pattern can be utilitized. |
Fixed with dotnet/installer#17521 New symbols package names are:
|
Currently in source-build, there is a symbols tarball produced for each product repo. From a consumer perspective, this seems undesirable. My hypothesis is that having all symbols packagef together in a single tarball would be more convenient.
The text was updated successfully, but these errors were encountered: