-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
Add --frame-pointers
to control preservation of frame pointers
#13860
Conversation
As an unrelated aside, I found this in Apple's ARM64 docs:
Could the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. I have left some comments for improvements.
74851ec
to
d922664
Compare
Frame pointers are extremely useful for quickly generating accurate stack traces when debugging and profiling release builds. In particular, it allows the use of Linux's perf stack, which offers high-performance profiling but only supports unwinding via frame pointers, barring some extremely slow workarounds: https://blogs.gnome.org/chergert/2022/12/31/frame-pointers-and-other-practical-near-term-solutions/
d922664
to
9257aac
Compare
Co-authored-by: Sijawusz Pur Rahnama <sija@sija.pl>
Co-authored-by: Sijawusz Pur Rahnama <sija@sija.pl>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM 🚀
Nice! I just tested this patch with a program I was analyzing with linux perf tools, and most of the unknown symbols are now explained 🥳 Weirdly I returned to crystal 1.10.1 without the frame pointers, and perf still finds the symbols 🤨 |
Co-authored-by: Quinton Miller <nicetas.c@gmail.com>
--frame-pointers
to control preservation of frame pointers
Frame pointers are extremely useful for quickly generating accurate stack traces when debugging and profiling release builds. In particular, it allows the use of Linux's perf stack, which offers high-performance profiling but only supports unwinding via frame pointers, barring some extremely slow workarounds:
https://blogs.gnome.org/chergert/2022/12/31/frame-pointers-and-other-practical-near-term-solutions/