package runtime
import (
)
type sigctxt struct {
info *siginfo
ctxt unsafe.Pointer
}
func ( *sigctxt) () *sigcontext {
return (*sigcontext)(unsafe.Pointer(&(*ucontext)(.ctxt).uc_mcontext))
}
func ( *sigctxt) () uint64 { return .regs().rax }
func ( *sigctxt) () uint64 { return .regs().rbx }
func ( *sigctxt) () uint64 { return .regs().rcx }
func ( *sigctxt) () uint64 { return .regs().rdx }
func ( *sigctxt) () uint64 { return .regs().rdi }
func ( *sigctxt) () uint64 { return .regs().rsi }
func ( *sigctxt) () uint64 { return .regs().rbp }
func ( *sigctxt) () uint64 { return .regs().rsp }
func ( *sigctxt) () uint64 { return .regs().r8 }
func ( *sigctxt) () uint64 { return .regs().r9 }
func ( *sigctxt) () uint64 { return .regs().r10 }
func ( *sigctxt) () uint64 { return .regs().r11 }
func ( *sigctxt) () uint64 { return .regs().r12 }
func ( *sigctxt) () uint64 { return .regs().r13 }
func ( *sigctxt) () uint64 { return .regs().r14 }
func ( *sigctxt) () uint64 { return .regs().r15 }
func ( *sigctxt) () uint64 { return .regs().rip }
func ( *sigctxt) () uint64 { return .regs().eflags }
func ( *sigctxt) () uint64 { return uint64(.regs().cs) }
func ( *sigctxt) () uint64 { return uint64(.regs().fs) }
func ( *sigctxt) () uint64 { return uint64(.regs().gs) }
func ( *sigctxt) () uint64 { return uint64(.info.si_code) }
func ( *sigctxt) () uint64 { return .info.si_addr }
func ( *sigctxt) ( uint64) { .regs().rip = }
func ( *sigctxt) ( uint64) { .regs().rsp = }
func ( *sigctxt) ( uint64) { .info.si_code = int32() }
func ( *sigctxt) ( uint64) {
*(*uintptr)(add(unsafe.Pointer(.info), 2*goarch.PtrSize)) = uintptr()
}
func ( string, uintptr, uintptr, uintptr) {
println()
println("SP:\t", hex())
println("ctx:\t", hex())
:= + unsafe.Offsetof(ucontext{}.uc_mcontext) + unsafe.Offsetof(mcontext{}.fpregs)
println("fpfield:\t", hex())
:= uintptr(unsafe.Pointer((&sigctxt{nil, unsafe.Pointer()}).regs().fpstate))
println("fpstate:\t", hex())
hexdumpWords(, , func( uintptr, hexdumpMarker) {
switch {
case :
.start()
print("C")
println()
case :
.start()
print("F")
println()
case :
.start()
print("S")
println()
}
})
}