Commit Graph

19 Commits

Author SHA1 Message Date
Alessandro Arzilli
436a3c2149 proc refactor: split out BinaryInfo implementation (#745)
* proc: refactor BinaryInfo part of proc.Process to own type

The data structures and associated code used by proc.Process
to implement target.BinaryInfo will also be useful to support a
backend for examining core dumps, split this part of proc.Process
to a different type.

* proc: compile support for all executable formats unconditionally

So far we only compiled in support for loading the executable format
supported by the host operating system.
Once support for core files is introduced it is however useful to
support loading in all executable formats, there is no reason why it
shouldn't be possible to examine a linux coredump on windows, or
viceversa.

* proc: bugfix: do not resume threads on detach if killing

* Replace BinaryInfo interface with BinInfo() method returning proc.BinaryInfo
2017-04-06 11:14:01 -07:00
Derek Parker
53f0d24057 Move top-level packages into pkg 2017-02-08 12:17:19 -08:00
Derek Parker
26ad5f1d82 Introduce target interface 2017-02-08 12:16:51 -08:00
Alessandro Arzilli
6e882c50fa debugger/locations: prioritize exact matches of function names (#651)
If the location specification matches the name of a function exactly
return that function as a match event if the expression matches other
functions as well.

Without this some functions, like math/rand.Intn are unmatchable.
2016-10-21 22:04:03 -07:00
Alessandro Arzilli
142d882799 debugger/locations: Fixed bug parsing remote package paths (#586) 2016-07-05 12:13:21 -07:00
Alessandro Arzilli
473b66387c proc: Improvements to Variable printing (#444)
* service/api: Removed unused fields of service/api.Function

* proc/eval: Set return variable name to input expression

* all: fine-grained control of loadValue for better variable printing

Makes proc.(*Variable).loadValue loading parameters configurable
through one extra argument of type LoadConfig.
This interface is also exposed through the API so clients can control
how much of a variable delve should read.
2016-04-24 10:15:39 -07:00
aarzilli
4116d66c8d proc: Replaced FunctionEntryToFirstLine with disassembly alternative
- Unlike FunctionEntryToFirstLine can skip the prologue on functions
that are defined on a single line, either because they weren't
formatted or because they were autogenerated
- Can skip the prologue on most functions when setting a breakpoint
with the filename:line syntax

Fixes #396
2016-02-18 09:11:34 -08:00
Luke Hoban
cf3a07b584 Fix path lookup logic on Windows.
Fixes #370.
2016-02-05 14:45:27 -08:00
Luke Hoban
d756eba13a [service/debugger] Case-insensitive paths on Windows
Fixes #370.
2016-01-26 18:50:53 -08:00
Luke Hoban
bddb712a6b Add support for Windows.
Fixes #198.
2016-01-20 19:06:31 -08:00
aarzilli
70cbbdc083 service/locations: hooked expression evaluator to location specifiers
Location specifiers starting with '*' can be followed by any
expression supported by the evaluator.
The expression should evaluate to either an integer (which will be
interpreted as an address) or to a function pointer (which will be
dereferenced to get the function's entry point).
2016-01-17 21:45:28 -08:00
aarzilli
b5cf1572f8 service/debugger: support function spec. with partial package paths
packagename.SomeFunction should match
github.com/someuser/packagename.SomeFunction since the former is
the familiar syntax.
To disambiguate between io.SomeFunction and
github.com/someuser/somepackage/io.SomeFunction specify one extra
slash at the start of the location specifier: /io.SomeFunction.

Fixes Issue #296
2015-12-12 15:01:41 +01:00
aarzilli
971d7968c0 service/debugger: Bugfix: support pkg names with slashes in linespecs
Fixes #275
2015-10-17 09:31:07 +02:00
aarzilli
017ce2ae4e Fix: absolute path confused for regexp in FindLocation 2015-09-09 10:06:56 -05:00
Derek Parker
af9e97b697 service/debugger: Use PC instead of scope in Location.Find 2015-09-05 17:23:59 -05:00
aarzilli
c6ebd80905 Variable evaluation on arbitrary (goroutine, frame) pair. 2015-09-05 12:08:40 -05:00
Joe Shaw
bb95d534a6 terminal/command: add list command to display source
Without arguments, `list` displays source around the current context.  A
linespec argument can be taken to display source around that location.

Fixes #58
2015-08-14 08:51:31 -05:00
Derek Parker
e68e760a9f service/debugger: Remove newline at end of error 2015-08-13 18:19:16 -05:00
aarzilli
8e8d2660ef Improve commands which take a location spec
Breakpoints, tracepoints, etc.. take a location spec as input. This
patch improves the expressiveness of that API. It allows:

* Breakpoint at line
* Breakpoint at function (handling package / receiver smoothing)
* Breakpoint at address
* Breakpoint at file:line
* Setting breakpoint based off regexp
2015-08-08 14:41:48 -05:00