Package stack
Overview ▹
▹ Example (CallFormat)
Index ▹
Variables
ErrNoFunc means that the Call has a nil *runtime.Func. The most likely cause is a Call with the zero value.
var ErrNoFunc = errors.New("no call stack information")
type Call ¶
Call records a single function invocation from a goroutine stack.
type Call struct {
// contains filtered or unexported fields
}
func Caller ¶
func Caller(skip int) Call
Caller returns a Call from the stack of the current goroutine. The argument skip is the number of stack frames to ascend, with 0 identifying the calling function.
func (Call) Format ¶
func (c Call) Format(s fmt.State, verb rune)
Format implements fmt.Formatter with support for the following verbs.
%s source file %d line number %n function name %v equivalent to %s:%d
It accepts the '+' and '#' flags for most of the verbs as follows.
%+s path of source file relative to the compile time GOPATH %#s full path of source file %+n import path qualified function name %+v equivalent to %+s:%d %#v equivalent to %#s:%d
func (Call) MarshalText ¶
func (c Call) MarshalText() ([]byte, error)
MarshalText implements encoding.TextMarshaler. It formats the Call the same as fmt.Sprintf("%v", c).
func (Call) PC ¶
func (c Call) PC() uintptr
PC returns the program counter for this call frame; multiple frames may have the same PC value.
func (Call) String ¶
func (c Call) String() string
String implements fmt.Stinger. It is equivalent to fmt.Sprintf("%v", c).
type CallStack ¶
CallStack records a sequence of function invocations from a goroutine stack.
type CallStack []Call
func Trace ¶
func Trace() CallStack
Trace returns a CallStack for the current goroutine with element 0 identifying the calling function.
func (CallStack) Format ¶
func (cs CallStack) Format(s fmt.State, verb rune)
Format implements fmt.Formatter by printing the CallStack as square brackets ([, ]) surrounding a space separated list of Calls each formatted with the supplied verb and options.
func (CallStack) MarshalText ¶
func (cs CallStack) MarshalText() ([]byte, error)
MarshalText implements encoding.TextMarshaler. It formats the CallStack the same as fmt.Sprintf("%v", cs).
func (CallStack) String ¶
func (cs CallStack) String() string
String implements fmt.Stinger. It is equivalent to fmt.Sprintf("%v", cs).
func (CallStack) TrimAbove ¶
func (cs CallStack) TrimAbove(c Call) CallStack
TrimAbove returns a slice of the CallStack with all entries above c removed.
func (CallStack) TrimBelow ¶
func (cs CallStack) TrimBelow(c Call) CallStack
TrimBelow returns a slice of the CallStack with all entries below c removed.
func (CallStack) TrimRuntime ¶
func (cs CallStack) TrimRuntime() CallStack
TrimRuntime returns a slice of the CallStack with the topmost entries from the go runtime removed. It considers any calls originating from unknown files, files under GOROOT, or _testmain.go as part of the runtime.