Commit Graph

193 Commits

Author SHA1 Message Date
aarzilli
c8d9352522 proc: Implement target.Interface for gdbserver backend 2017-04-18 13:25:11 -07:00
aarzilli
c1879472a1 proc: implement target.Interface for core files 2017-04-18 13:25:11 -07:00
Derek Parker
01a1b35620 cmd/dlv: Use Printf over Println
Fixes #783
2017-04-06 15:32:44 -07:00
Hyang-Ah Hana Kim
ab7367ed2b Minor fixes to make some tests build and run (#752)
* cmd/dlv: fall back to go env GOPATH when GOPATH envvar is unset.

Since Go 1.8, GOPATH environment variable has a default value if the
environment variable is unset so not setting GOPATH is perfectly ok.
Depend on `go env` command to query Go related environment variable.

* build: update references to moved packages
2017-03-13 10:59:34 -07:00
aarzilli
1a68f8d351 proc/windows: handle delayed events
Sometimes windows will send us events about breakpoints we have
already removed from the code despite the fact that we go to great
lengths to avoid this already.

Change waitForDebugEvent to check that when we receive a breakpoint
event the corresponding memory actually contains an INT 3
instruction, if it doesn't ignore the event and restart the thread.
2017-02-22 20:39:28 +01:00
Jason Biegel
cd2a875459 Add flag support documentation (#740) 2017-02-16 11:05:48 -08:00
Derek Parker
53f0d24057 Move top-level packages into pkg 2017-02-08 12:17:19 -08:00
aarzilli
ee6d2734c9 tests: fix TestBuild on macOS, windows 2016-12-17 10:53:30 +01:00
Evgeny L
4064d6acc0 Flag to set working directory (#650)
* proc: Add `wd` to Launch

This change adds the `wd` arg which specify working directory of the
program.

Fixes #295

* service/debugger: Add `Wd` field to debugger.Config

This change adds the `Wd` field which specify working directory of the
program launched by debugger.

Fixes #295

* service: Add `Wd` to service.Config

This change adds the `Wd` field which specify working directory of the
program debugger will launch.

Fixes #295

* cmd/dlv: Add `Wd` flag

This change adds `Wd` flag which specify working directory of the
program which launched by debugger.

Fixes #295

* only set the Linux working directory if it is set,
stub out param in darwin and windows

* set working directory for Windows
https://godoc.org/golang.org/x/sys/windows#CreateProcess
https://msdn.microsoft.com/en-us/library/windows/desktop/ms682425(v=vs.85).aspx

* Windows workingDir must be an *uint16

* attempt to chdir on darwin via @yuntan

* proc/exec_darwin.c: fix working directory for darwin

* Add tests to check if working directory works.
* Fix darwin implementation of fork/exec, which paniced if
  child fork returned.

* cmd, service: rename Wd to WorkingDir
2016-11-01 12:58:42 -07:00
Alessandro Arzilli
5d78c04e62 dlv: bugfix: Allow quoting in build flags argument (#639)
Allows quoted substrings in build-flags flag. This fixes a build
problem on windows where the default build flags must contain a space.

Fixes #634 and #638
2016-09-25 08:26:59 -07:00
Koichi Shiraishi
2fad5abe74 cmd: Support space separate flags for build-flags (#619)
Signed-off-by: Koichi Shiraishi <zchee.io@gmail.com>
2016-09-12 11:13:21 -07:00
aarzilli
80336e57e0 Replaced net/rpc with custom version
This version preserves the order of requests, allows the
client to switch between API versions and introduces a
way to send notifications to the client (see TODO item at:
proc/proc_linux.go:325).

Fixes #523, #571
2016-07-02 12:16:06 +02:00
aarzilli
51c39ed171 proc: detect when Launching non-executable files
This provides a better error message when the user tries to run dlv
debug on a directory that does not contain a main package, when `dlv
exec` is used with a source file.

Additionally the architecture of the executable is checked as suggested
by @alexbrainman in #443.

Fixes #509
2016-06-30 09:39:18 +02:00
Nan Xiao
7f6d7e214d dlv/cmds: Add missing periods in help output. (#547) 2016-05-25 12:13:16 -07:00
Derek Parker
93d82ca8d2 dlv/cmds: Improve subcommand help output 2016-05-20 20:32:16 +02:00
Nan Xiao
709e308339 terminal: Display subcommads in alphabetic order. (#539)
For better user experience, display subcommands in alphaetic order.
2016-05-20 10:22:10 -07:00
visualfc
f7e403abcf dlv: Headless mode print listener address info (#487)
* Headless mode print listener address info

* if Headless && Addr == localhost:0 print address

* update listen flag changed check

* terminal: headless print API server listening address
2016-04-24 10:27:02 -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
Alessandro Arzilli
af4798e2a9 service,terminal: APIv2 plus method to select API version (#460)
New API version with better backwards compatibility plus mechanism to
select the API version that a headless instance should use.

Adds service/test/cmd/typecheckrpc.go to type check the RPC interface.
2016-04-18 12:20:20 -07:00
Sam Zaydel
26ce16f1db docs: Changed word from singular to plural form to better fit context. (#491) 2016-04-08 14:12:38 -07:00
Hubert Krauze
37f124817d dlv: Misc refactors 2016-03-17 15:32:30 -07:00
aarzilli
5ba9bcd740 terminal: Mechanism to handle command prefixes
Implements extensible mechanism to specify which commands accept
prefixes (goroutine, frame, on) instead of hardcoding them in
a switch.

Implements #240
2016-02-28 13:38:05 +01:00
Derek Parker
63a660820e docs: Move wiki docs into Documentation dir
Going forward, all documentation should be placed in the Documentation
directory in the root of the project. This switch allows maintainers to
approve updates to documentation before they are committed, as opposed
to the pre-existing wiki which anybody could modify.

Currently the Documentation directory includes docs on building, usage,
and minimal docs around the API. This is just the initial commit, and
documentation will continue to improve over time.

Some changes have been made (and will continue to be made) to `cmd/dlv` to
ensure we can auto-generate documentation for all commands from the
newly provided script `scripts/gen-usage-docs.go`, which can be invoked
via `go run scripts/gen-usage-docs.go`.

Additionally, version has been split into its own package. This was a
bit of housekeeping related to the changes made the `cmd/dlv`.
2016-02-19 10:47:46 -08:00
aarzilli
c277b27157 cmd/dlv: add flag to make headless server accept multiple clients 2016-02-17 20:09:50 +01:00
Derek Parker
8f85b6cbae dlv: Take package name in certain commands
This patch allows certain commands (`debug`, `test`, and `trace`) to
take an argument specifying a package name. This allows a user to
specify a package other than that of the current package in the working
directory.

If a package name is not specified, the behavior remains the same, as in
Delve will look in the current working directory for a `main` package to
compile.

Fixes #423
2016-02-16 09:55:34 -08:00
aarzilli
3ca1dd35ca cmd/dlv: bugfix: trace disables terminal echo
Fixes #397
2016-02-04 08:55:38 +01:00
Derek Parker
94a265f098 dlv: Misc refactors
Mainly just cleans up the code in cmd/dlv/main.go
2016-02-01 09:50:37 +01:00
Derek Parker
8a1f36a1ce dlv: Flag to print stacktrace on trace subcommand 2016-02-01 09:28:25 +01:00
aarzilli
ae6a5f503c cmd/dlv/main: trace subcommand shows duplicate entries
The tracepoint should be set on the function's first line, not the
function's entry point to avoid function prologue weirdness.

Fixes #389
2016-01-31 13:35:18 +01:00
Derek Parker
975a114c0f trace: Fix panic calling trace without arg 2016-01-31 11:14:58 +01:00
Derek Parker
6774a6c782 all: Bump to version 0.11.0-alpha 2016-01-26 11:11:55 -08:00
Vorn Mom
1bfae45b07 terminal/command: Fixed 'test' command on Windows
This change addresses a Windows-specifc issue with the 'test' command. On
Windows, 'go test' generate executables with a '.exe' filename extention,
but the current implementation attaches to a filename without the
extention.
2016-01-24 15:37:58 -08:00
Luke Hoban
bddb712a6b Add support for Windows.
Fixes #198.
2016-01-20 19:06:31 -08:00
Derek Parker
0188dc2c8b misc: cleanup and documentation 2016-01-10 02:10:51 -08:00
aarzilli
708cf2f290 service,terminal: propagating simultaneous breakpoints 2016-01-09 08:44:25 +01:00
Derek Parker
d4bfd25a28 cmd/trace: Shorten file paths in output
Export the function to shorten file paths from the terminal package so
that it can be used in the `trace` subcommand.
2015-12-28 08:46:12 +01:00
Derek Parker
6d68d1aefa cmd/trace: Fix nil pointer panic in trace subcommand 2015-12-27 18:36:54 -08:00
Derek Parker
0abc772023 build: Add git sha to version output 2015-12-15 08:38:22 +01:00
aarzilli
50b5fc92e2 Changed api.Variable to have a machine readable value
The new contents of api.Variable are documented in
proc/variables.go.

Implements #243
2015-10-28 18:28:58 -07:00
Derek Parker
2b4fef44a5 dlv: Add option to provide build flags
Fixes #253
2015-10-18 10:41:34 -07:00
Quentin Perez
065984f42c Fix 2 x panic: runtime error: index out of range 2015-10-09 10:45:37 +02:00
Derek Parker
db95b67b23 all: Bump to version 0.10.0-alpha 2015-10-04 11:17:46 -07:00
aarzilli
eb2bc2a7ee terminal: Implements init file and source command
The 'source' command reads the file specified as argument and executes
it as a list of delve commands.
Additionally a flag '--init' can be passed to delve specifying a file
containing a list of commands to execute on startup.

Issue #96
2015-10-04 10:32:38 -07:00
Derek Parker
7f3ae73471 Version: Bump to 0.9.0-alpha 2015-09-20 00:13:23 -05:00
Derek Parker
1094c32f14 Bump version to 0.8.1-alpha 2015-09-05 17:27:06 -05:00
Derek Parker
3fc823b781 Bump version to 0.8.0-alpha 2015-09-05 12:31:37 -05:00
Tyler Bunnell
be2d9c3a84 Add config file and command alias config options. 2015-08-21 14:20:23 -05:00
Derek Parker
71845350a0 dlv/main: Add exec subcommand to debug existing binary
Added subcommand which takes a path to an existing binary, starts it,
and begins a debug session.
2015-08-19 18:01:47 -05:00
Derek Parker
066160f93e Bump to version 0.7.0-alpha & add CHANGELOG 2015-08-14 14:56:56 -05:00
Derek Parker
48f3db8216 Rename 'run' subcommand to 'debug'.
This renaming avoids confusion with the 'run' subcommand in the go tool.
The 'run' subcommand in Delve is now deprecated. It is still there,
however simply prints a deprecation notice and exits.
2015-08-14 14:52:04 -05:00
Tyler Bunnell
96dd44bd6e cmd/dlv: Add ability to connect to headless server
Fixes #201. Use to connect to a running headless server
2015-08-14 09:28:38 -05:00
moshee
f0f6fa6b2e cmd/dlv: fix bad format string 2015-08-12 09:26:30 -05:00
Derek Parker
e940fa1274 Remove dup [flags] output for trace subcommand
When running `dlv help trace` the help output would display:

dlv trace [regexp] [flags] [flags]

This patch removes the [flags] duplication.
2015-08-05 13:20:39 -05:00
aarzilli
18a6124833 Flags of root command (listen, log, headless) should be inherited by all the child commands 2015-07-25 21:26:37 -05:00
Derek Parker
c96d0a5ab2 Add pid flag to trace subcommand 2015-07-13 19:20:37 -05:00
Derek Parker
3cee10d8bc Implement 'trace' subcommand
Allows a user to execute `dlv trace [regexp]` and Delve will execute the
program and output information on functions matching [regexp].
2015-07-12 15:20:12 -05:00
Derek Parker
c6ca18ff07 Prefer anonymous functions with return status for defers 2015-07-11 14:51:54 -05:00
Derek Parker
f848eb0d14 Update dlv help output 2015-07-11 10:31:15 -05:00
Derek Parker
1b55fa8325 Fix typo 2015-07-11 09:34:08 -05:00
Derek Parker
39dc49cd82 Bump minor version 2015-07-11 09:29:40 -05:00
Derek Parker
d75ac75195 Replace hand-rolled cli interface with Cobra 2015-07-11 09:28:08 -05:00
Derek Parker
29ed169848 Return error when invoking Delve with invalid path
Fixes #154
2015-06-26 23:05:15 -05:00
Derek Parker
7c8fd02685 Remove HTTP server/client in favor of JSON-RPC
Instead of maintaining two separate client / server implementations,
maintain only the more lightweight JSON-RPC service. The reasoning
behind the merging of the original HTTP service was ease of tooling, in
other words low barrier of entry for external clients (editor
integrations, etc...).

I believe the JSON-RPC solution still satisfies that constraint while
have the advantage of being a more lightweight solution. HTTP, while
highly supported in most modern languages, carries with it too many
features we would never take advantage of. The RPC architecture seems
a more natural approach.

The infrastructure set up during the initial HTTP service implementation
was leveraged in the JSON-RPC implementation, so if any of those
original authors are reading this commit message: thank you for that
work, it was not in vain even if though the original HTTP service is not
being removed.
2015-06-24 08:08:48 -05:00
Derek Parker
687dc4172d Introduce JSON-RPC service 2015-06-21 21:11:30 -05:00
Derek Parker
0bdbe18b2b Cleanup debug binary on exit 2015-06-13 18:16:09 -05:00
Derek Parker
228587f6ba Specify log visibility with NewServer 2015-05-08 17:26:09 -05:00
Derek Parker
4814636780 Fix: Pass args to OSX fork_exec / trim args 2015-05-08 15:28:48 -05:00
Dan Mace
064462e5b5 Support a headless server mode
Add a -headless flag which runs only the debugger server until
a SIGINT is received.
2015-05-02 14:42:47 -05:00
Dan Mace
2954e03a20 Introduce client/server separation
Refactor to introduce client/server separation, including a typed
client API and a HTTP REST server implementation.

Refactor the terminal to be an API consumer.
2015-04-29 21:05:41 -05:00
Matt Butcher
6c7363b0ed Improved help text for dlv. 2015-04-25 13:09:53 -05:00
Derek Parker
8a911d7fd2 Fix version flag 2015-03-09 09:03:54 -05:00
Derek Parker
bb4356b713 Add test sub command
Allows compiling a test binary and debugging it.
2015-03-08 22:59:37 -05:00
Derek Parker
0125e300cd Fix help formatting 2015-03-08 22:01:14 -05:00
Derek Parker
4e43b0f8c0 Use subcommands instead of flags 2015-03-08 21:26:45 -05:00
Derek Parker
5705013f73 Bump version to 0.5.0.beta
Notable changes:
* OS X support
* Pure Go readline library
* Fixes issues debugged cgo enabled programs
* Substantial refactoring / code cleanup

Fixes #3 #29 #70
2015-03-01 10:43:03 -06:00
Derek Parker
19c62d02fc Bump minor version 2015-02-04 19:23:40 -06:00
Derek Parker
b0ba87e5e1 Bump micro version 2015-01-26 15:13:27 -06:00
Derek Parker
cf672154fe Micro version bump 2015-01-16 15:50:32 -06:00
Derek Parker
7fec8251ce Refactor: move cli logic into cli client
First of a few refactors to allow multiple clients / frontends for
Delve. Current implementation now uses a cli client, but conceivably we
could have an http or socket based client as well.
2014-12-17 18:22:57 -06:00
Derek Parker
864918ab86 Version bump 2014-12-11 10:26:31 -06:00
Derek Parker
d20183a679 Rename variable 2014-12-09 12:11:47 -06:00
Derek Parker
93d62e450e Modify cl ui a bit 2014-12-02 12:40:53 -06:00
Derek Parker
d8ff93d875 Add newline between functions 2014-12-01 18:06:27 -06:00
Derek Parker
269f111822 Minor version bump 2014-11-28 20:37:08 -06:00
Derek Parker
5254c5188e Move LockOSThread into init 2014-11-23 10:22:04 -06:00
Michael Gehring
7f17a2fdeb Remove the -proc option and make it the default 2014-11-14 21:55:19 +01:00
Michael Gehring
2029001583 Allow launching target process with arguments 2014-11-14 21:55:19 +01:00
Michael Gehring
425117a3d6 Stop target process immediately after execve. 2014-11-13 18:52:13 -06:00
Derek Parker
e7c8bdca27 minor cleanup 2014-11-13 09:44:04 -06:00
Burke Libbey
9c2ab6b749 Allow ^D (EOF) to terminate the session. 2014-11-13 09:39:08 -06:00
Michael Gehring
4e6ddd724d Clear breakpoints on exit 2014-11-12 23:47:40 +01:00
Derek Parker
66186815d9 bump micro version 2014-11-11 12:11:01 -06:00
Derek Parker
af0e0286a6 Move main package to cmd for 'dlv' binary name 2014-11-10 17:48:25 -06:00