-
Notifications
You must be signed in to change notification settings - Fork 17.9k
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
runtime: endless sigtramp in the stack of coredump generated by panic on arm64 #58998
Comments
In triage, we think this might be a bug in Delve, but it could be something in our DWARF information. CC @aarzilli |
Will look into it. |
As far as I can tell it isn't delve, gdb can't get past runtime.sigtramp either:
Gdb has a bunch of special code to get past sigtramp but I think it only works with glibc's sigtramp. One way to do this would be to cheat and add a workaround on delve's side and load the registers from the ctx argument of runtime.sigtrampgo. Another way would be to change the linker to emit a DFE for runtime.sigtrampgo (or runtime.sigtramp) that instructs the debugger to load registers from the ctx argument. |
For what it's worth, in runtime/sys_linux_amd64.s we carefully set up the signal handler so that gdb and gcc could backtrace through it: https://go.googlesource.com/go/+/refs/heads/master/src/runtime/sys_linux_amd64.s#460. On arm64 the equivalent instructions are
Might be interesting to change |
What version of Go are you using (
go version
)?Does this issue reproduce with the latest release?
yes
What operating system and processor architecture are you using (
go env
)?CentOS Linux release 7.9.2009 (AltArch) (qemu on apple m2 host)
go env
OutputWhat did you do?
test:
then build it, run it, and check the coredump with dlv:
What did you expect to see?
normal stack
What did you see instead?
endless runtime.sigtramp, for example:
The text was updated successfully, but these errors were encountered: