diff options
author | Tulir Asokan <tulir@maunium.net> | 2018-04-10 16:00:55 +0300 |
---|---|---|
committer | Tulir Asokan <tulir@maunium.net> | 2018-04-10 16:01:01 +0300 |
commit | b6e58e83a8ed74f3e0a5f7f0955d264febd542ce (patch) | |
tree | 37c2994aa3ed8c143e98c9c0176ed9be403553d0 /debug | |
parent | eda2b575f06e72040ebf82d24a7ec1ac84b7948c (diff) |
Include error in pretty panic log
Diffstat (limited to 'debug')
-rw-r--r-- | debug/debug.go | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/debug/debug.go b/debug/debug.go index 9af3d9d..c6f367e 100644 --- a/debug/debug.go +++ b/debug/debug.go @@ -17,6 +17,7 @@ package debug import ( + "bytes" "fmt" "io" "io/ioutil" @@ -67,14 +68,18 @@ const Oops = ` __________ U ||----W | || ||` -func PrettyPanic() { +func PrettyPanic(panic interface{}) { fmt.Println(Oops) fmt.Println("") fmt.Println("A fatal error has occurred.") fmt.Println("") traceFile := fmt.Sprintf("/tmp/gomuks-panic-%s.txt", time.Now().Format("2006-01-02--15-04-05")) - data := debug.Stack() - err := ioutil.WriteFile(traceFile, data, 0644) + + var buf bytes.Buffer + fmt.Fprintln(&buf, panic) + buf.Write(debug.Stack()) + err := ioutil.WriteFile(traceFile, buf.Bytes(), 0644) + if err != nil { fmt.Println("Saving the stack trace to", traceFile, "failed:") fmt.Println("--------------------------------------------------------------------------------") @@ -85,6 +90,7 @@ func PrettyPanic() { fmt.Println("Please provide the file save error (above) and the stack trace of the original error (below) when filing an issue.") fmt.Println("") fmt.Println("--------------------------------------------------------------------------------") + fmt.Println(panic) debug.PrintStack() fmt.Println("--------------------------------------------------------------------------------") } else { |