-
Notifications
You must be signed in to change notification settings - Fork 262
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
support arm64 vdso functions with a frame #195
Conversation
509c731
to
67dc0d2
Compare
depending on gcc version and optimization level the kernel vDSO may or may not contain simple calls with frame. Accommodate for this.
67dc0d2
to
4803e3f
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.
Thanks LGTM (added some nits for docstring consistency)
I need to double check if this actually works as expected. The frame finding works, but the stack delta generated may be incorrect. I'll try to get a proper coredump test case for this. |
Good point, forgot to mention that I can't test this atm. |
So turns out this was quite difficult for me too. My ARM64 box runs kernel where the vDSO does not have this. Ubuntu kernels do. So I ended up running Ubuntu kernel on qemu-system-aarch64. Due to that setup being slow, I ended up just creating a coredump in the old style format (core only, no associated original ELF files). I'll need to see if I can convert it still to the new style by hand, or alternatively just dump it in in the old format. In any case, I got the stack delta wrong, it is fixed now and should be working. |
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.
Code LGTM, but didn't test on arm64.
Add logic to unwind through vDSO functions with frame.