diff options
Diffstat (limited to 'doc/debugging_with_gdb.html')
| -rw-r--r-- | doc/debugging_with_gdb.html | 15 | 
1 files changed, 11 insertions, 4 deletions
| diff --git a/doc/debugging_with_gdb.html b/doc/debugging_with_gdb.html index b2683913f..b893f931a 100644 --- a/doc/debugging_with_gdb.html +++ b/doc/debugging_with_gdb.html @@ -13,7 +13,7 @@ Besides this overview you might want to consult the  <p>  When you compile and link your Go programs with the <code>gc</code> toolchain -on Linux, Mac OS X or FreeBSD, the resulting binaries contain DWARFv3 +on Linux, Mac OS X, FreeBSD or NetBSD, the resulting binaries contain DWARFv3  debugging information that recent versions (>7.1) of the GDB debugger can  use to inspect a live process or a core dump.  </p> @@ -23,13 +23,20 @@ Pass the <code>'-s'</code> flag to the linker to omit the debug information  (for example, <code>go build -ldflags "-s" prog.go</code>).  </p> +<p> +The code generated by the <code>gc</code> compiler includes inlining of +function invocations and registerization of variables. These optimizations +can sometimes make debugging with <code>gdb</code> harder. To disable them +when debugging, pass the flags <code>-gcflags "-N -l"</code> to the +<a href="/cmd/go"><code>go</code></a> command used to build the code being +debugged. +</p>  <h3 id="Common_Operations">Common Operations</h3>  <ul>  <li> -Show file and line number for code  -, set breakpoints and disassemble: +Show file and line number for code, set breakpoints and disassemble:  <pre>(gdb) <b>list</b>  (gdb) <b>list <i>line</i></b>  (gdb) <b>list <i>file.go</i>:<i>line</i></b> @@ -172,7 +179,7 @@ $ <b>gdb regexp.test -d $GOROOT</b>  If for some reason GDB still can't find that directory or that script, you can load  it by hand by telling gdb (assuming you have the go sources in  <code>~/go/</code>): -<p> +</p>  <pre>  (gdb) <b>source ~/go/src/pkg/runtime/runtime-gdb.py</b> | 
