mirror of
				https://github.com/go-delve/delve.git
				synced 2025-10-30 18:27:37 +08:00 
			
		
		
		
	 15bac71979
			
		
	
	15bac71979
	
	
	
		
			
			- move native backend to pkg/proc/native - move gdbserver backend to pkg/proc/gdbserial - move core dumps backend to pkg/proc/core
		
			
				
	
	
		
			115 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			115 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package native
 | |
| 
 | |
| import "unsafe"
 | |
| 
 | |
| const (
 | |
| 	_CONTEXT_AMD64               = 0x100000
 | |
| 	_CONTEXT_CONTROL             = (_CONTEXT_AMD64 | 0x1)
 | |
| 	_CONTEXT_INTEGER             = (_CONTEXT_AMD64 | 0x2)
 | |
| 	_CONTEXT_SEGMENTS            = (_CONTEXT_AMD64 | 0x4)
 | |
| 	_CONTEXT_FLOATING_POINT      = (_CONTEXT_AMD64 | 0x8)
 | |
| 	_CONTEXT_DEBUG_REGISTERS     = (_CONTEXT_AMD64 | 0x10)
 | |
| 	_CONTEXT_FULL                = (_CONTEXT_CONTROL | _CONTEXT_INTEGER | _CONTEXT_FLOATING_POINT)
 | |
| 	_CONTEXT_ALL                 = (_CONTEXT_CONTROL | _CONTEXT_INTEGER | _CONTEXT_SEGMENTS | _CONTEXT_FLOATING_POINT | _CONTEXT_DEBUG_REGISTERS)
 | |
| 	_CONTEXT_EXCEPTION_ACTIVE    = 0x8000000
 | |
| 	_CONTEXT_SERVICE_ACTIVE      = 0x10000000
 | |
| 	_CONTEXT_EXCEPTION_REQUEST   = 0x40000000
 | |
| 	_CONTEXT_EXCEPTION_REPORTING = 0x80000000
 | |
| )
 | |
| 
 | |
| type _M128A struct {
 | |
| 	Low  uint64
 | |
| 	High int64
 | |
| }
 | |
| 
 | |
| type _XMM_SAVE_AREA32 struct {
 | |
| 	ControlWord    uint16
 | |
| 	StatusWord     uint16
 | |
| 	TagWord        byte
 | |
| 	Reserved1      byte
 | |
| 	ErrorOpcode    uint16
 | |
| 	ErrorOffset    uint32
 | |
| 	ErrorSelector  uint16
 | |
| 	Reserved2      uint16
 | |
| 	DataOffset     uint32
 | |
| 	DataSelector   uint16
 | |
| 	Reserved3      uint16
 | |
| 	MxCsr          uint32
 | |
| 	MxCsr_Mask     uint32
 | |
| 	FloatRegisters [8]_M128A
 | |
| 	XmmRegisters   [256]byte
 | |
| 	Reserved4      [96]byte
 | |
| }
 | |
| 
 | |
| type _CONTEXT struct {
 | |
| 	P1Home uint64
 | |
| 	P2Home uint64
 | |
| 	P3Home uint64
 | |
| 	P4Home uint64
 | |
| 	P5Home uint64
 | |
| 	P6Home uint64
 | |
| 
 | |
| 	ContextFlags uint32
 | |
| 	MxCsr        uint32
 | |
| 
 | |
| 	SegCs  uint16
 | |
| 	SegDs  uint16
 | |
| 	SegEs  uint16
 | |
| 	SegFs  uint16
 | |
| 	SegGs  uint16
 | |
| 	SegSs  uint16
 | |
| 	EFlags uint32
 | |
| 
 | |
| 	Dr0 uint64
 | |
| 	Dr1 uint64
 | |
| 	Dr2 uint64
 | |
| 	Dr3 uint64
 | |
| 	Dr6 uint64
 | |
| 	Dr7 uint64
 | |
| 
 | |
| 	Rax uint64
 | |
| 	Rcx uint64
 | |
| 	Rdx uint64
 | |
| 	Rbx uint64
 | |
| 	Rsp uint64
 | |
| 	Rbp uint64
 | |
| 	Rsi uint64
 | |
| 	Rdi uint64
 | |
| 	R8  uint64
 | |
| 	R9  uint64
 | |
| 	R10 uint64
 | |
| 	R11 uint64
 | |
| 	R12 uint64
 | |
| 	R13 uint64
 | |
| 	R14 uint64
 | |
| 	R15 uint64
 | |
| 
 | |
| 	Rip uint64
 | |
| 
 | |
| 	FltSave _XMM_SAVE_AREA32
 | |
| 
 | |
| 	VectorRegister [26]_M128A
 | |
| 	VectorControl  uint64
 | |
| 
 | |
| 	DebugControl         uint64
 | |
| 	LastBranchToRip      uint64
 | |
| 	LastBranchFromRip    uint64
 | |
| 	LastExceptionToRip   uint64
 | |
| 	LastExceptionFromRip uint64
 | |
| }
 | |
| 
 | |
| // newCONTEXT allocates Windows CONTEXT structure aligned to 16 bytes.
 | |
| func newCONTEXT() *_CONTEXT {
 | |
| 	var c *_CONTEXT
 | |
| 	buf := make([]byte, unsafe.Sizeof(*c)+15)
 | |
| 	return (*_CONTEXT)(unsafe.Pointer((uintptr(unsafe.Pointer(&buf[15]))) &^ 15))
 | |
| }
 | |
| 
 | |
| type _DEBUG_EVENT struct {
 | |
| 	DebugEventCode uint32
 | |
| 	ProcessId      uint32
 | |
| 	ThreadId       uint32
 | |
| 	_              uint32 // to align Union properly
 | |
| 	U              [160]byte
 | |
| }
 |