aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/traceback.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/runtime/traceback.go')
-rw-r--r--src/runtime/traceback.go20
1 files changed, 6 insertions, 14 deletions
diff --git a/src/runtime/traceback.go b/src/runtime/traceback.go
index 02dff5ccdf..665961f9b1 100644
--- a/src/runtime/traceback.go
+++ b/src/runtime/traceback.go
@@ -542,16 +542,16 @@ func (u *unwinder) finishInternal() {
}
// Generic traceback. Handles runtime stack prints (pcbuf == nil),
-// the runtime.Callers function (pcbuf != nil), as well as the garbage
-// collector (callback != nil). A little clunky to merge these, but avoids
+// and the runtime.Callers function (pcbuf != nil).
+// A little clunky to merge these, but avoids
// duplicating the code and all its subtlety.
//
// The skip argument is only valid with pcbuf != nil and counts the number
// of logical frames to skip rather than physical frames (with inlining, a
// PC in pcbuf can represent multiple calls).
func gentraceback(pc0, sp0, lr0 uintptr, gp *g, skip int, pcbuf *uintptr, max int, callback func(*stkframe, unsafe.Pointer) bool, v unsafe.Pointer, flags uint) int {
- if skip > 0 && callback != nil {
- throw("gentraceback callback cannot be used with non-zero skip")
+ if callback != nil {
+ throw("callback argument no longer supported")
}
// Translate flags
@@ -559,7 +559,7 @@ func gentraceback(pc0, sp0, lr0 uintptr, gp *g, skip int, pcbuf *uintptr, max in
printing := pcbuf == nil && callback == nil
if printing {
uflags |= unwindPrintErrors
- } else if callback == nil {
+ } else {
uflags |= unwindSilentErrors
}
if flags&_TraceTrap != 0 {
@@ -581,12 +581,6 @@ func gentraceback(pc0, sp0, lr0 uintptr, gp *g, skip int, pcbuf *uintptr, max in
frame := &u.frame
f := frame.fn
- if callback != nil {
- if !callback((*stkframe)(noescape(unsafe.Pointer(frame))), v) {
- return n
- }
- }
-
// Backup to the CALL instruction to read inlining info
//
// Normally, pc is a return address. In that case, we want to look up
@@ -670,9 +664,7 @@ func gentraceback(pc0, sp0, lr0 uintptr, gp *g, skip int, pcbuf *uintptr, max in
u.cgoCtxt--
// skip only applies to Go frames.
- // callback != nil only used when we only care
- // about Go frames.
- if skip == 0 && callback == nil {
+ if skip == 0 {
n = tracebackCgoContext(pcbuf, printing, ctxt, n, max)
}
}