zapgo.uber.org/zap/internal/stacktrace Index | Files

package stacktrace

import "go.uber.org/zap/internal/stacktrace"

Package stacktrace provides support for gathering stack traces efficiently.

Index

Functions

func Take

func Take(skip int) string

Take returns a string representation of the current stacktrace.

skip is the number of frames to skip before recording the stack trace. skip=0 identifies the caller of Take.

Types

type Depth

type Depth int

Depth specifies how deep of a stack trace should be captured.

const (
	// First captures only the first frame.
	First Depth = iota

	// Full captures the entire call stack, allocating more
	// storage for it if needed.
	Full
)

type Formatter

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

Formatter formats a stack trace into a readable string representation.

func NewFormatter

func NewFormatter(b *buffer.Buffer) Formatter

NewFormatter builds a new Formatter.

func (*Formatter) FormatFrame

func (sf *Formatter) FormatFrame(frame runtime.Frame)

FormatFrame formats the given frame.

func (*Formatter) FormatStack

func (sf *Formatter) FormatStack(stack *Stack)

FormatStack formats all remaining frames in the provided stacktrace -- minus the final runtime.main/runtime.goexit frame.

type Stack

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

Stack is a captured stack trace.

func Capture

func Capture(skip int, depth Depth) *Stack

Capture captures a stack trace of the specified depth, skipping the provided number of frames. skip=0 identifies the caller of Capture.

The caller must call Free on the returned stacktrace after using it.

func (*Stack) Count

func (st *Stack) Count() int

Count reports the total number of frames in this stacktrace. Count DOES NOT change as Next is called.

func (*Stack) Free

func (st *Stack) Free()

Free releases resources associated with this stacktrace and returns it back to the pool.

func (*Stack) Next

func (st *Stack) Next() (_ runtime.Frame, more bool)

Next returns the next frame in the stack trace, and a boolean indicating whether there are more after it.

Source Files

stack.go

Version
v1.27.0 (latest)
Published
Feb 20, 2024
Platform
linux/amd64
Imports
4 packages
Last checked
5 hours ago

Tools for package owners.