30 lines · 756 B · Go
RawDownload
// Copyright 2011 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. // Package debug contains facilities for programs to debug themselves while// they are running.package debug import (	"os"	"runtime") // PrintStack prints to standard error the stack trace returned by runtime.Stack.func PrintStack() {	os.Stderr.Write(Stack())} // Stack returns a formatted stack trace of the goroutine that calls it.// It calls runtime.Stack with a large enough buffer to capture the entire trace.func Stack() []byte {	buf := make([]byte, 1024)	for {		n := runtime.Stack(buf, false)		if n < len(buf) {			return buf[:n]		}		buf = make([]byte, 2*len(buf))	}}