Created
October 14, 2016 21:08
-
-
Save stroucki/0b60ebce40139d1edb93bf20006721bf to your computer and use it in GitHub Desktop.
go stack dump
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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 { | |
// second arg true for all goroutines | |
n := runtime.Stack(buf, false) | |
if n < len(buf) { | |
return buf[:n] | |
} | |
buf = make([]byte, 2*len(buf)) | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment