delve/pkg/proc
Alessandro Arzilli 5b4f4a81b1
proc: do not load g0 until it's needed when stacktracing (#1863)
The stacktrace code occasionally needs the value of g.m.g0.sched.sp to
switch stacks. Since this is only needed rarely and calling parseG is
relatively expensive we should delay doing it until we know it will be
needed.

Benchmark before:

BenchmarkConditionalBreakpoints-4              1        17326345671 ns/op

Benchmark after:

BenchmarkConditionalBreakpoints-4   	       1	15649407130 ns/op

Reduces conditional breakpoint latency from 1.7ms to 1.56ms.

Updates #1549
2020-02-13 09:12:59 -08:00
..
core proc: only format registers value when it's necessary (#1860) 2020-02-12 13:31:48 -08:00
fbsdutil proc: only format registers value when it's necessary (#1860) 2020-02-12 13:31:48 -08:00
gdbserial proc: only format registers value when it's necessary (#1860) 2020-02-12 13:31:48 -08:00
linutil proc: only format registers value when it's necessary (#1860) 2020-02-12 13:31:48 -08:00
native proc: only format registers value when it's necessary (#1860) 2020-02-12 13:31:48 -08:00
test tests: disable function call injection tests on macOS on Travis-CI 2020-01-02 09:20:12 -08:00
winutil proc: only format registers value when it's necessary (#1860) 2020-02-12 13:31:48 -08:00
amd64_arch.go proc: do not load g0 until it's needed when stacktracing (#1863) 2020-02-13 09:12:59 -08:00
amd64_disasm.go proc: build disassemblers unconditionally 2020-01-02 09:29:01 -08:00
arch.go proc: only format registers value when it's necessary (#1860) 2020-02-12 13:31:48 -08:00
arm64_arch.go proc: do not load g0 until it's needed when stacktracing (#1863) 2020-02-13 09:12:59 -08:00
arm64_disasm.go proc: build disassemblers unconditionally 2020-01-02 09:29:01 -08:00
bininfo.go *: Go 1.14 support branch (#1727) 2020-02-10 17:31:54 -08:00
breakpoints.go proc,debugger: implement logical breakpoints (#1717) 2019-11-01 12:41:06 -07:00
disasm.go proc: build disassemblers unconditionally 2020-01-02 09:29:01 -08:00
doc.go Move top-level packages into pkg 2017-02-08 12:17:19 -08:00
dwarf_expr_test.go pkg/proc: remove meanless code in dwarf_expr_test.go. (#1850) 2020-01-29 16:12:44 +01:00
eval.go proc: support DW_AT_go_package_name (#1757) 2019-11-25 09:10:18 -08:00
fncall.go pkg/proc: Introduce Target and remove CommonProcess (#1834) 2020-01-21 12:41:24 -08:00
goroutine_cache.go pkg/proc: optimize code for supporting different arch in the future. (#1849) 2020-02-10 17:32:50 -08:00
interface.go pkg/proc: Introduce Target and remove CommonProcess (#1834) 2020-01-21 12:41:24 -08:00
mem.go More Function Calls, parts 2 (#1504) 2019-05-30 08:08:37 -07:00
moduledata.go proc: support DW_AT_go_package_name (#1757) 2019-11-25 09:10:18 -08:00
proc_general_test.go proc: change memCache to delay reading 2018-04-23 10:13:21 -07:00
proc_linux_test.go *: Update import name to github.com/go-delve/delve 2019-01-04 19:43:13 +01:00
proc_test.go *: Go 1.14 support branch (#1727) 2020-02-10 17:31:54 -08:00
proc_unexported_test.go proc: allow calls to optimized functions (#1684) 2019-09-25 10:23:02 -07:00
proc_unix_test.go pkg/proc: Introduce Target and remove CommonProcess (#1834) 2020-01-21 12:41:24 -08:00
proc.go *: Go 1.14 support branch (#1727) 2020-02-10 17:31:54 -08:00
registers.go proc: only format registers value when it's necessary (#1860) 2020-02-12 13:31:48 -08:00
scope_test.go pkg/proc: Introduce Target and remove CommonProcess (#1834) 2020-01-21 12:41:24 -08:00
stack.go proc: do not load g0 until it's needed when stacktracing (#1863) 2020-02-13 09:12:59 -08:00
target.go *: Go 1.14 support branch (#1727) 2020-02-10 17:31:54 -08:00
threads.go pkg/proc: Introduce Target and remove CommonProcess (#1834) 2020-01-21 12:41:24 -08:00
types.go pkg/proc,pkg/dwarf: Introduce loclist package 2019-11-13 18:30:21 +01:00
variable_test.go pkg/proc: Introduce Target and remove CommonProcess (#1834) 2020-01-21 12:41:24 -08:00
variables.go pkg/proc: optimize code for supporting different arch in the future. (#1849) 2020-02-10 17:32:50 -08:00