const ( ValueTypeI32 = api.ValueTypeI32 ValueTypeI64 = api.ValueTypeI64 ValueTypeF32 = api.ValueTypeF32 ValueTypeF64 = api.ValueTypeF64 ValueTypeV128 ValueType = 0x7b // same as wasm.ValueTypeV128 ValueTypeFuncref ValueType = 0x70 // same as wasm.ValueTypeFuncref ValueTypeExternref = api.ValueTypeExternref // ValueTypeMemI32 is a non-standard type which writes ValueTypeI32 from the memory offset. ValueTypeMemI32 = 0xfd // ValueTypeMemH64 is a non-standard type which writes 64-bits fixed-width hex from the memory offset. ValueTypeMemH64 = 0xfe // ValueTypeString is a non-standard type describing an offset/len pair of a string. ValueTypeString = 0xff )
func Config(fnd api.FunctionDefinition) (paramLoggers []ParamLogger, resultLoggers []ResultLogger)
func WriteOOM(w Writer, offset uint32, byteCount uint32)
func WriteStringOrOOM(mem api.Memory, w Writer, offset, byteCount uint32)
type LogScopes uint64
const ( LogScopeNone = LogScopes(0) LogScopeClock LogScopes = 1 << iota LogScopeProc LogScopeFilesystem LogScopeMemory LogScopePoll LogScopeRandom LogScopeSock LogScopeAll = LogScopes(0xffffffffffffffff) )
func (f LogScopes) IsEnabled(scope LogScopes) bool
IsEnabled returns true if the scope (or group of scopes) is enabled.
func (f LogScopes) String() string
String implements fmt.Stringer by returning each enabled log scope.
LoggerKey is a context.Context Value key with a FunctionLogger value.
type LoggerKey struct{}
type ParamLogger func(ctx context.Context, mod api.Module, w Writer, params []uint64)
func NewParamLogger(idx uint32, name string, t ValueType) ParamLogger
type ParamSampler func(ctx context.Context, mod api.Module, params []uint64) bool
type ResultLogger func(ctx context.Context, mod api.Module, w Writer, params, results []uint64)
func NewResultLogger(idx uint32, name string, t ValueType) ResultLogger
ValWriter formats an indexed value. For example, if `vals[i]` is a ValueTypeI32, this would format it by default as signed. If a ValueTypeString, it would read `vals[i+1]` and write the string from memory.
type ValWriter func(ctx context.Context, mod api.Module, w Writer, i uint32, vals []uint64)
func ValWriterForType(vt ValueType) ValWriter
ValueType is an extended form of api.ValueType, used to control logging in cases such as bitmasks or strings.
type ValueType = api.ValueType
type Writer interface { io.Writer io.StringWriter io.ByteWriter }