delve/pkg/proc
aarzilli 21be59469a proc: cache entire frame in FrameToScope instead of variablesByTag
Caching the frame in variablesByTag is problematic:

1. accounting for variables that are (partially) stored in registers is
complicated (see issue #1106)
2. for some types (strings, interfaces...) simply creating the Variable
object reads memory, which therefore happens before we can do any
caching.

Instead cache the entire frame when the EvalScope object is created.
The cached range is between the SP value of the current frame and the
CFA of the preceeding frame, if available, or the CFA of the current
frame otherwise.

Fixes #1106
2018-04-23 10:13:21 -07:00
..
core proc/core: Make TestCoreFpTest less flaky 2018-03-20 09:34:05 -07:00
gdbserial proc/gdbserial,dlv/cmds: make logGdbWire command line configurable 2018-04-13 15:31:02 -07:00
native proc/native/windows: when there is an error during Attach dbp might be nil 2018-04-10 14:45:46 -07:00
test tests: cache and delete fixtures built with non-zero flags 2018-04-19 13:28:11 -07:00
arch.go proc: support cgo stacktraces 2017-11-28 11:00:53 -08:00
bininfo.go proc: support inlining 2018-03-26 14:30:38 -04:00
breakpoints.go proc: next should not skip lines with conditional bps 2017-11-20 11:25:35 -08:00
disasm_amd64.go proc,vendor: show global variables in disassembly 2018-03-22 10:01:00 -07:00
disasm.go proc,vendor: show global variables in disassembly 2018-03-22 10:01:00 -07:00
doc.go Move top-level packages into pkg 2017-02-08 12:17:19 -08:00
dwarf_expr_test.go proc: support inlining 2018-03-26 14:30:38 -04:00
eval.go proc: Short circuit evaluation of && and || like go does 2018-04-13 15:34:03 -07:00
interface.go proc: remove proc.Process.Halt 2018-03-06 09:06:19 -08:00
mem.go proc: change memCache to delay reading 2018-04-23 10:13:21 -07:00
moduledata.go pkg/proc: fix errors found by vet 2018-04-19 13:29:13 -07:00
proc_general_test.go proc: change memCache to delay reading 2018-04-23 10:13:21 -07:00
proc_test.go proc: cache entire frame in FrameToScope instead of variablesByTag 2018-04-23 10:13:21 -07:00
proc_unix_test.go proc: remove proc.Process.Kill 2018-03-06 09:06:19 -08:00
proc.go proc: cache entire frame in FrameToScope instead of variablesByTag 2018-04-23 10:13:21 -07:00
registers_amd64.go pkg/proc, pkg/dwarf/op: support DW_OP_piece, DW_OP_regX, DW_OP_fbreg 2017-11-21 11:51:02 -08:00
registers.go proc: refactor stack.go to use DWARF registers 2017-11-17 10:17:24 -08:00
scope_test.go proc: support inlining 2018-03-26 14:30:38 -04:00
stack.go proc: support inlining 2018-03-26 14:30:38 -04:00
threads.go proc: cache entire frame in FrameToScope instead of variablesByTag 2018-04-23 10:13:21 -07:00
types.go proc,vendor: show global variables in disassembly 2018-03-22 10:01:00 -07:00
variable_test.go Extend the "frame" command to set the current frame. (#1110) 2018-03-22 10:02:15 -07:00
variables.go proc: cache entire frame in FrameToScope instead of variablesByTag 2018-04-23 10:13:21 -07:00