From 52c874a6098d52cc369a982dfd2c88f244a0e3f2 Mon Sep 17 00:00:00 2001 From: obscuren Date: Wed, 15 Apr 2015 16:39:44 +0200 Subject: [PATCH] common: Added debug reporter NOTE: For known, non-consensus, hard to reproduce bugs consider the following method `common.Report("extra", stuff, "you need logged")` will give you a stack trace and a friendly request to submit it as an issue on our issue tracker. --- common/debug.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 common/debug.go diff --git a/common/debug.go b/common/debug.go new file mode 100644 index 0000000000..69675cc6c7 --- /dev/null +++ b/common/debug.go @@ -0,0 +1,20 @@ +package common + +import ( + "fmt" + "os" + "runtime" + "runtime/debug" +) + +func Report(extra ...interface{}) { + fmt.Fprintln(os.Stderr, "You've encountered a sought after, hard to reproduce bug. Please report this to the developers <3 https://github.com/ethereum/go-ethereum/issues") + fmt.Fprintln(os.Stderr, extra...) + + _, file, line, _ := runtime.Caller(1) + fmt.Fprintf(os.Stderr, "%v:%v\n", file, line) + + debug.PrintStack() + + fmt.Fprintln(os.Stderr, "#### BUG! PLEASE REPORT ####") +}