From: Hana Kim Date: Tue, 19 Dec 2017 20:06:57 +0000 (-0500) Subject: doc/diagnostics: update gc flags recommended for debugging X-Git-Tag: go1.10beta2~61 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=e676dbbdaf20e00609ba4cddfd55619a1e530b21;p=gostls13.git doc/diagnostics: update gc flags recommended for debugging After 1.10, gcflags apply to only the immediate target. Change-Id: I3bf331c76041e7b533076cb2f3274e44aafff58a Reviewed-on: https://go-review.googlesource.com/84775 Reviewed-by: Heschi Kreinick --- diff --git a/doc/diagnostics.html b/doc/diagnostics.html index f9d230e6bc..5f82fadcbd 100644 --- a/doc/diagnostics.html +++ b/doc/diagnostics.html @@ -317,25 +317,25 @@ create confusion.

How well do debuggers work with Go programs?

-As of Go 1.9, the DWARF info generated by the gc compiler is not complete -and sometimes makes debugging harder. There is an ongoing effort to improve the -DWARF information to help the debuggers display more accurate information. -Until those improvements are in you may prefer to disable compiler -optimizations during development for more accuracy. To disable optimizations, -use the "-N -l" compiler flags. For example, the following command builds -a package with no compiler optimizations: +The gc compiler performs optimizations such as +function inlining and variable registerization. These optimizations +sometimes make debugging with debuggers harder. There is an ongoing +effort to improve the quality of the DWARF information generated for +optimized binaries. Until those improvements are available, we recommend +disabling optimizations when building the code being debugged. The following +command builds a package with no compiler optimizations:

-$ go build -gcflags="-N -l"
+$ go build -gcflags=all="-N -l"
 

-

-As of Go 1.10, the Go binaries will have the required DWARF information -for accurate debugging. To enable the DWARF improvements, use the following -compiler flags and use GDB until Delve supports location lists: -

+As part of the improvement effort, Go 1.10 introduced a new compiler +flag -dwarflocationlists. The flag causes the compiler to +add location lists that helps debuggers work with optimized binaries. +The following command builds a package with optimizations but with +the DWARF location lists: