go/src/runtime/debuglog.go

const debugLogBytes

const debugLogStringLimit

// dlog returns a debug logger. The caller can use methods on the
// returned logger to add values, which will be space-separated in the
// final output, much like println. The caller must call end() to
// finish the message.
//
// dlog can be used from highly-constrained corners of the runtime: it
// is safe to use in the signal handler, from within the write
// barrier, from within the stack implementation, and in places that
// must be recursively nosplit.
//
// This will be compiled away if built without the debuglog build tag.
// However, argument construction may not be. If any of the arguments
// are not literals or trivial expressions, consider protecting the
// call with "if dlogEnabled".
//
//go:nosplit
//go:nowritebarrierrec
func dlog() dlogger {}

//go:nosplit
//go:nowritebarrierrec
func dlogFake() dloggerFake {}

//go:nosplit
//go:nowritebarrierrec
func dlogImpl() *dloggerImpl {}

type dloggerImpl

var allDloggers

type dloggerFake

//go:nosplit
func (l dloggerFake) end() {}

//go:nosplit
func (l *dloggerImpl) end() {}

const debugLogUnknown

const debugLogBoolTrue

const debugLogBoolFalse

const debugLogInt

const debugLogUint

const debugLogHex

const debugLogPtr

const debugLogString

const debugLogConstString

const debugLogStringOverflow

const debugLogPC

const debugLogTraceback

//go:nosplit
func (l dloggerFake) b(x bool) dloggerFake {}

//go:nosplit
func (l *dloggerImpl) b(x bool) *dloggerImpl {}

//go:nosplit
func (l dloggerFake) i(x int) dloggerFake {}

//go:nosplit
func (l *dloggerImpl) i(x int) *dloggerImpl {}

//go:nosplit
func (l dloggerFake) i8(x int8) dloggerFake {}

//go:nosplit
func (l *dloggerImpl) i8(x int8) *dloggerImpl {}

//go:nosplit
func (l dloggerFake) i16(x int16) dloggerFake {}

//go:nosplit
func (l *dloggerImpl) i16(x int16) *dloggerImpl {}

//go:nosplit
func (l dloggerFake) i32(x int32) dloggerFake {}

//go:nosplit
func (l *dloggerImpl) i32(x int32) *dloggerImpl {}

//go:nosplit
func (l dloggerFake) i64(x int64) dloggerFake {}

//go:nosplit
func (l *dloggerImpl) i64(x int64) *dloggerImpl {}

//go:nosplit
func (l dloggerFake) u(x uint) dloggerFake {}

//go:nosplit
func (l *dloggerImpl) u(x uint) *dloggerImpl {}

//go:nosplit
func (l dloggerFake) uptr(x uintptr) dloggerFake {}

//go:nosplit
func (l *dloggerImpl) uptr(x uintptr) *dloggerImpl {}

//go:nosplit
func (l dloggerFake) u8(x uint8) dloggerFake {}

//go:nosplit
func (l *dloggerImpl) u8(x uint8) *dloggerImpl {}

//go:nosplit
func (l dloggerFake) u16(x uint16) dloggerFake {}

//go:nosplit
func (l *dloggerImpl) u16(x uint16) *dloggerImpl {}

//go:nosplit
func (l dloggerFake) u32(x uint32) dloggerFake {}

//go:nosplit
func (l *dloggerImpl) u32(x uint32) *dloggerImpl {}

//go:nosplit
func (l dloggerFake) u64(x uint64) dloggerFake {}

//go:nosplit
func (l *dloggerImpl) u64(x uint64) *dloggerImpl {}

//go:nosplit
func (l dloggerFake) hex(x uint64) dloggerFake {}

//go:nosplit
func (l *dloggerImpl) hex(x uint64) *dloggerImpl {}

//go:nosplit
func (l dloggerFake) p(x any) dloggerFake {}

//go:nosplit
func (l *dloggerImpl) p(x any) *dloggerImpl {}

//go:nosplit
func (l dloggerFake) s(x string) dloggerFake {}

//go:nosplit
func (l *dloggerImpl) s(x string) *dloggerImpl {}

//go:nosplit
func (l dloggerFake) pc(x uintptr) dloggerFake {}

//go:nosplit
func (l *dloggerImpl) pc(x uintptr) *dloggerImpl {}

//go:nosplit
func (l dloggerFake) traceback(x []uintptr) dloggerFake {}

//go:nosplit
func (l *dloggerImpl) traceback(x []uintptr) *dloggerImpl {}

type debugLogWriter

type debugLogBuf

const debugLogHeaderSize

const debugLogSyncSize

//go:nosplit
func (l *debugLogWriter) ensure(n uint64) {}

//go:nosplit
func (l *debugLogWriter) writeFrameAt(pos, size uint64) bool {}

//go:nosplit
func (l *debugLogWriter) writeSync(tick, nano uint64) {}

//go:nosplit
func (l *debugLogWriter) writeUint64LE(x uint64) {}

//go:nosplit
func (l *debugLogWriter) byte(x byte) {}

//go:nosplit
func (l *debugLogWriter) bytes(x []byte) {}

//go:nosplit
func (l *debugLogWriter) varint(x int64) {}

//go:nosplit
func (l *debugLogWriter) uvarint(u uint64) {}

type debugLogReader

//go:nosplit
func (r *debugLogReader) skip() uint64 {}

//go:nosplit
func (r *debugLogReader) readUint16LEAt(pos uint64) uint16 {}

//go:nosplit
func (r *debugLogReader) readUint64LEAt(pos uint64) uint64 {}

func (r *debugLogReader) peek() (tick uint64) {}

func (r *debugLogReader) header() (end, tick, nano uint64, p int) {}

func (r *debugLogReader) uvarint() uint64 {}

func (r *debugLogReader) varint() int64 {}

func (r *debugLogReader) printVal() bool {}

// printDebugLog prints the debug log.
func printDebugLog() {}

func printDebugLogImpl() {}

// printDebugLogPC prints a single symbolized PC. If returnPC is true,
// pc is a return PC that must first be converted to a call PC.
func printDebugLogPC(pc uintptr, returnPC bool) {}