Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Make
DebugInfo
edges per-call rather than per-callee
This is useful for when you need to, e.g., trim the "common prefix" of two stacktraces that were both taken from inside an inlined function call. I'm hoping to use this property to provide a way to get only the "popped" frames inside a `catch` handler, but that requires us to understand when an inlined frame was popped, as in: ```julia @inline function foo() try error("foo") catch err Base.showerror(stderr, err, Base.catch_backtrace()) end end bar() = foo() ``` The popped frames would be: ```julia Stacktrace: [1] error(s::String) @ Base ./error.jl:44 [2] foo @ ./REPL[1]:3 [inlined] ``` To know to trim off `bar()` (since it hasn't been popped yet), I want to record the ip at catch entry and then have our stacktrace expansion logic remove any frames common with the catch entry. In order to trim that common prefix correctly, we need to distinguish this case from: ``` try foo() catch foo() end ``` which has the same line number and callee, but is a different call.
- Loading branch information