delve/proc
Alessandro Arzilli 8724b3fce7 Go 1.8 compatibility (part 2) (#667)
* dwarf/line: bugfix: not all values of the state machine can be used

According to DWARF Version 3 Section 6.2 "Line Number Information" not
all the values transversed by the line numbers state machine are valid
instructions, only the ones after a "special opcode", after the
standard opcode DW_LNS_copy and the extended opcode
DW_LINE_end_sequence.

DWARF3 describes this by specifying that only the opcodes listed above
"append a row to the matrix".

Additionally the implementation of DW_LNS_const_add_pc was wrong.

Fixes #664

* dwarf/line: fixed test failing with go1.8

* service/test: fix prologue detection tests

The conditions about which function prologue is emitted by the compiler
changed in go1.8, changed the test program so that callme2 will still
have a prologue under go1.8.

* service/test: fix step test

compilation units are linked in a different order under go1.8 so the
code of 'fmt' is no longer located after 'main' in the executable,
changed the tests so that they don't rely on this assumption anymore.

* proc: change runtime.Breakpoint support for go1.8

Before 1.8 it was sufficient to step twice to exit a
runtime.Breakpoint(), but go 1.8 added frame pointer tracking to small
functions making runtime.Breakpoint longer.
This changes runtime.Breakpoint handling in Continue to single step as
many times as are needed to exit runtime.Breakpoint.

* proc/test: fix TestIssue561 for go1.8
2017-02-07 13:07:18 -08:00
..
test proc: load more registers 2016-12-19 21:29:45 +01:00
arch.go Fix typo in proc/arch.go. 2016-07-08 13:57:40 +08:00
breakpoints.go proc: Renamed temp breakpoints to internal breakpoints 2016-09-30 08:35:29 +02:00
disasm_amd64.go proc: Improved prologue detection for big stackframes (#690) 2017-01-05 11:39:34 -08:00
disasm.go proc: load more registers 2016-12-19 21:29:45 +01:00
doc.go proc, terminal: fix package docstrings 2015-10-27 19:38:57 -07:00
eval.go proc/variables: support NaN/Inf float values (#706) 2017-01-20 14:22:36 -08:00
exc_user_darwin.c Rename package proctl -> proc 2015-06-12 14:49:23 -05:00
exc.h Rename package proctl -> proc 2015-06-12 14:49:23 -05:00
exec_darwin.c proc: support for ver. 10.12.1 the OS formerly known as Mac OS X 2016-12-17 11:07:43 +01:00
exec_darwin.h Flag to set working directory (#650) 2016-11-01 12:58:42 -07:00
go_version.go Go 1.8 compatibility (part 2) (#667) 2017-02-07 13:07:18 -08:00
mach_exc_user_darwin.c Rename package proctl -> proc 2015-06-12 14:49:23 -05:00
mach_exc.defs Rename package proctl -> proc 2015-06-12 14:49:23 -05:00
mach_exc.h Rename package proctl -> proc 2015-06-12 14:49:23 -05:00
mem.go proc: detect when Launching non-executable files 2016-06-30 09:39:18 +02:00
moduledata.go proc: Names of concrete types of interfaces parsing their runtime._type 2016-10-27 09:56:15 +02:00
proc_darwin.c proc: support for ver. 10.12.1 the OS formerly known as Mac OS X 2016-12-17 11:07:43 +01:00
proc_darwin.go Two bugfixes regarding stale executable files, and executables changing between restarts (#689) 2016-12-22 10:53:34 -06:00
proc_darwin.h proc: support for ver. 10.12.1 the OS formerly known as Mac OS X 2016-12-17 11:07:43 +01:00
proc_linux.go Two bugfixes regarding stale executable files, and executables changing between restarts (#689) 2016-12-22 10:53:34 -06:00
proc_test.go Go 1.8 compatibility (part 2) (#667) 2017-02-07 13:07:18 -08:00
proc_unix_test.go tests: Add test for #149, fixed TestNextGeneral on tip 2016-02-28 16:44:22 -08:00
proc_windows.go Two bugfixes regarding stale executable files, and executables changing between restarts (#689) 2016-12-22 10:53:34 -06:00
proc.go Go 1.8 compatibility (part 2) (#667) 2017-02-07 13:07:18 -08:00
ptrace_darwin.go Add support for Windows. 2016-01-20 19:06:31 -08:00
ptrace_linux.go proc: load more registers 2016-12-19 21:29:45 +01:00
ptrace_windows.go proc: implement detach on windows (#615) 2016-09-12 11:16:41 -07:00
registers_darwin_amd64.go proc: load more registers 2016-12-19 21:29:45 +01:00
registers_linux_amd64.go proc: load more registers 2016-12-19 21:29:45 +01:00
registers_windows_amd64.go proc: load more registers 2016-12-19 21:29:45 +01:00
registers.go proc: load more registers 2016-12-19 21:29:45 +01:00
stack.go proc: load more registers 2016-12-19 21:29:45 +01:00
syscall_windows_amd64.go proc: load more registers 2016-12-19 21:29:45 +01:00
syscall_windows.go proc: changed windows backend to deal with simultaneous breakpoints (#598) 2016-10-21 21:51:34 -07:00
threads_darwin.c proc: load more registers 2016-12-19 21:29:45 +01:00
threads_darwin.go proc: support for ver. 10.12.1 the OS formerly known as Mac OS X 2016-12-17 11:07:43 +01:00
threads_darwin.h proc: load more registers 2016-12-19 21:29:45 +01:00
threads_linux.go proc: load more registers 2016-12-19 21:29:45 +01:00
threads_windows.go proc: changed windows backend to deal with simultaneous breakpoints (#598) 2016-10-21 21:51:34 -07:00
threads.go Fix for #614 and #683 (#687) 2017-01-09 15:21:54 -08:00
types.go proc: Names of concrete types of interfaces parsing their runtime._type 2016-10-27 09:56:15 +02:00
variables.go proc/variables: support NaN/Inf float values (#706) 2017-01-20 14:22:36 -08:00
zsyscall_windows.go proc: implement detach on windows (#615) 2016-09-12 11:16:41 -07:00