mirror of
https://github.com/go-delve/delve.git
synced 2025-10-30 02:07:58 +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
@ -6,7 +6,7 @@
|
|||||||
// locStr ::= <filename>:<line> | <function>[:<line>] | /<regex>/ | (+|-)<offset> | <line> | *<address>
|
// locStr ::= <filename>:<line> | <function>[:<line>] | /<regex>/ | (+|-)<offset> | <line> | *<address>
|
||||||
// * <filename> can be the full path of a file or just a suffix
|
// * <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> ::= <package>.<receiver type>.<name> | <package>.(*<receiver type>).<name> | <receiver type>.<name> | <package>.<name> | (*<receiver type>).<name> | <name>
|
||||||
// * <function> must be unambiguous
|
// <function> must be unambiguous
|
||||||
// * /<regex>/ will return a location for each function matched by regex
|
// * /<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 after the current line
|
||||||
// * -<offset> returns a location for the line that is <offset> lines before the current line
|
// * -<offset> returns a location for the line that is <offset> lines before the current line
|
||||||
|
|||||||
@ -123,8 +123,8 @@ var (
|
|||||||
elf.EM_386: true,
|
elf.EM_386: true,
|
||||||
}
|
}
|
||||||
|
|
||||||
supportedWindowsArch = map[PEMachine]bool{
|
supportedWindowsArch = map[_PEMachine]bool{
|
||||||
IMAGE_FILE_MACHINE_AMD64: true,
|
_IMAGE_FILE_MACHINE_AMD64: true,
|
||||||
}
|
}
|
||||||
|
|
||||||
supportedDarwinArch = map[macho.Cpu]bool{
|
supportedDarwinArch = map[macho.Cpu]bool{
|
||||||
@ -227,19 +227,19 @@ func FirstPCAfterPrologue(p Process, fn *Function, sameline bool) (uint64, error
|
|||||||
return pc, nil
|
return pc, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// CpuArch is a stringer interface representing CPU architectures.
|
// cpuArch is a stringer interface representing CPU architectures.
|
||||||
type CpuArch interface {
|
type cpuArch interface {
|
||||||
String() string
|
String() string
|
||||||
}
|
}
|
||||||
|
|
||||||
// ErrUnsupportedArch is returned when attempting to debug a binary compiled for an unsupported architecture.
|
// ErrUnsupportedArch is returned when attempting to debug a binary compiled for an unsupported architecture.
|
||||||
type ErrUnsupportedArch struct {
|
type ErrUnsupportedArch struct {
|
||||||
os string
|
os string
|
||||||
cpuArch CpuArch
|
cpuArch cpuArch
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *ErrUnsupportedArch) Error() string {
|
func (e *ErrUnsupportedArch) Error() string {
|
||||||
var supportArchs []CpuArch
|
var supportArchs []cpuArch
|
||||||
switch e.os {
|
switch e.os {
|
||||||
case "linux":
|
case "linux":
|
||||||
for linuxArch, _ := range supportedLinuxArch {
|
for linuxArch, _ := range supportedLinuxArch {
|
||||||
@ -1185,8 +1185,8 @@ func loadBinaryInfoElf(bi *BinaryInfo, image *Image, path string, addr uint64, w
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// STT_FUNC is a code object, see /usr/include/elf.h for a full definition.
|
// _STT_FUNC is a code object, see /usr/include/elf.h for a full definition.
|
||||||
const STT_FUNC = 2
|
const _STT_FUNC = 2
|
||||||
|
|
||||||
func (bi *BinaryInfo) loadSymbolName(image *Image, file *elf.File, wg *sync.WaitGroup) {
|
func (bi *BinaryInfo) loadSymbolName(image *Image, file *elf.File, wg *sync.WaitGroup) {
|
||||||
defer wg.Done()
|
defer wg.Done()
|
||||||
@ -1196,7 +1196,7 @@ func (bi *BinaryInfo) loadSymbolName(image *Image, file *elf.File, wg *sync.Wait
|
|||||||
symSecs, _ := file.Symbols()
|
symSecs, _ := file.Symbols()
|
||||||
if symSecs != nil {
|
if symSecs != nil {
|
||||||
for _, symSec := range symSecs {
|
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
|
s := symSec
|
||||||
bi.SymNames[symSec.Value+image.StaticBase] = &s
|
bi.SymNames[symSec.Value+image.StaticBase] = &s
|
||||||
}
|
}
|
||||||
@ -1274,7 +1274,7 @@ func loadBinaryInfoPE(bi *BinaryInfo, image *Image, path string, entryPoint uint
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
image.closer = closer
|
image.closer = closer
|
||||||
cpuArch := PEMachine(peFile.Machine)
|
cpuArch := _PEMachine(peFile.Machine)
|
||||||
if !supportedWindowsArch[cpuArch] {
|
if !supportedWindowsArch[cpuArch] {
|
||||||
return &ErrUnsupportedArch{os: "windows", cpuArch: cpuArch}
|
return &ErrUnsupportedArch{os: "windows", cpuArch: cpuArch}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -56,7 +56,7 @@ type AssemblyFlavour int
|
|||||||
|
|
||||||
const (
|
const (
|
||||||
// GNUFlavour will display GNU assembly syntax.
|
// GNUFlavour will display GNU assembly syntax.
|
||||||
GNUFlavour = AssemblyFlavour(iota)
|
GNUFlavour AssemblyFlavour = iota
|
||||||
// IntelFlavour will display Intel assembly syntax.
|
// IntelFlavour will display Intel assembly syntax.
|
||||||
IntelFlavour
|
IntelFlavour
|
||||||
// GoFlavour will display Go assembly syntax.
|
// GoFlavour will display Go assembly syntax.
|
||||||
|
|||||||
@ -5,60 +5,60 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
IMAGE_FILE_MACHINE_UNKNOWN = 0x0
|
_IMAGE_FILE_MACHINE_UNKNOWN = 0x0
|
||||||
IMAGE_FILE_MACHINE_AM33 = 0x1d3
|
_IMAGE_FILE_MACHINE_AM33 = 0x1d3
|
||||||
IMAGE_FILE_MACHINE_AMD64 = 0x8664
|
_IMAGE_FILE_MACHINE_AMD64 = 0x8664
|
||||||
IMAGE_FILE_MACHINE_ARM = 0x1c0
|
_IMAGE_FILE_MACHINE_ARM = 0x1c0
|
||||||
IMAGE_FILE_MACHINE_ARMNT = 0x1c4
|
_IMAGE_FILE_MACHINE_ARMNT = 0x1c4
|
||||||
IMAGE_FILE_MACHINE_ARM64 = 0xaa64
|
_IMAGE_FILE_MACHINE_ARM64 = 0xaa64
|
||||||
IMAGE_FILE_MACHINE_EBC = 0xebc
|
_IMAGE_FILE_MACHINE_EBC = 0xebc
|
||||||
IMAGE_FILE_MACHINE_I386 = 0x14c
|
_IMAGE_FILE_MACHINE_I386 = 0x14c
|
||||||
IMAGE_FILE_MACHINE_IA64 = 0x200
|
_IMAGE_FILE_MACHINE_IA64 = 0x200
|
||||||
IMAGE_FILE_MACHINE_M32R = 0x9041
|
_IMAGE_FILE_MACHINE_M32R = 0x9041
|
||||||
IMAGE_FILE_MACHINE_MIPS16 = 0x266
|
_IMAGE_FILE_MACHINE_MIPS16 = 0x266
|
||||||
IMAGE_FILE_MACHINE_MIPSFPU = 0x366
|
_IMAGE_FILE_MACHINE_MIPSFPU = 0x366
|
||||||
IMAGE_FILE_MACHINE_MIPSFPU16 = 0x466
|
_IMAGE_FILE_MACHINE_MIPSFPU16 = 0x466
|
||||||
IMAGE_FILE_MACHINE_POWERPC = 0x1f0
|
_IMAGE_FILE_MACHINE_POWERPC = 0x1f0
|
||||||
IMAGE_FILE_MACHINE_POWERPCFP = 0x1f1
|
_IMAGE_FILE_MACHINE_POWERPCFP = 0x1f1
|
||||||
IMAGE_FILE_MACHINE_R4000 = 0x166
|
_IMAGE_FILE_MACHINE_R4000 = 0x166
|
||||||
IMAGE_FILE_MACHINE_SH3 = 0x1a2
|
_IMAGE_FILE_MACHINE_SH3 = 0x1a2
|
||||||
IMAGE_FILE_MACHINE_SH3DSP = 0x1a3
|
_IMAGE_FILE_MACHINE_SH3DSP = 0x1a3
|
||||||
IMAGE_FILE_MACHINE_SH4 = 0x1a6
|
_IMAGE_FILE_MACHINE_SH4 = 0x1a6
|
||||||
IMAGE_FILE_MACHINE_SH5 = 0x1a8
|
_IMAGE_FILE_MACHINE_SH5 = 0x1a8
|
||||||
IMAGE_FILE_MACHINE_THUMB = 0x1c2
|
_IMAGE_FILE_MACHINE_THUMB = 0x1c2
|
||||||
IMAGE_FILE_MACHINE_WCEMIPSV2 = 0x169
|
_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
|
// PEMachineString map pe machine to name, See $GOROOT/src/debug/pe/pe.go for detail
|
||||||
var PEMachineString = map[uint16]string{
|
var _PEMachineString = map[_PEMachine]string{
|
||||||
IMAGE_FILE_MACHINE_UNKNOWN: "unknown",
|
_IMAGE_FILE_MACHINE_UNKNOWN: "unknown",
|
||||||
IMAGE_FILE_MACHINE_AM33: "am33",
|
_IMAGE_FILE_MACHINE_AM33: "am33",
|
||||||
IMAGE_FILE_MACHINE_AMD64: "amd64",
|
_IMAGE_FILE_MACHINE_AMD64: "amd64",
|
||||||
IMAGE_FILE_MACHINE_ARM: "arm",
|
_IMAGE_FILE_MACHINE_ARM: "arm",
|
||||||
IMAGE_FILE_MACHINE_ARMNT: "armnt",
|
_IMAGE_FILE_MACHINE_ARMNT: "armnt",
|
||||||
IMAGE_FILE_MACHINE_ARM64: "arm64",
|
_IMAGE_FILE_MACHINE_ARM64: "arm64",
|
||||||
IMAGE_FILE_MACHINE_EBC: "ebc",
|
_IMAGE_FILE_MACHINE_EBC: "ebc",
|
||||||
IMAGE_FILE_MACHINE_I386: "i386",
|
_IMAGE_FILE_MACHINE_I386: "i386",
|
||||||
IMAGE_FILE_MACHINE_IA64: "ia64",
|
_IMAGE_FILE_MACHINE_IA64: "ia64",
|
||||||
IMAGE_FILE_MACHINE_M32R: "m32r",
|
_IMAGE_FILE_MACHINE_M32R: "m32r",
|
||||||
IMAGE_FILE_MACHINE_MIPS16: "mips16",
|
_IMAGE_FILE_MACHINE_MIPS16: "mips16",
|
||||||
IMAGE_FILE_MACHINE_MIPSFPU: "mipsfpu",
|
_IMAGE_FILE_MACHINE_MIPSFPU: "mipsfpu",
|
||||||
IMAGE_FILE_MACHINE_MIPSFPU16: "mipsfpu16",
|
_IMAGE_FILE_MACHINE_MIPSFPU16: "mipsfpu16",
|
||||||
IMAGE_FILE_MACHINE_POWERPC: "powerpc",
|
_IMAGE_FILE_MACHINE_POWERPC: "powerpc",
|
||||||
IMAGE_FILE_MACHINE_POWERPCFP: "powerpcfp",
|
_IMAGE_FILE_MACHINE_POWERPCFP: "powerpcfp",
|
||||||
IMAGE_FILE_MACHINE_R4000: "r4000",
|
_IMAGE_FILE_MACHINE_R4000: "r4000",
|
||||||
IMAGE_FILE_MACHINE_SH3: "sh3",
|
_IMAGE_FILE_MACHINE_SH3: "sh3",
|
||||||
IMAGE_FILE_MACHINE_SH3DSP: "sh3dsp",
|
_IMAGE_FILE_MACHINE_SH3DSP: "sh3dsp",
|
||||||
IMAGE_FILE_MACHINE_SH4: "sh4",
|
_IMAGE_FILE_MACHINE_SH4: "sh4",
|
||||||
IMAGE_FILE_MACHINE_SH5: "sh5",
|
_IMAGE_FILE_MACHINE_SH5: "sh5",
|
||||||
IMAGE_FILE_MACHINE_THUMB: "thumb",
|
_IMAGE_FILE_MACHINE_THUMB: "thumb",
|
||||||
IMAGE_FILE_MACHINE_WCEMIPSV2: "wcemipsv2",
|
_IMAGE_FILE_MACHINE_WCEMIPSV2: "wcemipsv2",
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m PEMachine) String() string {
|
func (m _PEMachine) String() string {
|
||||||
str, ok := PEMachineString[uint16(m)]
|
str, ok := _PEMachineString[m]
|
||||||
if ok {
|
if ok {
|
||||||
return str
|
return str
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user