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
Always leverage fast unwinding to obtain the native stack #141
Conversation
8066922
to
98ad428
Compare
98ad428
to
c550f53
Compare
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, but one suggestion. Feel free to ignore and land if you don't want to take the suggestion.
Also - does this deserve a changelog entry? This fixes a bug where aggregating call stacks could give misleading results on aarch64 under some circumstances, right? |
c550f53
to
208bb91
Compare
Yes and not, is not mostly user-visible because the actual stack traces were the same (they will produce weird aggregations but not incorrect ones), is just that the test suite fails because the native_frame_ids are different although they produce the same results. I will add a news entry nevertheless |
55d7d84
to
db90c91
Compare
@godlygeek Can you please review again? |
Seems that libunwind just chokes if the function that calls unw_get_reg is not inlined in aarch64. Additionally, there are some problems with inlined functions that call libunwind's APIs in powerpc and other architectures. To avoid all this trouble, leverage just the fast unwinding APIs, which will make the program counters more consistent and will eliminate the inline shenanigans. Additionally increase the default size for the native stack vector to reduce the need to call multiple times into the unwinding API. Signed-off-by: Pablo Galindo <pablogsal@gmail.com>
db90c91
to
19e55f0
Compare
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
Seems that libunwind just chokes if the function that calls unw_get_reg
is not inlined in aarch64. Additionally, there are some problems with
inlined functions that call libunwind's APIs in powerpc and other
architectures.
To avoid all this trouble, leverage just the fast unwinding APIs, which
will make the program counters more consistent and will eliminate the
inline shenanigans.
Closes: #126