README.md 1.7 KB
Newer Older
D
Derek Parker 已提交
1
# Delve
D
Derek Parker 已提交
2

D
Derek Parker 已提交
3
### What is Delve?
D
Derek Parker 已提交
4

D
Derek Parker 已提交
5
Delve is a Go debugger, written in Go.
D
Derek Parker 已提交
6

D
Derek Parker 已提交
7 8
### Building

D
Derek Parker 已提交
9
Currently, Delve requires the following [patch](https://codereview.appspot.com/117280043/), however this change is vendored until Go 1.4 lands, so the project is go get-able.
D
Derek Parker 已提交
10

11 12 13 14
```
go get github.com/derekparker/delve/cmd/dlv
```

D
Derek Parker 已提交
15 16
### Features

D
Derek Parker 已提交
17 18
* Attach to an already running process
* Launch a process and begin debug session
D
Derek Parker 已提交
19
* Set breakpoints, single step, step over functions, print variable contents, print thread and goroutine information
D
Derek Parker 已提交
20 21 22

### Usage

23 24
The debugger can be launched in three ways:

D
Derek Parker 已提交
25
* Compile, run, and attach in one step:
26 27

	```
28
	$ dlv -run
29
	```
D
Derek Parker 已提交
30 31

* Provide the name of the program you want to debug, and the debugger will launch it for you.
D
Derek Parker 已提交
32

D
Derek Parker 已提交
33
	```
34
	$ dlv -proc path/to/program
D
Derek Parker 已提交
35
	```
D
Derek Parker 已提交
36 37 38

* Provide the pid of a currently running process, and the debugger will attach and begin the session.

D
Derek Parker 已提交
39
	```
40
	$ sudo dlv -pid 44839
D
Derek Parker 已提交
41
	```
D
Derek Parker 已提交
42

D
Derek Parker 已提交
43 44 45 46 47 48
### Breakpoints

Delve can insert breakpoints via the `breakpoint` command once inside a debug session, however for ease of debugging, you can also call `runtime.Breakpoint()` and Delve will handle the breakpoint and stop the program at the next source line.

### Commands

D
Derek Parker 已提交
49 50
Once inside a debugging session, the following commands may be used:

D
Derek Parker 已提交
51
* `break` - Set break point at the entry point of a function, or at a specific file/line. Example: `break foo.go:13`.
D
Derek Parker 已提交
52

J
Jack Christensen 已提交
53 54
* `continue` - Run until breakpoint or program termination.

D
Derek Parker 已提交
55
* `step` - Single step through program.
D
Derek Parker 已提交
56

D
Derek Parker 已提交
57
* `next` - Step over to next source line.
D
Derek Parker 已提交
58

D
Derek Parker 已提交
59
* `threads` - Print status of all traced threads.
D
Derek Parker 已提交
60 61 62

* `goroutines` - Print status of all goroutines.

D
Derek Parker 已提交
63 64
* `print $var` - Evaluate a variable.

D
Derek Parker 已提交
65 66 67
### Upcoming features

* In-scope variable setting
D
Derek Parker 已提交
68
* Support for OS X
D
Derek Parker 已提交
69 70

### License
D
Derek Parker 已提交
71 72

MIT