delve/pkg/proc
Alessandro Arzilli 354055836a proc: next, stepout should work on recursive goroutines (#831)
Before this commit our temp breakpoints only checked that we would stay
on the same goroutine.
However this isn't enough for recursive functions we must check that we
stay on the same goroutine AND on the same stack frame (or, in the case
of the StepOut breakpoint, the previous stack frame).

This commit:
1. adds a new synthetic variable runtime.frameoff that returns the
   offset of the current frame from the base of the call stack.
   This is similar to runtime.curg
2. Changes the condition used for breakpoints on the lines of the
   current function to check that runtime.frameoff hasn't changed.
3. Changes the condition used for breakpoints on the return address to
   check that runtime.frameoff corresponds to the previous frame in the
   stack.
4. All other temporary breakpoints (the step-into breakpoints and defer
   breakpoints) remain unchanged.

Fixes #828
2017-05-16 11:23:33 -07:00
..
core proc: next, stepout should work on recursive goroutines (#831) 2017-05-16 11:23:33 -07:00
gdbserial proc/gdbserial: fix passing arguments to target via debugserver (#843) 2017-05-15 10:11:46 -07:00
native proc: print runtime.curg._panic.arg on unrecovered-panic breakpoint (#833) 2017-05-09 10:32:16 -07:00
test proc/gdbserial: mozilla rr support (#804) 2017-05-05 15:17:52 -07:00
arch.go pkg/proc: Fixed delve's version extraction to allow propsals (#798) 2017-04-21 17:45:20 -07:00
bininfo.go proc: refactoring: split backends to separate packages 2017-04-21 14:00:04 -07:00
breakpoints.go proc: next, stepout should work on recursive goroutines (#831) 2017-05-16 11:23:33 -07:00
disasm_amd64.go Minor post-refactoring cleanup (#808) 2017-04-28 10:15:39 -07:00
disasm.go proc: refactoring: merge target into proc 2017-04-21 14:00:04 -07:00
doc.go Move top-level packages into pkg 2017-02-08 12:17:19 -08:00
eval.go proc: next, stepout should work on recursive goroutines (#831) 2017-05-16 11:23:33 -07:00
go_version.go pkg/proc: Fixed delve's version extraction to allow propsals (#798) 2017-04-21 17:45:20 -07:00
interface.go proc/gdbserial: mozilla rr support (#804) 2017-05-05 15:17:52 -07:00
mem.go proc: refactoring: split backends to separate packages 2017-04-21 14:00:04 -07:00
moduledata.go proc: next, stepout should work on recursive goroutines (#831) 2017-05-16 11:23:33 -07:00
proc_general_test.go proc: refactoring: split backends to separate packages 2017-04-21 14:00:04 -07:00
proc_test.go proc: next, stepout should work on recursive goroutines (#831) 2017-05-16 11:23:33 -07:00
proc_unix_test.go proc/gdbserial: mozilla rr support (#804) 2017-05-05 15:17:52 -07:00
proc.go proc: next, stepout should work on recursive goroutines (#831) 2017-05-16 11:23:33 -07:00
registers.go proc: refactoring: merge target into proc 2017-04-21 14:00:04 -07:00
stack.go proc: next, stepout should work on recursive goroutines (#831) 2017-05-16 11:23:33 -07:00
threads.go proc: next, stepout should work on recursive goroutines (#831) 2017-05-16 11:23:33 -07:00
types.go proc: refactoring: split backends to separate packages 2017-04-21 14:00:04 -07:00
variables.go proc: next, stepout should work on recursive goroutines (#831) 2017-05-16 11:23:33 -07:00