Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AMD64XstateMaxSize ¶
func AMD64XstateMaxSize() int
func AMD64XstateRead ¶
func AMD64XstateRead(xstateargs []byte, readLegacy bool, regset *AMD64Xstate) error
AMD64XstateRead reads a byte array containing an XSAVE area into regset. If readLegacy is true regset.PtraceFpRegs will be filled with the contents of the legacy region of the XSAVE area. See Section 13.1 (and following) of Intel® 64 and IA-32 Architectures Software Developer’s Manual, Volume 1: Basic Architecture.
Types ¶
type AMD64PtraceFpRegs ¶
type AMD64PtraceFpRegs struct {
Cwd uint16
Swd uint16
Ftw uint16
Fop uint16
Rip uint64
Rdp uint64
Mxcsr uint32
MxcrMask uint32
StSpace [32]uint32
XmmSpace [256]byte
Padding [24]uint32
}
AMD64PtraceFpRegs tracks user_fpregs_struct in /usr/include/x86_64-linux-gnu/sys/user.h
type AMD64Xstate ¶
type AMD64Xstate struct {
AMD64PtraceFpRegs
Xsave []byte // raw xsave area
AvxState bool // contains AVX state
YmmSpace [256]byte
Avx512State bool // contains AVX512 state
ZmmSpace [512]byte
}
AMD64Xstate represents amd64 XSAVE area. See Section 13.1 (and following) of Intel® 64 and IA-32 Architectures Software Developer’s Manual, Volume 1: Basic Architecture.
func (*AMD64Xstate) Decode ¶
func (xstate *AMD64Xstate) Decode() []proc.Register
Decode decodes an XSAVE area to a list of name/value pairs of registers.
func (*AMD64Xstate) SetXmmRegister ¶
func (xstate *AMD64Xstate) SetXmmRegister(n int, value []byte) error
type DebugRegisters ¶
type DebugRegisters struct {
Dirty bool
// contains filtered or unexported fields
}
DebugRegisters represents x86 debug registers described in the Intel 64 and IA-32 Architectures Software Developer's Manual, Vol. 3B, section 17.2
func NewDebugRegisters ¶
func NewDebugRegisters(pDR0, pDR1, pDR2, pDR3, pDR6, pDR7 *uint64) *DebugRegisters
func (*DebugRegisters) ClearBreakpoint ¶
func (drs *DebugRegisters) ClearBreakpoint(idx uint8)
ClearBreakpoint disables the hardware breakpoint at index 'idx'. If the breakpoint was already disabled it does nothing.
func (*DebugRegisters) GetActiveBreakpoint ¶
func (drs *DebugRegisters) GetActiveBreakpoint() (ok bool, idx uint8)
GetActiveBreakpoint returns the active hardware breakpoint and resets the condition flags.
func (*DebugRegisters) SetBreakpoint ¶
SetBreakpoint sets hardware breakpoint at index 'idx' to the specified address, read/write flags and size. If the breakpoint is already in use but the parameters match it does nothing.