34 lines
551 B
Go
34 lines
551 B
Go
![]() |
package proctl
|
||
|
|
||
|
type Arch interface {
|
||
|
PtrSize() int
|
||
|
BreakpointInstruction() []byte
|
||
|
BreakpointSize() int
|
||
|
}
|
||
|
|
||
|
type AMD64 struct {
|
||
|
ptrSize int
|
||
|
breakInstruction []byte
|
||
|
breakInstructionLen int
|
||
|
}
|
||
|
|
||
|
func AMD64Arch() *AMD64 {
|
||
|
return &AMD64{
|
||
|
ptrSize: 8,
|
||
|
breakInstruction: []byte{0xCC},
|
||
|
breakInstructionLen: 1,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func (a *AMD64) PtrSize() int {
|
||
|
return a.ptrSize
|
||
|
}
|
||
|
|
||
|
func (a *AMD64) BreakpointInstruction() []byte {
|
||
|
return a.breakInstruction
|
||
|
}
|
||
|
|
||
|
func (a *AMD64) BreakpointSize() int {
|
||
|
return a.breakInstructionLen
|
||
|
}
|