README.md 1.4 KB
Newer Older
D
Derek Parker 已提交
1 2
# DBG

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

D
Derek Parker 已提交
5
DBG is a Go debugger, written primarily in Go. It really needs a new name.
D
Derek Parker 已提交
6

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

D
Derek Parker 已提交
9
Currently, DBG 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 13
### Features

* Attach to (trace) a running process
D
Derek Parker 已提交
14
* Ability to launch a process and begin debugging it
D
Derek Parker 已提交
15 16 17 18
* Set breakpoints
* Single step through a process
* Next through a process (step over / out of subroutines)
* Never retype commands, empty line defaults to previous command
D
Derek Parker 已提交
19
* Readline integration
D
Derek Parker 已提交
20 21 22

### Usage

23 24 25 26 27 28 29
The debugger can be launched in three ways:

* Allow it to compile, run, and attach to a program:

	```
	$ dbg -run
	```
D
Derek Parker 已提交
30 31 32

* Provide the name of the program you want to debug, and the debugger will launch it for you.
	
D
Derek Parker 已提交
33
	```
D
Derek Parker 已提交
34
	$ dbg -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
	```
D
Derek Parker 已提交
40
	$ sudo dbg -pid 44839
D
Derek Parker 已提交
41
	```
D
Derek Parker 已提交
42 43 44

Once inside a debugging session, the following commands may be used:

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

D
Derek Parker 已提交
47
* `step` - Single step through program.
D
Derek Parker 已提交
48

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

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

D
Derek Parker 已提交
53 54
### Upcoming features

D
Derek Parker 已提交
55
* Handle Gos multithreaded nature better
D
Derek Parker 已提交
56 57
* In-scope variable evaluation
* In-scope variable setting
D
Derek Parker 已提交
58
* Support for OS X
D
Derek Parker 已提交
59 60

### License
D
Derek Parker 已提交
61 62

MIT