• Keith Randall's avatar
    cmd/compile,runtime: redo mid-stack inlining tracebacks · 69c2c564
    Keith Randall authored
    Work involved in getting a stack trace is divided between
    runtime.Callers and runtime.CallersFrames.
    
    Before this CL, runtime.Callers returns a pc per runtime frame.
    runtime.CallersFrames is responsible for expanding a runtime frame
    into potentially multiple user frames.
    
    After this CL, runtime.Callers returns a pc per user frame.
    runtime.CallersFrames just maps those to user frame info.
    
    Entries in the result of runtime.Callers are now pcs
    of the calls (or of the inline marks), not of the instruction
    just after the call.
    
    Fixes #29007
    Fixes #28640
    Update #26320
    
    Change-Id: I1c9567596ff73dc73271311005097a9188c3406f
    Reviewed-on: https://go-review.googlesource.com/c/152537
    Run-TryBot: Keith Randall <khr@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: 's avatarDavid Chase <drchase@google.com>
    69c2c564
genericOps.go 32.7 KB