This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [doc, dwarf] Update bit-rotten DWARF option documentation


On 01/20/2016 06:52 AM, Jason Merrill wrote:
On 01/19/2016 11:31 PM, Sandra Loosemore wrote:
-@option{-gdwarf-2} does not accept a concatenated debug level, because
-GCC used to support an option @option{-gdwarf} that meant to generate
-debug information in version 1 of the DWARF format (which is very
-different from version 2), and it would have been too confusing.  That
-debug format is long obsolete, but the option cannot be changed now.

I think we should retain some mention of DWARF 1 here, perhaps as an
explanation of why {version} starts at 2.

 Ron Guilmette implemented the @command{protoize} and
@command{unprotoize}
-tools, the support for Dwarf symbolic debugging information, and much of
+tools, the support for DWARF symbolic debugging information, and much of
 the support for System V Release 4.  He has also worked heavily on the

Let's clarify that rfg's implementation was of DWARF version 1.

Thanks for the sanity check. I've committed the attached version of the patch, which addresses your comments.

-Sandra

2016-01-20  Sandra Loosemore <sandra@codesourcery.com>

	gcc/
	* common.opt (feliminate-dwarf2-dups): Replace references to
	"DWARF 2" with just "DWARF".
	* config/ia64/ia64.opt (mdwarf2-asm): Likewise.
	* doc/extend.texi: Likewise.
	* doc/cpp.texi: Likewise.
	* doc/invoke.texi: Likewise.
	(Option Summary): Add -gdwarf to list of Debugging Options.
	(Debugging Options): Document -gdwarf.
	* doc/contrib.texi: Spell "DWARF" like that.
Index: gcc/common.opt
===================================================================
--- gcc/common.opt	(revision 232582)
+++ gcc/common.opt	(working copy)
@@ -1234,7 +1234,7 @@ Perform early inlining.
 
 feliminate-dwarf2-dups
 Common Report Var(flag_eliminate_dwarf2_dups)
-Perform DWARF2 duplicate elimination.
+Perform DWARF duplicate elimination.
 
 fipa-sra
 Common Report Var(flag_ipa_sra) Init(0) Optimization
Index: gcc/config/ia64/ia64.opt
===================================================================
--- gcc/config/ia64/ia64.opt	(revision 232582)
+++ gcc/config/ia64/ia64.opt	(working copy)
@@ -103,7 +103,7 @@ Do not inline square root.
 
 mdwarf2-asm
 Target Report Mask(DWARF2_ASM)
-Enable Dwarf 2 line debug info via GNU as.
+Enable DWARF line debug info via GNU as.
 
 mearly-stop-bits
 Target Report Mask(EARLY_STOP_BITS)
Index: gcc/doc/extend.texi
===================================================================
--- gcc/doc/extend.texi	(revision 232582)
+++ gcc/doc/extend.texi	(working copy)
@@ -916,8 +916,8 @@ provided as built-in functions by GCC@.
 
 GCC can allocate complex automatic variables in a noncontiguous
 fashion; it's even possible for the real part to be in a register while
-the imaginary part is on the stack (or vice versa).  Only the DWARF 2
-debug info format can represent this, so use of DWARF 2 is recommended.
+the imaginary part is on the stack (or vice versa).  Only the DWARF
+debug info format can represent this, so use of DWARF is recommended.
 If you are using the stabs debug info format, GCC describes a noncontiguous
 complex variable as if it were two separate variables of noncomplex type.
 If the variable's actual name is @code{foo}, the two fictitious
@@ -1075,7 +1075,7 @@ the technical report.
 @end itemize
 
 Types @code{_Decimal32}, @code{_Decimal64}, and @code{_Decimal128}
-are supported by the DWARF 2 debug information format.
+are supported by the DWARF debug information format.
 
 @node Hex Floats
 @section Hex Floats
@@ -1249,7 +1249,7 @@ is incomplete:
 Pragmas to control overflow and rounding behaviors are not implemented.
 @end itemize
 
-Fixed-point types are supported by the DWARF 2 debug information format.
+Fixed-point types are supported by the DWARF debug information format.
 
 @node Named Address Spaces
 @section Named Address Spaces
Index: gcc/doc/invoke.texi
===================================================================
--- gcc/doc/invoke.texi	(revision 232583)
+++ gcc/doc/invoke.texi	(working copy)
@@ -316,7 +316,7 @@ Objective-C and Objective-C++ Dialects}.
 
 @item Debugging Options
 @xref{Debugging Options,,Options for Debugging Your Program}.
-@gccoptlist{-g  -g@var{level}  -gcoff  -gdwarf-@var{version} @gol
+@gccoptlist{-g  -g@var{level}  -gcoff  -gdwarf -gdwarf-@var{version} @gol
 -ggdb  -grecord-gcc-switches  -gno-record-gcc-switches @gol
 -gstabs  -gstabs+  -gstrict-dwarf  -gno-strict-dwarf @gol
 -gvms  -gxcoff  -gxcoff+ -gz@r{[}=@var{type}@r{]} @gol
@@ -5727,7 +5727,7 @@ information useful for debugging do not 
 @item -g
 @opindex g
 Produce debugging information in the operating system's native format
-(stabs, COFF, XCOFF, or DWARF 2)@.  GDB can work with this debugging
+(stabs, COFF, XCOFF, or DWARF)@.  GDB can work with this debugging
 information.
 
 On most systems that use stabs format, @option{-g} enables use of extra
@@ -5741,12 +5741,13 @@ to generate the extra information, use @
 @item -ggdb
 @opindex ggdb
 Produce debugging information for use by GDB@.  This means to use the
-most expressive format available (DWARF 2, stabs, or the native format
+most expressive format available (DWARF, stabs, or the native format
 if neither of those are supported), including GDB extensions if at all
 possible.
 
-@item -gdwarf-@var{version}
-@opindex gdwarf-@var{version}
+@item -gdwarf
+@itemx -gdwarf-@var{version}
+@opindex gdwarf
 Produce debugging information in DWARF format (if that is supported).
 The value of @var{version} may be either 2, 3, 4 or 5; the default version
 for most targets is 4.  DWARF Version 5 is only experimental.
@@ -5757,6 +5758,12 @@ use some non-conflicting DWARF 3 extensi
 Version 4 may require GDB 7.0 and @option{-fvar-tracking-assignments}
 for maximum benefit.
 
+GCC no longer supports DWARF Version 1, which is substantially
+different than Version 2 and later.  For historical reasons, some
+other DWARF-related options (including @option{-feliminate-dwarf2-dups} 
+and @option{-fno-dwarf2-cfi-asm}) retain a reference to DWARF Version 2
+in their names, but apply to all currently-supported versions of DWARF.
+
 @item -gstabs
 @opindex gstabs
 Produce debugging information in stabs format (if that is supported),
@@ -5817,11 +5824,8 @@ Level 3 includes extra information, such
 present in the program.  Some debuggers support macro expansion when
 you use @option{-g3}.
 
-@option{-gdwarf-2} does not accept a concatenated debug level, because
-GCC used to support an option @option{-gdwarf} that meant to generate
-debug information in version 1 of the DWARF format (which is very
-different from version 2), and it would have been too confusing.  That
-debug format is long obsolete, but the option cannot be changed now.
+@option{-gdwarf} does not accept a concatenated debug level, to avoid
+confusion with @option{-gdwarf-@var{level}}.
 Instead use an additional @option{-g@var{level}} option to change the
 debug level for DWARF.
 
@@ -5943,9 +5947,9 @@ when producing object files.
 
 @item -feliminate-dwarf2-dups
 @opindex feliminate-dwarf2-dups
-Compress DWARF 2 debugging information by eliminating duplicated
+Compress DWARF debugging information by eliminating duplicated
 information about each symbol.  This option only makes sense when
-generating DWARF 2 debugging information with @option{-gdwarf-2}.
+generating DWARF debugging information.
 
 @item -femit-struct-debug-baseonly
 @opindex femit-struct-debug-baseonly
@@ -5958,7 +5962,7 @@ but at significant potential loss in typ
 See @option{-femit-struct-debug-reduced} for a less aggressive option.
 See @option{-femit-struct-debug-detailed} for more detailed control.
 
-This option works only with DWARF 2.
+This option works only with DWARF debug output.
 
 @item -femit-struct-debug-reduced
 @opindex femit-struct-debug-reduced
@@ -5972,7 +5976,7 @@ with some potential loss in type informa
 See @option{-femit-struct-debug-baseonly} for a more aggressive option.
 See @option{-femit-struct-debug-detailed} for more detailed control.
 
-This option works only with DWARF 2.
+This option works only with DWARF debug output.
 
 @item -femit-struct-debug-detailed@r{[}=@var{spec-list}@r{]}
 @opindex femit-struct-debug-detailed
@@ -6020,18 +6024,18 @@ You may need to experiment to determine 
 
 The default is @option{-femit-struct-debug-detailed=all}.
 
-This option works only with DWARF 2.
+This option works only with DWARF debug output.
 
 @item -fno-dwarf2-cfi-asm
 @opindex fdwarf2-cfi-asm
 @opindex fno-dwarf2-cfi-asm
-Emit DWARF 2 unwind info as compiler generated @code{.eh_frame} section
+Emit DWARF unwind info as compiler generated @code{.eh_frame} section
 instead of using GAS @code{.cfi_*} directives.
 
 @item -fno-eliminate-unused-debug-types
 @opindex feliminate-unused-debug-types
 @opindex fno-eliminate-unused-debug-types
-Normally, when producing DWARF 2 output, GCC avoids producing debug symbol 
+Normally, when producing DWARF output, GCC avoids producing debug symbol 
 output for types that are nowhere used in the source file being compiled.
 Sometimes it is useful to have GCC emit debugging
 information for all types declared in a compilation
@@ -11017,7 +11021,7 @@ that needs this handling enables it on y
 
 @item -fasynchronous-unwind-tables
 @opindex fasynchronous-unwind-tables
-Generate unwind table in DWARF 2 format, if supported by target machine.  The
+Generate unwind table in DWARF format, if supported by target machine.  The
 table is exact at each instruction boundary, so it can be used for stack
 unwinding from asynchronous events (such as debugger or garbage collector).
 
@@ -16427,7 +16431,7 @@ instructions.  The default is to use the
 @itemx -mdwarf2-asm
 @opindex mno-dwarf2-asm
 @opindex mdwarf2-asm
-Don't (or do) generate assembler code for the DWARF 2 line number debugging
+Don't (or do) generate assembler code for the DWARF line number debugging
 info.  This may be useful when not using the GNU assembler.
 
 @item -mearly-stop-bits
@@ -21020,7 +21024,7 @@ type. This is the default.
 Store (do not store) the address of the caller's frame as backchain pointer
 into the callee's stack frame.
 A backchain may be needed to allow debugging using tools that do not understand
-DWARF 2 call frame information.
+DWARF call frame information.
 When @option{-mno-packed-stack} is in effect, the backchain pointer is stored
 at the bottom of the stack frame; when @option{-mpacked-stack} is in effect,
 the backchain is placed into the topmost word of the 96/160 byte register
Index: gcc/doc/contrib.texi
===================================================================
--- gcc/doc/contrib.texi	(revision 232582)
+++ gcc/doc/contrib.texi	(working copy)
@@ -57,7 +57,7 @@ Wolfgang Bangerth for processing tons of
 Jon Beniston for his Microsoft Windows port of Java and port to Lattice Mico32.
 
 @item
-Daniel Berlin for better DWARF2 support, faster/better optimizations,
+Daniel Berlin for better DWARF 2 support, faster/better optimizations,
 improved alias analysis, plus migrating GCC to Bugzilla.
 
 @item
@@ -350,7 +350,7 @@ and for release management.
 
 @item
 Ron Guilmette implemented the @command{protoize} and @command{unprotoize}
-tools, the support for Dwarf symbolic debugging information, and much of
+tools, the support for DWARF 1 symbolic debugging information, and much of
 the support for System V Release 4.  He has also worked heavily on the
 Intel 386 and 860 support.
 
Index: gcc/doc/cpp.texi
===================================================================
--- gcc/doc/cpp.texi	(revision 232582)
+++ gcc/doc/cpp.texi	(working copy)
@@ -2382,7 +2382,7 @@ These macros are defined when the target
 and swap operations on operands 1, 2, 4, 8 or 16 bytes in length, respectively.
 
 @item __GCC_HAVE_DWARF2_CFI_ASM
-This macro is defined when the compiler is emitting Dwarf2 CFI directives
+This macro is defined when the compiler is emitting DWARF CFI directives
 to the assembler.  When this is defined, it is possible to emit those same
 directives in inline assembly.
 

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]