https://github.com/followtheprocess/debug
Like Rust's dbg macro, but for Go!
https://github.com/followtheprocess/debug
debugging golang library
Last synced: 3 months ago
JSON representation
Like Rust's dbg macro, but for Go!
- Host: GitHub
- URL: https://github.com/followtheprocess/debug
- Owner: FollowTheProcess
- License: mit
- Created: 2024-01-17T11:58:29.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-18T09:03:16.000Z (3 months ago)
- Last Synced: 2025-03-18T10:22:47.724Z (3 months ago)
- Topics: debugging, golang, library
- Language: Go
- Homepage:
- Size: 63.5 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Debug
[](https://github.com/FollowTheProcess/debug)
[](https://pkg.go.dev/github.com/FollowTheProcess/debug)
[](https://goreportcard.com/report/github.com/FollowTheProcess/debug)
[](https://github.com/FollowTheProcess/debug)
[](https://github.com/FollowTheProcess/debug/actions?query=workflow%3ACI)
[](https://codecov.io/gh/FollowTheProcess/debug)Like Rust's [dbg macro], but for Go!
## Project Description
`debug` provides a simple, elegant mechanism to streamline "print debugging", inspired by Rust's [dbg macro]
> [!WARNING]
> This is not intended for logging in production, more to enable quick local debugging while iterating. `debug.Debug` should **not** make it into your production code## Installation
```shell
go get github.com/FollowTheProcess/debug@latest
```## Quickstart
### Before
```go
package mainimport "fmt"
func main() {
something := "hello"
fmt.Printf("something = %s\n", something)
}
``````shell
something = something
```- Not ideal, need to manually type variable name
- No source info, could easily get lost in a large program
- Need to deal with fmt verbs### With `debug.Debug`
```go
package mainimport "github.com/FollowTheProcess/debug"
func main() {
something := "hello"
debug.Debug(something)
}
``````shell
DEBUG: [/Users/you/projects/myproject/main.go:7:3] something = "hello"
```- Source info, yay! 🎉
- Variable name is handled for you
- Can handle any valid go expression or value
- No fmt print verbs### Credits
This package was created with [copier] and the [FollowTheProcess/go_copier] project template.
[copier]: https://copier.readthedocs.io/en/stable/
[FollowTheProcess/go_copier]: https://github.com/FollowTheProcess/go_copier
[dbg macro]: https://doc.rust-lang.org/stable/std/macro.dbg.html