2014-05-03 20:31:52 +00:00
|
|
|
# DBG
|
|
|
|
|
2014-07-21 16:40:21 +00:00
|
|
|
### What is DBG?
|
2014-05-03 20:31:52 +00:00
|
|
|
|
2014-07-21 16:44:53 +00:00
|
|
|
DBG is a Go debugger, written primarily in Go. It really needs a new name.
|
2014-05-03 20:31:52 +00:00
|
|
|
|
2014-08-23 13:50:18 +00:00
|
|
|
### Building
|
|
|
|
|
2014-08-27 22:47:04 +00:00
|
|
|
Currently, DBG requires the following [patch](https://codereview.appspot.com/117280043/) to be applied to your Go source to build.
|
2014-08-23 13:50:18 +00:00
|
|
|
|
2014-07-21 16:40:21 +00:00
|
|
|
### Features
|
|
|
|
|
|
|
|
* Attach to (trace) a running process
|
2014-08-27 22:51:56 +00:00
|
|
|
* Ability to launch a process and begin debugging it
|
2014-07-21 16:40:21 +00:00
|
|
|
* 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
|
|
|
|
|
|
|
|
### Usage
|
|
|
|
|
2014-08-27 22:51:56 +00:00
|
|
|
The debugger can be launched in two ways:
|
|
|
|
|
|
|
|
* Provide the name of the program you want to debug, and the debugger will launch it for you.
|
|
|
|
|
2014-08-28 01:33:46 +00:00
|
|
|
```
|
2014-08-27 22:51:56 +00:00
|
|
|
$ dbg -proc path/to/program
|
2014-08-28 01:33:46 +00:00
|
|
|
```
|
2014-08-27 22:51:56 +00:00
|
|
|
|
|
|
|
* Provide the pid of a currently running process, and the debugger will attach and begin the session.
|
|
|
|
|
2014-08-28 01:33:46 +00:00
|
|
|
```
|
2014-08-28 01:19:15 +00:00
|
|
|
$ sudo dbg -pid 44839
|
2014-08-28 01:33:46 +00:00
|
|
|
```
|
2014-08-27 22:51:56 +00:00
|
|
|
|
|
|
|
Once inside a debugging session, the following commands may be used:
|
|
|
|
|
2014-07-21 16:41:50 +00:00
|
|
|
* `break` - Set break point at the entry point of a function, or at a specific file/line. Example: `break foo.go:13`.
|
2014-07-21 16:40:21 +00:00
|
|
|
|
2014-07-21 16:41:50 +00:00
|
|
|
* `step` - Single step through program.
|
2014-07-21 16:40:21 +00:00
|
|
|
|
2014-07-21 16:41:50 +00:00
|
|
|
* `next` - Step over to next source line.
|
2014-07-21 16:40:21 +00:00
|
|
|
|
|
|
|
### Upcoming features
|
|
|
|
|
2014-09-12 13:13:14 +00:00
|
|
|
* Handle Gos multithreaded nature better
|
2014-07-21 16:40:21 +00:00
|
|
|
* In-scope variable evaluation
|
|
|
|
* In-scope variable setting
|
|
|
|
* Readline integration
|
2014-07-30 00:00:03 +00:00
|
|
|
* Support for OS X
|
2014-07-21 16:40:21 +00:00
|
|
|
|
|
|
|
### License
|
2014-05-03 20:31:52 +00:00
|
|
|
|
|
|
|
MIT
|