delve/pkg/proc
Sergio Lopez 38307f92d4 proc: add support for dwz compressed DWARF
'dwz' is a tool that reduces the size of DWARF sections by
deduplicating symbols. The deduplicated symbols are moved from their
original 'compile unit' to a 'partial unit', which is then referenced
from its original location with an 'imported unit' tag.

In the case of Go binaries, all symbols are located in a single
'compile unit', and the name of each symbol contains a reference to its
package, so 'dwz' is not able to deduplicate them. But still, some C
symbols included in the binary are deduplicated, which also alters the
structure of the DWARF sections, making delve unable to parse them
(crashing in the attempt).

While it would've been possible to simply ignore the C symbols, or
blindly loading all then into BinaryInfo members (packageVars,
Functions...), for correctness sake this change tries to do the right
thing, staging symbols into temporary partialUnit objects, moving them
to BinaryInfo when they are actually requested  by a 'imported unit'
tag.
2018-05-23 13:59:45 -07:00
..
core proc/core: Make TestCoreFpTest less flaky 2018-03-20 09:34:05 -07:00
gdbserial proc/gdbserial: disable foreground if /dev/tty can't be opened 2018-05-21 14:32:20 -07:00
native proc/native,proc/gdbserial: let target access terminal 2018-05-18 09:53:29 -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: add support for dwz compressed DWARF 2018-05-23 13:59:45 -07: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: Flag shadowed arguments as shadowed 2018-04-23 10:13:21 -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/native,proc/gdbserial: let target access terminal 2018-05-18 09:53:29 -07:00
proc_unix_test.go proc: remove proc.Process.Kill 2018-03-06 09:06:19 -08:00
proc.go proc: Flag shadowed arguments as shadowed 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: add support for dwz compressed DWARF 2018-05-23 13:59:45 -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: do not assume g.gopc is valid 2018-05-09 12:33:41 -07:00