Skip to content

[Breaking change]: StripSymbols=true is now the default option for PublishAot #35108

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

Closed
1 of 3 tasks
MichalStrehovsky opened this issue Apr 24, 2023 · 0 comments · Fixed by #35229
Closed
1 of 3 tasks
Assignees
Labels
breaking-change Indicates a .NET Core breaking change 🏁 Release: .NET 8 Work items for the .NET 8 release 📌 seQUESTered Identifies that an issue has been imported into Quest.

Comments

@MichalStrehovsky
Copy link
Member

MichalStrehovsky commented Apr 24, 2023

Description

dotnet/runtime#85139

When .NET 7 introduced Native AOT deployment, we exposed a StripSymbols property that optionally allows to strip debugging symbols from the produced executable on Linux into a separate file. The default value of the property was false.

In .NET 8 we're changing it to true.

Version

.NET 8 (other)

Previous behavior

Debugging symbols on Linux with PublishAot were placed into the produced executable by default with an opt-in to place them into a .dbg file.

New behavior

Debugging symbols on Linux with PublishAot are placed into a .dbg file with an opt-out to place them into the executable.

Type of breaking change

  • Binary incompatible: Existing binaries may encounter a breaking change in behavior, such as failure to load or execute, and if so, require recompilation.
  • Source incompatible: When recompiled using the new SDK or component or to target the new runtime, existing source code may require source changes to compile successfully.
  • Behavioral change: Existing binaries may behave differently at run time.

Reason for change

Based on feedback, we established the .NET users prefer the .NET symbols convention instead of the platform-native convention. The option was not discoverable enough.

Recommended action

  • If you rely on debugging symbols being present in the main executable, add <StripSymbols>false</StripSymbols> to your project file to restore the previous behavior.
  • If you choose to use the new default, verify the debugging symbols in .dbg files are properly archived if you expect you'll need to debug the generated executables.

Feature area

Deployment

Affected APIs

No response


Associated WorkItem - 91240

@MichalStrehovsky MichalStrehovsky added doc-idea breaking-change Indicates a .NET Core breaking change labels Apr 24, 2023
@dotnet-bot dotnet-bot added the ⌚ Not Triaged Not triaged label Apr 24, 2023
@gewarren gewarren added the 🏁 Release: .NET 8 Work items for the .NET 8 release label Apr 24, 2023
@gewarren gewarren removed the ⌚ Not Triaged Not triaged label Apr 24, 2023
@ghost ghost added the in-pr This issue will be closed (fixed) by an active pull request. label May 3, 2023
@gewarren gewarren moved this from 🔖 Ready to 👀 In review in dotnet/docs May 2023 sprint May 3, 2023
@github-project-automation github-project-automation bot moved this from 🆕 New to ✅ Done in .NET 8.0 work items May 8, 2023
@github-project-automation github-project-automation bot moved this from 👀 In review to ✅ Done in dotnet/docs May 2023 sprint May 8, 2023
@ghost ghost removed the in-pr This issue will be closed (fixed) by an active pull request. label May 8, 2023
@gewarren gewarren added the 🗺️ reQUEST Triggers an issue to be imported into Quest. label May 18, 2023
@github-actions github-actions bot added 📌 seQUESTered Identifies that an issue has been imported into Quest. and removed 🗺️ reQUEST Triggers an issue to be imported into Quest. labels May 19, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
breaking-change Indicates a .NET Core breaking change 🏁 Release: .NET 8 Work items for the .NET 8 release 📌 seQUESTered Identifies that an issue has been imported into Quest.
Projects
No open projects
Status: Done
Status: Done
Development

Successfully merging a pull request may close this issue.

3 participants