delve/pkg/proc/pe.go

67 lines
2.0 KiB
Go
Raw Normal View History

package proc
import (
"fmt"
)
const (
IMAGE_FILE_MACHINE_UNKNOWN = 0x0
IMAGE_FILE_MACHINE_AM33 = 0x1d3
IMAGE_FILE_MACHINE_AMD64 = 0x8664
IMAGE_FILE_MACHINE_ARM = 0x1c0
IMAGE_FILE_MACHINE_ARMNT = 0x1c4
IMAGE_FILE_MACHINE_ARM64 = 0xaa64
IMAGE_FILE_MACHINE_EBC = 0xebc
IMAGE_FILE_MACHINE_I386 = 0x14c
IMAGE_FILE_MACHINE_IA64 = 0x200
IMAGE_FILE_MACHINE_M32R = 0x9041
IMAGE_FILE_MACHINE_MIPS16 = 0x266
IMAGE_FILE_MACHINE_MIPSFPU = 0x366
IMAGE_FILE_MACHINE_MIPSFPU16 = 0x466
IMAGE_FILE_MACHINE_POWERPC = 0x1f0
IMAGE_FILE_MACHINE_POWERPCFP = 0x1f1
IMAGE_FILE_MACHINE_R4000 = 0x166
IMAGE_FILE_MACHINE_SH3 = 0x1a2
IMAGE_FILE_MACHINE_SH3DSP = 0x1a3
IMAGE_FILE_MACHINE_SH4 = 0x1a6
IMAGE_FILE_MACHINE_SH5 = 0x1a8
IMAGE_FILE_MACHINE_THUMB = 0x1c2
IMAGE_FILE_MACHINE_WCEMIPSV2 = 0x169
)
type PEMachine uint16
// PEMachineString map pe machine to name, See $GOROOT/src/debug/pe/pe.go for detail
var PEMachineString = map[uint16]string{
IMAGE_FILE_MACHINE_UNKNOWN: "unknown",
IMAGE_FILE_MACHINE_AM33: "am33",
IMAGE_FILE_MACHINE_AMD64: "amd64",
IMAGE_FILE_MACHINE_ARM: "arm",
IMAGE_FILE_MACHINE_ARMNT: "armnt",
IMAGE_FILE_MACHINE_ARM64: "arm64",
IMAGE_FILE_MACHINE_EBC: "ebc",
IMAGE_FILE_MACHINE_I386: "i386",
IMAGE_FILE_MACHINE_IA64: "ia64",
IMAGE_FILE_MACHINE_M32R: "m32r",
IMAGE_FILE_MACHINE_MIPS16: "mips16",
IMAGE_FILE_MACHINE_MIPSFPU: "mipsfpu",
IMAGE_FILE_MACHINE_MIPSFPU16: "mipsfpu16",
IMAGE_FILE_MACHINE_POWERPC: "powerpc",
IMAGE_FILE_MACHINE_POWERPCFP: "powerpcfp",
IMAGE_FILE_MACHINE_R4000: "r4000",
IMAGE_FILE_MACHINE_SH3: "sh3",
IMAGE_FILE_MACHINE_SH3DSP: "sh3dsp",
IMAGE_FILE_MACHINE_SH4: "sh4",
IMAGE_FILE_MACHINE_SH5: "sh5",
IMAGE_FILE_MACHINE_THUMB: "thumb",
IMAGE_FILE_MACHINE_WCEMIPSV2: "wcemipsv2",
}
func (m PEMachine) String() string {
str, ok := PEMachineString[uint16(m)]
if ok {
return str
}
return fmt.Sprintf("unkown image file machine code %d\n", uint16(m))
}