You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
While helping @fadimounir to debug a core dump on macOS, I've found that our checked and debug binaries built in the coreclr repo don't contain full debug symbols like source code info. After looking into it, I've found that it was that way probably forever. The problem is caused by the behavior of linker on macOS. When the compilation and linking steps are separate, the linker doesn't copy the debug info from the object files into the final binary. It is needed to use the dsymutil tool on the final binary tot extracts the debug info from the original object files into a separate symbol file. There seems to be no way to embed them into the final binary like it happens on Linux.
We run the dsymutil in release builds to extract the debug info into separate files before we strip all of the symbols from the binaries. We need to do the same thing for debug and checked builds too.
The text was updated successfully, but these errors were encountered:
Symbol stripping is on by default in cmake scripts. This cleans up the remaining places where the no-op `-stripsymbols` option is passed from shell scripts via `.proj` files.
Fixes#32957
ghost
locked as resolved and limited conversation to collaborators
Dec 10, 2020
Sign up for freeto subscribe to this conversation on GitHub.
Already have an account?
Sign in.
While helping @fadimounir to debug a core dump on macOS, I've found that our checked and debug binaries built in the coreclr repo don't contain full debug symbols like source code info. After looking into it, I've found that it was that way probably forever. The problem is caused by the behavior of linker on macOS. When the compilation and linking steps are separate, the linker doesn't copy the debug info from the object files into the final binary. It is needed to use the dsymutil tool on the final binary tot extracts the debug info from the original object files into a separate symbol file. There seems to be no way to embed them into the final binary like it happens on Linux.
We run the dsymutil in release builds to extract the debug info into separate files before we strip all of the symbols from the binaries. We need to do the same thing for debug and checked builds too.
The text was updated successfully, but these errors were encountered: