浏览代码

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.
obscuren 10 年之前
父节点
当前提交
52c874a609
共有 1 个文件被更改,包括 20 次插入0 次删除
  1. 20 0
      common/debug.go

+ 20 - 0
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 ####")
+}