README.md 1.6 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

D
Derek Parker 已提交
11 12
### Features

D
Derek Parker 已提交
13 14 15
* Attach to an already running process
* Launch a process and begin debug session
* Set breakpoints, single step, step over functions, print variable contents
D
Derek Parker 已提交
16 17 18

### Usage

19 20
The debugger can be launched in three ways:

D
Derek Parker 已提交
21
* Compile, run, and attach in one step:
22 23

	```
24
	$ delve -run
25
	```
D
Derek Parker 已提交
26 27

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

D
Derek Parker 已提交
29
	```
30
	$ delve -proc path/to/program
D
Derek Parker 已提交
31
	```
D
Derek Parker 已提交
32 33 34

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

D
Derek Parker 已提交
35
	```
36
	$ sudo delve -pid 44839
D
Derek Parker 已提交
37
	```
D
Derek Parker 已提交
38

D
Derek Parker 已提交
39 40 41 42 43 44
### 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 已提交
45 46
Once inside a debugging session, the following commands may be used:

D
Derek Parker 已提交
47
* `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 已提交
48

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

D
Derek Parker 已提交
51
* `step` - Single step through program.
D
Derek Parker 已提交
52

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

D
Derek Parker 已提交
55 56 57 58
* `threads` - Print the status of all traced goroutines.

* `goroutines` - Print status of all goroutines.

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

D
Derek Parker 已提交
61 62 63
### Upcoming features

* In-scope variable setting
D
Derek Parker 已提交
64
* Support for OS X
D
Derek Parker 已提交
65 66

### License
D
Derek Parker 已提交
67 68

MIT