# Debugging Go programs with the GNU Debugger
30 Oct 2011
Tags: debug, gdb, technical
Summary: Last year we [reported](https://blog.golang.org/2010/11/debugging-go-code-status-report.html) that Go's [gc](https://golang.org/cmd/gc/)/[ld](https://golang.org/cmd/6l/) toolchain produces DWARFv3 debugging information that can be read by the GNU Debugger (GDB). Since then, work has continued steadily on improving support for debugging Go code with GDB. Among the improvements are the ability to inspect goroutines and to print native Go data types, including structs, slices, strings, maps, interfaces, and channels.

Andrew Gerrand

##

Last year we [reported](https://blog.golang.org/2010/11/debugging-go-code-status-report.html)
that Go's [gc](https://golang.org/cmd/gc/)/[ld](https://golang.org/cmd/6l/)
toolchain produces DWARFv3 debugging information that can be read by the GNU Debugger (GDB).
Since then, work has continued steadily on improving support for debugging Go code with GDB.
Among the improvements are the ability to inspect goroutines and to print
native Go data types,
including structs, slices, strings, maps,
interfaces, and channels.

To learn more about Go and GDB, see the [Debugging with GDB](https://golang.org/doc/debugging_with_gdb.html) article.
