wasmdebug

package
v1.0.5 Latest Latest
Warning

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

Go to latest
Published: Dec 28, 2023 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Overview

Package wasmdebug contains utilities used to give consistent search keys between stack traces and error messages. Note: This is named wasmdebug to avoid conflicts with the normal go module. Note: This only imports "api" as importing "wasm" would create a cyclic dependency.

Index

Constants

View Source
const GoRuntimeErrorTracePrefix = "Go runtime stack trace:"

GoRuntimeErrorTracePrefix is the prefix coming before the Go runtime stack trace included in the face of runtime.Error. This is exported for testing purpose.

Variables

This section is empty.

Functions

func FuncName

func FuncName(moduleName, funcName string, funcIdx uint32) string

FuncName returns the naming convention of "moduleName.funcName".

  • moduleName is the possibly empty name the module was instantiated with.
  • funcName is the name in the Custom Name section.
  • funcIdx is the position in the function index, prefixed with imported functions.

Note: "moduleName.$funcIdx" is used when the funcName is empty, as commonly the case in TinyGo.

Types

type DWARFLines

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

DWARFLines is used to retrieve source code line information from the DWARF data.

func NewDWARFLines

func NewDWARFLines(d *dwarf.Data) *DWARFLines

NewDWARFLines returns DWARFLines for the given *dwarf.Data.

func (*DWARFLines) Line

func (d *DWARFLines) Line(instructionOffset uint64) (ret []string)

Line returns the line information for the given instructionOffset which is an offset in the code section of the original Wasm binary. Returns empty string if the info is not found.

type ErrorBuilder

type ErrorBuilder interface {
	// AddFrame adds the next frame.
	//
	// * funcName should be from FuncName
	// * paramTypes should be from wasm.FunctionType
	// * resultTypes should be from wasm.FunctionType
	// * sources is the source code information for this frame and can be empty.
	//
	// Note: paramTypes and resultTypes are present because signature misunderstanding, mismatch or overflow are common.
	AddFrame(funcName string, paramTypes, resultTypes []api.ValueType, sources []string)

	// FromRecovered returns an error with the wasm stack trace appended to it.
	FromRecovered(recovered interface{}) error
}

ErrorBuilder helps build consistent errors, particularly adding a WASM stack trace.

AddFrame should be called beginning at the frame that panicked until no more frames exist. Once done, call Format.

func NewErrorBuilder

func NewErrorBuilder() ErrorBuilder

Jump to

Keyboard shortcuts

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