| // Copyright 2019 The Go Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| // Export debuglog guts for testing. |
| |
| package runtime |
| |
| const DlogEnabled = dlogEnabled |
| |
| const DebugLogBytes = debugLogBytes |
| |
| const DebugLogStringLimit = debugLogStringLimit |
| |
| var Dlog = dlog |
| |
| func (l *dlogger) End() { l.end() } |
| func (l *dlogger) B(x bool) *dlogger { return l.b(x) } |
| func (l *dlogger) I(x int) *dlogger { return l.i(x) } |
| func (l *dlogger) I16(x int16) *dlogger { return l.i16(x) } |
| func (l *dlogger) U64(x uint64) *dlogger { return l.u64(x) } |
| func (l *dlogger) Hex(x uint64) *dlogger { return l.hex(x) } |
| func (l *dlogger) P(x interface{}) *dlogger { return l.p(x) } |
| func (l *dlogger) S(x string) *dlogger { return l.s(x) } |
| func (l *dlogger) PC(x uintptr) *dlogger { return l.pc(x) } |
| |
| func DumpDebugLog() string { |
| g := getg() |
| g.writebuf = make([]byte, 0, 1<<20) |
| printDebugLog() |
| buf := g.writebuf |
| g.writebuf = nil |
| |
| return string(buf) |
| } |
| |
| func ResetDebugLog() { |
| stopTheWorld("ResetDebugLog") |
| for l := allDloggers; l != nil; l = l.allLink { |
| l.w.write = 0 |
| l.w.tick, l.w.nano = 0, 0 |
| l.w.r.begin, l.w.r.end = 0, 0 |
| l.w.r.tick, l.w.r.nano = 0, 0 |
| } |
| startTheWorld() |
| } |