debuginfo

package
v0.10.0-rc.1 Latest Latest
Warning

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

Go to latest
Published: Nov 18, 2022 License: Apache-2.0 Imports: 25 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

type Client interface {
	Exists(ctx context.Context, buildID, hash string) (bool, error)
	Upload(ctx context.Context, buildID, hash string, f io.Reader) (uint64, error)
}

func NewNoopClient

func NewNoopClient() Client

type Extractor

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

Extractor extracts debug information from a binary.

func NewExtractor

func NewExtractor(logger log.Logger) *Extractor

NewExtractor creates a new Extractor.

func (*Extractor) Extract

func (e *Extractor) Extract(ctx context.Context, dst io.WriteSeeker, src string) error

Extract extracts debug information from the given executable. Cleaning up the temporary directory and the interim file is the caller's responsibility.

func (*Extractor) ExtractAll added in v0.6.0

func (e *Extractor) ExtractAll(ctx context.Context, srcDsts map[string]io.WriteSeeker) error

ExtractAll extracts debug information from the given executables. It consumes a map of file sources to extract and a destination io.Writer.

type Finder added in v0.6.0

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

Finder finds the separate debug information files on the system.

func NewFinder added in v0.6.0

func NewFinder(logger log.Logger, debugDirs []string) *Finder

NewFinder creates a new Finder.

func (*Finder) Find added in v0.6.0

func (f *Finder) Find(ctx context.Context, objFile *objectfile.MappedObjectFile) (string, error)

Find finds the separate debug file for the given object file.

type Manager added in v0.10.0

type Manager struct {
	*Extractor
	*Uploader
	*Finder
	// contains filtered or unexported fields
}

Manager is a mechanism for extracting or finding the relevant debug information for the discovered executables.

func New added in v0.6.0

func New(
	logger log.Logger,
	reg prometheus.Registerer,
	client Client,
	uploadTimeout time.Duration,
	cacheTTL time.Duration,
	debugDirs []string,
	stripDebuginfos bool,
	tempDir string,
) *Manager

New creates a new Manager.

func (*Manager) EnsureUploaded added in v0.10.0

func (di *Manager) EnsureUploaded(ctx context.Context, objFiles []*objectfile.MappedObjectFile)

EnsureUploaded ensures that the extracted or the found debuginfo for the given buildID is uploaded.

type NoopClient

type NoopClient struct{}

func (*NoopClient) Exists

func (c *NoopClient) Exists(ctx context.Context, buildID, hash string) (bool, error)

func (*NoopClient) Upload

func (c *NoopClient) Upload(ctx context.Context, buildID, hash string, f io.Reader) (uint64, error)

type SourceInfo added in v0.9.0

type SourceInfo struct {
	BuildID string
	Path    string
}

SourceInfo source information of the given debug information.

type Uploader added in v0.6.0

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

Uploader uploads debug information to the Parca server.

func NewUploader added in v0.6.0

func NewUploader(logger log.Logger, client Client) *Uploader

NewUploader creates a new Uploader.

func (*Uploader) Upload added in v0.6.0

func (u *Uploader) Upload(ctx context.Context, src SourceInfo, r io.Reader) error

Upload uploads the debug information to the Parca server.

func (*Uploader) UploadAll added in v0.6.0

func (u *Uploader) UploadAll(ctx context.Context, srcDbgInfo map[SourceInfo]io.Reader) error

UploadAll uploads all debug information to the Parca server.

Jump to

Keyboard shortcuts

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