goid

package
v0.4.24 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 4, 2022 License: ISC Imports: 10 Imported by: 0

Documentation

Overview

goid.GoID() provides a unique goroutine identifier.

m := map[goid.ThreadID]SomeInterface{}
m[goid.GoID()] = …

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GoID

func GoID() (threadID parl.ThreadID)

GoID obtains a numeric string that as of Go1.18 is assigned to each goroutine. This number is an increasing unsigned integer beginning at 1 for the main invocation

func NewStack

func NewStack(skipFrames int) (stack parl.Stack)

NewStack populates a Stack object with the current thread and its stack using debug.Stack

func ParseCreatedLine added in v0.4.12

func ParseCreatedLine(createdLine string) (funcName string, IsMainThread bool)

ParseCreatedLine parses the second-to-last line of the stack trace. samples:

created by main.main
created by main.(*MyType).goroutine1
main.main()

func ParseFileLine added in v0.4.12

func ParseFileLine(fileLine string) (file string, line int)

ParseFileLine parses a line of a tab character then absolue file path, followed by a colon and line number, then a space character and a byte offset.

"\t/gp-debug-stack/debug-stack.go:29 +0x44"
"\t/opt/sw/parl/g0/waiterr.go:49"

func ParseFirstLine added in v0.4.12

func ParseFirstLine(debugStack string) (ID parl.ThreadID, status parl.ThreadStatus, err error)

getID obtains gorutine ID, as of go1.18 a numeric string "1"…

func ParseFuncLine added in v0.4.12

func ParseFuncLine(funcLine string) (funcName string, args string)

ParseFuncLine parses a line of a package name, optionally fully qualified, and a possible receiver type name and a function name, followed by a parenthesised argument list. samples:

main.main()
main.(*MyType).goroutine1(0x0?, 0x140000120d0, 0x2)
codeberg.org/haraldrudell/goprogramming/std/runtime-debug/gp-debug-stack/mypackage.Fn(...)

Types

type Frame

type Frame struct {
	pruntime.CodeLocation
	// contains filtered or unexported fields
}

func (*Frame) Args

func (f *Frame) Args() (args string)

func (*Frame) Loc added in v0.4.20

func (f *Frame) Loc() (location *pruntime.CodeLocation)

func (*Frame) String added in v0.4.21

func (f *Frame) String() (s string)

type Stack

type Stack struct {
	// contains filtered or unexported fields
}

func (*Stack) Creator

func (s *Stack) Creator() (creator *pruntime.CodeLocation)

func (*Stack) Frames

func (s *Stack) Frames() (frames []parl.Frame)

func (*Stack) ID

func (s *Stack) ID() (threadID parl.ThreadID)

func (*Stack) IsMain added in v0.4.20

func (s *Stack) IsMain() (isMainThread bool)

func (*Stack) Status

func (s *Stack) Status() (status parl.ThreadStatus)

func (*Stack) String added in v0.4.21

func (st *Stack) String() (s string)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL