mirror of
https://github.com/go-delve/delve.git
synced 2025-10-29 01:27:16 +08:00
locspec,proc: improve documentation (#2338)
* Reformat pkg/locspec documentation so that it is formatted correctly by godoc/pkgsite * Unexport some types and variables in proc that don't need to be exported.
This commit is contained in:
committed by
GitHub
parent
74223baf90
commit
c068861f95
@ -3,13 +3,13 @@
|
||||
//
|
||||
// Location spec examples:
|
||||
//
|
||||
// locStr ::= <filename>:<line> | <function>[:<line>] | /<regex>/ | (+|-)<offset> | <line> | *<address>
|
||||
// * <filename> can be the full path of a file or just a suffix
|
||||
// * <function> ::= <package>.<receiver type>.<name> | <package>.(*<receiver type>).<name> | <receiver type>.<name> | <package>.<name> | (*<receiver type>).<name> | <name>
|
||||
// * <function> must be unambiguous
|
||||
// * /<regex>/ will return a location for each function matched by regex
|
||||
// * +<offset> returns a location for the line that is <offset> lines after the current line
|
||||
// * -<offset> returns a location for the line that is <offset> lines before the current line
|
||||
// * <line> returns a location for a line in the current file
|
||||
// * *<address> returns the location corresponding to the specified address
|
||||
// locStr ::= <filename>:<line> | <function>[:<line>] | /<regex>/ | (+|-)<offset> | <line> | *<address>
|
||||
// * <filename> can be the full path of a file or just a suffix
|
||||
// * <function> ::= <package>.<receiver type>.<name> | <package>.(*<receiver type>).<name> | <receiver type>.<name> | <package>.<name> | (*<receiver type>).<name> | <name>
|
||||
// <function> must be unambiguous
|
||||
// * /<regex>/ will return a location for each function matched by regex
|
||||
// * +<offset> returns a location for the line that is <offset> lines after the current line
|
||||
// * -<offset> returns a location for the line that is <offset> lines before the current line
|
||||
// * <line> returns a location for a line in the current file
|
||||
// * *<address> returns the location corresponding to the specified address
|
||||
package locspec
|
||||
|
||||
@ -123,8 +123,8 @@ var (
|
||||
elf.EM_386: true,
|
||||
}
|
||||
|
||||
supportedWindowsArch = map[PEMachine]bool{
|
||||
IMAGE_FILE_MACHINE_AMD64: true,
|
||||
supportedWindowsArch = map[_PEMachine]bool{
|
||||
_IMAGE_FILE_MACHINE_AMD64: true,
|
||||
}
|
||||
|
||||
supportedDarwinArch = map[macho.Cpu]bool{
|
||||
@ -227,19 +227,19 @@ func FirstPCAfterPrologue(p Process, fn *Function, sameline bool) (uint64, error
|
||||
return pc, nil
|
||||
}
|
||||
|
||||
// CpuArch is a stringer interface representing CPU architectures.
|
||||
type CpuArch interface {
|
||||
// cpuArch is a stringer interface representing CPU architectures.
|
||||
type cpuArch interface {
|
||||
String() string
|
||||
}
|
||||
|
||||
// ErrUnsupportedArch is returned when attempting to debug a binary compiled for an unsupported architecture.
|
||||
type ErrUnsupportedArch struct {
|
||||
os string
|
||||
cpuArch CpuArch
|
||||
cpuArch cpuArch
|
||||
}
|
||||
|
||||
func (e *ErrUnsupportedArch) Error() string {
|
||||
var supportArchs []CpuArch
|
||||
var supportArchs []cpuArch
|
||||
switch e.os {
|
||||
case "linux":
|
||||
for linuxArch, _ := range supportedLinuxArch {
|
||||
@ -1185,8 +1185,8 @@ func loadBinaryInfoElf(bi *BinaryInfo, image *Image, path string, addr uint64, w
|
||||
return nil
|
||||
}
|
||||
|
||||
// STT_FUNC is a code object, see /usr/include/elf.h for a full definition.
|
||||
const STT_FUNC = 2
|
||||
// _STT_FUNC is a code object, see /usr/include/elf.h for a full definition.
|
||||
const _STT_FUNC = 2
|
||||
|
||||
func (bi *BinaryInfo) loadSymbolName(image *Image, file *elf.File, wg *sync.WaitGroup) {
|
||||
defer wg.Done()
|
||||
@ -1196,7 +1196,7 @@ func (bi *BinaryInfo) loadSymbolName(image *Image, file *elf.File, wg *sync.Wait
|
||||
symSecs, _ := file.Symbols()
|
||||
if symSecs != nil {
|
||||
for _, symSec := range symSecs {
|
||||
if symSec.Info == STT_FUNC { // TODO(chainhelen), need to parse others types.
|
||||
if symSec.Info == _STT_FUNC { // TODO(chainhelen), need to parse others types.
|
||||
s := symSec
|
||||
bi.SymNames[symSec.Value+image.StaticBase] = &s
|
||||
}
|
||||
@ -1274,7 +1274,7 @@ func loadBinaryInfoPE(bi *BinaryInfo, image *Image, path string, entryPoint uint
|
||||
return err
|
||||
}
|
||||
image.closer = closer
|
||||
cpuArch := PEMachine(peFile.Machine)
|
||||
cpuArch := _PEMachine(peFile.Machine)
|
||||
if !supportedWindowsArch[cpuArch] {
|
||||
return &ErrUnsupportedArch{os: "windows", cpuArch: cpuArch}
|
||||
}
|
||||
|
||||
@ -56,7 +56,7 @@ type AssemblyFlavour int
|
||||
|
||||
const (
|
||||
// GNUFlavour will display GNU assembly syntax.
|
||||
GNUFlavour = AssemblyFlavour(iota)
|
||||
GNUFlavour AssemblyFlavour = iota
|
||||
// IntelFlavour will display Intel assembly syntax.
|
||||
IntelFlavour
|
||||
// GoFlavour will display Go assembly syntax.
|
||||
|
||||
@ -5,60 +5,60 @@ import (
|
||||
)
|
||||
|
||||
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
|
||||
_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
|
||||
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",
|
||||
var _PEMachineString = map[_PEMachine]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)]
|
||||
func (m _PEMachine) String() string {
|
||||
str, ok := _PEMachineString[m]
|
||||
if ok {
|
||||
return str
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user