import gdb-1999-08-16 snapshot
[deliverable/binutils-gdb.git] / gdb / doc / gdb.texinfo
index cf11c6927fc9cf6e92537393694b023398a8d203..d150881f608ce1d585d8f295cfec13284ed525b4 100644 (file)
@@ -1,5 +1,5 @@
 \input texinfo      @c -*-texinfo-*-
-@c Copyright 1988 1989 1990 1991 1992 1993 1994 1995
+@c Copyright 1988-1999
 @c Free Software Foundation, Inc.
 @c
 @c %**start of header 
@@ -9,13 +9,7 @@
 @c
 @include gdb-cfg.texi
 @c
-@ifset GENERIC
 @settitle Debugging with @value{GDBN}
-@end ifset
-@ifclear GENERIC
-@settitle Debugging with @value{GDBN} (@value{TARGET})
-@end ifclear
-@clear RENAMED
 @setchapternewpage odd
 @c %**end of header
 
 @syncodeindex vr cp
 
 @c !!set GDB manual's edition---not the same as GDB version!
-@set EDITION 4.12
+@set EDITION Seventh
 
 @c !!set GDB manual's revision date
-@set DATE January 1994
-
-@c GDB CHANGELOG CONSULTED BETWEEN:
-@c Fri Oct 11 23:27:06 1991  John Gilmore  (gnu at cygnus.com)
-@c Sat Dec 22 02:51:40 1990  John Gilmore  (gnu at cygint)
+@set DATE February 1999
 
 @c THIS MANUAL REQUIRES TEXINFO-2 macros and info-makers to format properly.
 
@@ -57,12 +47,11 @@ END-INFO-DIR-ENTRY
 This file documents the @sc{gnu} debugger @value{GDBN}.
 
 
-This is Edition @value{EDITION}, @value{DATE}, 
+This is the @value{EDITION} Edition, @value{DATE}, 
 of @cite{Debugging with @value{GDBN}: the @sc{gnu} Source-Level Debugger}
 for @value{GDBN} Version @value{GDBVN}.
 
-Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995
-Free Software Foundation, Inc.
+Copyright (C) 1988-1999 Free Software Foundation, Inc.
 
 Permission is granted to make and distribute verbatim copies of
 this manual provided the copyright notice and this permission notice
@@ -87,32 +76,46 @@ into another language, under the above conditions for modified versions.
 @titlepage
 @title Debugging with @value{GDBN}
 @subtitle The @sc{gnu} Source-Level Debugger
-@ifclear GENERIC
-@subtitle (@value{TARGET})
-@end ifclear
 @sp 1
-@subtitle Edition @value{EDITION}, for @value{GDBN} version @value{GDBVN}
+@ifclear HPPA
+@subtitle @value{EDITION} Edition, for @value{GDBN} version @value{GDBVN}
+@subtitle @value{DATE}
+@author Richard M. Stallman and Roland H. Pesch
+@end ifclear
+@ifset HPPA
+@subtitle Edition @value{EDITION}, for @value{HPVER} (based on @value{GDBN} @value{GDBVN})
 @subtitle @value{DATE}
-@author Richard M. Stallman and Cygnus Support
+@author Richard M. Stallman and Roland H. Pesch (modified by HP)
+@end ifset
 @page
+@ifclear HPPA
 @tex
 {\parskip=0pt
 \hfill (Send bugs and comments on @value{GDBN} to bug-gdb\@prep.ai.mit.edu.)\par
 \hfill {\it Debugging with @value{GDBN}}\par
 \hfill \TeX{}info \texinfoversion\par
-\hfill doc\@cygnus.com\par
 }
 @end tex
+@end ifclear
+@ifset HPPA
+@tex
+{\parskip=0pt
+\hfill {\it Debugging with @value{GDBN}}\par
+\hfill \TeX{}info \texinfoversion\par
+}
+@end tex
+@end ifset
 
 @vskip 0pt plus 1filll
-Copyright @copyright{} 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995
-Free Software Foundation, Inc. 
+Copyright @copyright{} 1988-1999 Free Software Foundation, Inc. 
 @sp 2
+@ifclear HPPA
 Published by the Free Software Foundation @*
 59 Temple Place - Suite 330, @*
 Boston, MA 02111-1307 USA @*
 Printed copies are available for $20 each. @*
 ISBN 1-882114-11-6 @*
+@end ifclear
                 
 Permission is granted to make and distribute verbatim copies of
 this manual provided the copyright notice and this permission notice
@@ -129,19 +132,18 @@ into another language, under the above conditions for modified versions.
 @page
 
 @ifinfo
-@node Top
+@node Top, Summary, (dir), (dir)
 @top Debugging with @value{GDBN}
 
 This file describes @value{GDBN}, the @sc{gnu} symbolic debugger.
 
-This is Edition @value{EDITION}, @value{DATE}, for @value{GDBN} Version 
+This is the @value{EDITION} Edition, @value{DATE}, for @value{GDBN} Version 
 @value{GDBVN}.
 
+Copyright (C) 1988-1999 Free Software Foundation, Inc.
 @menu
 * Summary::                     Summary of @value{GDBN}
-@ifclear BARETARGET
 * Sample Session::              A sample @value{GDBN} session
-@end ifclear
 
 * Invocation::                  Getting in and out of @value{GDBN}
 * Commands::                    @value{GDBN} commands
@@ -150,13 +152,9 @@ This is Edition @value{EDITION}, @value{DATE}, for @value{GDBN} Version
 * Stack::                       Examining the stack
 * Source::                      Examining source files
 * Data::                        Examining data
-@ifclear CONLY
+
 * Languages::                   Using @value{GDBN} with different languages
-@end ifclear
-@ifset CONLY
 * C::                           C language support
-@end ifset
-@c remnant makeinfo bug, blank line needed after two end-ifs?
 
 * Symbols::                     Examining the symbol table
 * Altering::                    Altering execution
@@ -164,26 +162,224 @@ This is Edition @value{EDITION}, @value{DATE}, for @value{GDBN} Version
 * Targets::                     Specifying a debugging target
 * Controlling GDB::             Controlling @value{GDBN}
 * Sequences::                   Canned sequences of commands
-@ifclear DOSHOST
 * Emacs::                       Using @value{GDBN} under @sc{gnu} Emacs
-@end ifclear
 
 * GDB Bugs::                    Reporting bugs in @value{GDBN}
-* Command Line Editing::        Facilities of the readline library
-* Using History Interactively::
-@c  @ifset NOVEL
-@c  * Renamed Commands::
-@c  @end ifset
+
 @ifclear PRECONFIGURED
+@ifclear HPPA
 * Formatting Documentation::    How to format and print @value{GDBN} documentation
-* Installing GDB::              Installing GDB
 @end ifclear
 
+@end ifclear
+
+* Command Line Editing::        Command Line Editing
+* Using History Interactively:: Using History Interactively
+* Installing GDB::              Installing GDB
 * Index::                       Index
+
+ --- The Detailed Node Listing ---
+
+Summary of @value{GDBN}
+
+* Free Software::               Freely redistributable software
+* Contributors::                Contributors to GDB
+
+Getting In and Out of @value{GDBN}
+
+* Invoking GDB::                How to start @value{GDBN}
+* Quitting GDB::                How to quit @value{GDBN}
+* Shell Commands::              How to use shell commands inside @value{GDBN}
+
+Invoking @value{GDBN}
+
+* File Options::                Choosing files
+* Mode Options::                Choosing modes
+
+@value{GDBN} Commands
+
+* Command Syntax::              How to give commands to @value{GDBN}
+* Completion::                  Command completion
+* Help::                        How to ask @value{GDBN} for help
+
+Running Programs Under @value{GDBN}
+
+* Compilation::                 Compiling for debugging
+* Starting::                    Starting your program
+* Arguments::                   Your program's arguments
+* Environment::                 Your program's environment
+* Working Directory::           Your program's working directory
+* Input/Output::                Your program's input and output
+* Attach::                      Debugging an already-running process
+* Kill Process::                Killing the child process
+* Process Information::         Additional process information
+
+* Threads::                     Debugging programs with multiple threads
+* Processes::                   Debugging programs with multiple processes
+
+Stopping and Continuing
+
+* Breakpoints::                 Breakpoints, watchpoints, and catchpoints
+* Continuing and Stepping::     Resuming execution
+* Signals::                     Signals
+* Thread Stops::                Stopping and starting multi-thread programs
+
+Breakpoints and watchpoints
+
+* Set Breaks::                  Setting breakpoints
+* Set Watchpoints::             Setting watchpoints
+* Set Catchpoints::             Setting catchpoints
+* Delete Breaks::               Deleting breakpoints
+* Disabling::                   Disabling breakpoints
+* Conditions::                  Break conditions
+* Break Commands::              Breakpoint command lists
+* Breakpoint Menus::            Breakpoint menus
+
+Examining the Stack
+
+* Frames::                      Stack frames
+* Backtrace::                   Backtraces
+* Selection::                   Selecting a frame
+* Frame Info::                  Information on a frame
+* Alpha/MIPS Stack::            Alpha and MIPS machines and the function stack
+
+Examining Source Files
+
+* List::                        Printing source lines
+* Search::                      Searching source files
+* Source Path::                 Specifying source directories
+* Machine Code::                Source and machine code
+
+Examining Data
+
+* Expressions::                 Expressions
+* Variables::                   Program variables
+* Arrays::                      Artificial arrays
+* Output Formats::              Output formats
+* Memory::                      Examining memory
+* Auto Display::                Automatic display
+* Print Settings::              Print settings
+* Value History::               Value history
+* Convenience Vars::            Convenience variables
+* Registers::                   Registers
+* Floating Point Hardware::     Floating point hardware
+
+Using @value{GDBN} with Different Languages
+
+* Setting::                     Switching between source languages
+* Show::                        Displaying the language
+* Checks::                      Type and range checks
+* Support::                     Supported languages
+
+Switching between source languages
+
+* Filenames::                   Filename extensions and languages.
+* Manually::                    Setting the working language manually
+* Automatically::               Having @value{GDBN} infer the source language
+
+Type and range checking
+
+* Type Checking::               An overview of type checking
+* Range Checking::              An overview of range checking
+
+Supported languages
+
+C Language Support
+
+* C::                           C and C++
+* C Operators::                 C and C++ operators
+* C Constants::                 C and C++ constants
+* C plus plus expressions::     C++ expressions
+* C Defaults::                  Default settings for C and C++
+* C Checks::                    C and C++ type and range checks
+* Debugging C::                 @value{GDBN} and C
+* Debugging C plus plus::       @value{GDBN} features for C++
+
+Modula-2
+
+* M2 Operators::                Built-in operators
+* Built-In Func/Proc::          Built-in functions and procedures
+* M2 Constants::                Modula-2 constants
+* M2 Defaults::                 Default settings for Modula-2
+* Deviations::                  Deviations from standard Modula-2
+* M2 Checks::                   Modula-2 type and range checks
+* M2 Scope::                    The scope operators @code{::} and @code{.}
+* GDB/M2::                      @value{GDBN} and Modula-2
+
+Altering Execution
+
+* Assignment::                  Assignment to variables
+* Jumping::                     Continuing at a different address
+* Signaling::                   Giving your program a signal
+* Returning::                   Returning from a function
+* Calling::                     Calling your program's functions
+* Patching::                    Patching your program
+
+@value{GDBN} Files
+
+* Files::                       Commands to specify files
+* Symbol Errors::               Errors reading symbol files
+
+Specifying a Debugging Target
+
+* Active Targets::              Active targets
+* Target Commands::             Commands for managing targets
+@ifclear HPPA
+* Byte Order::                  Choosing target byte order
+* Remote::                      Remote debugging
+
+Remote debugging
+@end ifclear
+
+* Remote Serial::               @value{GDBN} remote serial protocol
+
+* i960-Nindy Remote::          @value{GDBN} with a remote i960 (Nindy)
+
+* UDI29K Remote::               The UDI protocol for AMD29K
+
+* EB29K Remote::               The EBMON protocol for AMD29K
+
+* VxWorks Remote::             @value{GDBN} and VxWorks
+
+* ST2000 Remote::               @value{GDBN} with a Tandem ST2000
+
+* Hitachi Remote::              @value{GDBN} and Hitachi Microprocessors
+
+* MIPS Remote::                        @value{GDBN} and MIPS boards
+
+* Simulator::                   Simulated CPU target
+
+Controlling @value{GDBN}
+
+* Prompt::                      Prompt
+* Editing::                     Command editing
+* History::                     Command history
+* Screen Size::                 Screen size
+* Numbers::                     Numbers
+* Messages/Warnings::           Optional warnings and messages
+
+Canned Sequences of Commands
+
+* Define::                      User-defined commands
+* Hooks::                       User-defined command hooks
+* Command Files::               Command files
+* Output::                      Commands for controlled output
+
+Reporting Bugs in @value{GDBN}
+
+* Bug Criteria::                Have you found a bug?
+* Bug Reporting::               How to report bugs
+
+Installing @value{GDBN}
+
+* Separate Objdir::             Compiling @value{GDBN} in another directory
+* Config Names::                Specifying names for hosts and targets
+* Configure Options::           Summary of options for configure
 @end menu
+
 @end ifinfo
 
-@node Summary
+@node Summary, Sample Session, Top, Top
 @unnumbered Summary of @value{GDBN}
 
 The purpose of a debugger such as @value{GDBN} is to allow you to see what is
@@ -208,39 +404,41 @@ Change things in your program, so you can experiment with correcting the
 effects of one bug and go on to learn about another.
 @end itemize
 
-@ifclear CONLY
-You can use @value{GDBN} to debug programs written in C or C++.
-@c "MOD2" used as a "miscellaneous languages" flag here.
-@c This is acceptable while there is no real doc for Chill and Pascal.
-@ifclear MOD2
+You can use @value{GDBN} to debug programs written in C and C++.
 For more information, see @ref{Support,,Supported languages}.
-@end ifclear
-@ifset MOD2
 For more information, see @ref{C,,C and C++}.
 
+@cindex Chill
+@cindex Modula-2
 Support for Modula-2 and Chill is partial.  For information on Modula-2,
-see @ref{Modula-2,,Modula-2}.  There is no further documentation on Chill yet.
+see @ref{Modula-2,,Modula-2}.  For information on Chill, see @ref{Chill}.
 
-Debugging Pascal programs which use sets, subranges, file variables, or nested
-functions does not currently work.  @value{GDBN} does not support
-entering expressions, printing values, or similar features using Pascal syntax.
+@cindex Pascal
+Debugging Pascal programs which use sets, subranges, file variables, or
+nested functions does not currently work.  @value{GDBN} does not support
+entering expressions, printing values, or similar features using Pascal
+syntax.
 
-@end ifset
-@ifset FORTRAN
 @cindex Fortran
 @value{GDBN} can be used to debug programs written in Fortran, although
-it does not yet support entering expressions, printing values, or
-similar features using Fortran syntax.  It may be necessary to refer to
-some variables with a trailing underscore.
+It may be necessary to refer to some variables with a trailing
+underscore.
+
+@ifset HPPA
+This version of the manual documents HP Wildebeest (WDB) Version 0.75,
+implemented on HP 9000 systems running Release 10.20, 10.30, or 11.0 of
+the HP-UX operating system.  HP WDB 0.75 can be used to debug code
+generated by the HP ANSI C and HP ANSI C++ compilers as well as the
+@sc{gnu} C and C++ compilers.  It does not support the debugging of
+Fortran, Modula-2, or Chill programs.
 @end ifset
-@end ifclear
 
 @menu
 * Free Software::               Freely redistributable software
 * Contributors::                Contributors to GDB
 @end menu
 
-@node Free Software
+@node Free Software, Contributors, Summary, Summary
 @unnumberedsec Free software
 
 @value{GDBN} is @dfn{free software}, protected by the @sc{gnu} 
@@ -256,16 +454,16 @@ Fundamentally, the General Public License is a license which says that
 you have these freedoms and that you cannot take these freedoms away
 from anyone else.
 
-@node Contributors
+@node Contributors,  , Free Software, Summary
 @unnumberedsec Contributors to GDB
 
-Richard Stallman was the original author of GDB, and of many other @sc{gnu}
-programs.  Many others have contributed to its development.  This
-section attempts to credit major contributors.  One of the virtues of
-free software is that everyone is free to contribute to it; with
+Richard Stallman was the original author of GDB, and of many other
+@sc{gnu} programs.  Many others have contributed to its development.
+This section attempts to credit major contributors.  One of the virtues
+of free software is that everyone is free to contribute to it; with
 regret, we cannot actually acknowledge everyone here.  The file
-@file{ChangeLog} in the @value{GDBN} distribution approximates a blow-by-blow
-account.
+@file{ChangeLog} in the @value{GDBN} distribution approximates a
+blow-by-blow account.
 
 Changes much prior to version 2.0 are lost in the mists of time.
 
@@ -275,27 +473,25 @@ or your friends (or enemies, to be evenhanded) have been unfairly
 omitted from this list, we would like to add your names!
 @end quotation
 
-So that they may not regard their long labor as thankless, we
-particularly thank those who shepherded GDB through major releases:
-Stan Shebs (release 4.14),
-Fred Fish (releases 4.13, 4.12, 4.11, 4.10, and 4.9),
-Stu Grossman and John Gilmore (releases 4.8, 4.7, 4.6, 4.5, and 4.4),
+So that they may not regard their many labors as thankless, we
+particularly thank those who shepherded @value{GDBN} through major
+releases:
+Jim Blandy (release 4.18);
+Jason Molenda (release 4.17);
+Stan Shebs (release 4.14);
+Fred Fish (releases 4.16, 4.15, 4.13, 4.12, 4.11, 4.10, and 4.9);
+Stu Grossman and John Gilmore (releases 4.8, 4.7, 4.6, 4.5, and 4.4);
 John Gilmore (releases 4.3, 4.2, 4.1, 4.0, and 3.9);
 Jim Kingdon (releases 3.5, 3.4, and 3.3);
 and Randy Smith (releases 3.2, 3.1, and 3.0).
-As major maintainer of @value{GDBN} for some period, each
-contributed significantly to the structure, stability, and capabilities
-of the entire debugger.
 
 Richard Stallman, assisted at various times by Peter TerMaat, Chris
 Hanson, and Richard Mlynarik, handled releases through 2.8.
 
-@ifclear CONLY
 Michael Tiemann is the author of most of the @sc{gnu} C++ support in GDB,
 with significant additional contributions from Per Bothner.  James
 Clark wrote the @sc{gnu} C++ demangler.  Early work on C++ was by Peter
 TerMaat (who also did much general update work leading to release 3.0).
-@end ifclear
 
 @value{GDBN} 4 uses the BFD subroutine library to examine multiple
 object-file formats; BFD was a joint project of David V.
@@ -304,6 +500,8 @@ Henkel-Wallace, Rich Pixley, Steve Chamberlain, and John Gilmore.
 David Johnson wrote the original COFF support; Pace Willison did
 the original support for encapsulated COFF.
 
+Brent Benson of Harris Computer Systems contributed DWARF 2 support.
+
 Adam de Boor and Bradley Davis contributed the ISI Optimum V support.
 Per Bothner, Noboyuki Hikichi, and Alessandro Forin contributed MIPS
 support.
@@ -323,43 +521,78 @@ Tim Tucker contributed support for the Gould NP1 and Gould Powernode.
 Pace Willison contributed Intel 386 support.
 Jay Vosburgh contributed Symmetry support.
 
+Andreas Schwab contributed M68K Linux support.
+
 Rich Schaefer and Peter Schauer helped with support of SunOS shared
 libraries.
 
-Jay Fenlason and Roland McGrath ensured that @value{GDBN} and GAS agree about
-several machine instruction sets.
+Jay Fenlason and Roland McGrath ensured that @value{GDBN} and GAS agree
+about several machine instruction sets.
 
-Patrick Duval, Ted Goldstein, Vikram Koka and Glenn Engel helped
-develop remote debugging.  Intel Corporation and Wind River Systems
-contributed remote debugging modules for their products.
+Patrick Duval, Ted Goldstein, Vikram Koka and Glenn Engel helped develop
+remote debugging.  Intel Corporation, Wind River Systems, AMD, and ARM
+contributed remote debugging modules for the i960, VxWorks, A29K UDI,
+and RDI targets, respectively.
 
 Brian Fox is the author of the readline libraries providing
 command-line editing and command history.
 
-Andrew Beers of SUNY Buffalo wrote the language-switching code,
-@ifset MOD2
-the Modula-2 support,
-@end ifset
-and contributed the Languages chapter of this manual.
+Andrew Beers of SUNY Buffalo wrote the language-switching code, the
+Modula-2 support, and contributed the Languages chapter of this manual.
 
 Fred Fish wrote most of the support for Unix System Vr4.  
-@ifclear CONLY
 He also enhanced the command-completion support to cover C++ overloaded
 symbols.
-@end ifclear
 
-Hitachi America, Ltd. sponsored the support for Hitachi microprocessors.
+Hitachi America, Ltd. sponsored the support for H8/300, H8/500, and
+Super-H processors.
+
+NEC sponsored the support for the v850, Vr4xxx, and Vr5xxx processors.
+
+Mitsubishi sponsored the support for D10V, D30V, and M32R/D processors.
+
+Toshiba sponsored the support for the TX39 Mips processor.
+
+Matsushita sponsored the support for the MN10200 and MN10300 processors.
+
+Fujitsu sponsored the support for SPARClite and FR30 processors
 
 Kung Hsu, Jeff Law, and Rick Sladkey added support for hardware
 watchpoints.
 
+Michael Snyder added support for tracepoints.
+
 Stu Grossman wrote gdbserver.
 
 Jim Kingdon, Peter Schauer, Ian Taylor, and Stu Grossman made
 nearly innumerable bug fixes and cleanups throughout GDB.
 
-@ifclear BARETARGET
-@node Sample Session
+The following people at the Hewlett-Packard Company contributed
+support for the PA-RISC 2.0 architecture, HP-UX 10.20, 10.30, and 11.0
+(narrow mode), HP's implementation of kernel threads, HP's aC++
+compiler, and the terminal user interface: Ben Krepp, Richard Title,
+John Bishop, Susan Macchia, Kathy Mann, Satish Pai, India Paul, Steve
+Rehrauer, and Elena Zannoni.  Kim Haase provided HP-specific
+information in this manual.
+
+Cygnus Solutions has sponsored GDB maintenance and much of its
+development since 1991.  Cygnus engineers who have worked on GDB
+fulltime include Mark Alexander, Jim Blandy, Per Bothner, Edith Epstein,
+Chris Faylor, Fred Fish, Martin Hunt, Jim Ingham, John Gilmore, Stu
+Grossman, Kung Hsu, Jim Kingdon, John Metzler, Fernando Nasser, Geoffrey
+Noer, Dawn Perchik, Rich Pixley, Zdenek Radouch, Keith Seitz, Stan
+Shebs, David Taylor, and Elena Zannoni.  In addition, Dave Brolley, Ian
+Carmichael, Steve Chamberlain, Nick Clifton, JT Conklin, Stan Cox, DJ
+Delorie, Ulrich Drepper, Frank Eigler, Doug Evans, Sean Fagan, David
+Henkel-Wallace, Richard Henderson, Jeff Holcomb, Jeff Law, Jim Lemke,
+Tom Lord, Bob Manson, Michael Meissner, Jason Merrill, Catherine Moore,
+Drew Moseley, Ken Raeburn, Gavin Romig-Koch, Rob Savoye, Jamie Smith,
+Mike Stump, Ian Taylor, Angela Thomas, Michael Tiemann, Tom Tromey, Ron
+Unrau, Jim Wilson, and David Zuhn have made contributions both large
+and small.
+
+
+@node Sample Session, Invocation, Summary, Top
 @chapter A Sample @value{GDBN} Session
 
 You can use this manual at your leisure to read all about @value{GDBN}.
@@ -406,6 +639,7 @@ m4: End of input: 0: fatal error: EOF in string
 @noindent
 Let us use @value{GDBN} to try to see what is going on.
 
+@ifclear HPPA
 @smallexample
 $ @b{@value{GDBP} m4}
 @c FIXME: this falsifies the exact text played out, to permit smallbook
@@ -416,9 +650,24 @@ $ @b{@value{GDBP} m4}
 There is absolutely no warranty for @value{GDBN}; type "show warranty" 
  for details.
 
-@value{GDBN} @value{GDBVN}, Copyright 1995 Free Software Foundation, Inc...
+@value{GDBN} @value{GDBVN}, Copyright 1999 Free Software Foundation, Inc...
+(@value{GDBP})
+@end smallexample
+@end ifclear
+@ifset HPPA
+@smallexample
+$ @b{@value{GDBP} m4}
+Wildebeest is free software and you are welcome to distribute copies of
+it under certain conditions; type "show copying" to see the conditions.
+There is absolutely no warranty for Wildebeest; type "show warranty"
+for details.
+
+Hewlett-Packard Wildebeest 0.75 (based on GDB 4.16)
+(built for PA-RISC 1.1 or 2.0, HP-UX 10.20)
+Copyright 1996, 1997 Free Software Foundation, Inc.
 (@value{GDBP})
 @end smallexample
+@end ifset
 
 @noindent
 @value{GDBN} reads only enough symbol data to know where to find the
@@ -628,9 +877,8 @@ session with the @value{GDBN} @code{quit} command.
 @smallexample
 (@value{GDBP}) @b{quit}
 @end smallexample
-@end ifclear
 
-@node Invocation
+@node Invocation, Commands, Sample Session, Top
 @chapter Getting In and Out of @value{GDBN}
 
 This chapter discusses how to start @value{GDBN}, and how to get out of it.
@@ -644,30 +892,22 @@ type @kbd{quit} or @kbd{C-d} to exit.
 
 @menu
 * Invoking GDB::                How to start @value{GDBN}
-* Quitting GDB::                 How to quit @value{GDBN}
+* Quitting GDB::                How to quit @value{GDBN}
 * Shell Commands::              How to use shell commands inside @value{GDBN}
 @end menu
 
-@node Invoking GDB
+@node Invoking GDB, Quitting GDB, Invocation, Invocation
 @section Invoking @value{GDBN}
 
-@ifset H8EXCLUSIVE
-For details on starting up @value{GDBP} as a
-remote debugger attached to a Hitachi microprocessor, see @ref{Hitachi
-Remote,,@value{GDBN} and Hitachi Microprocessors}.
-@end ifset
-
 Invoke @value{GDBN} by running the program @code{@value{GDBP}}.  Once started,
 @value{GDBN} reads commands from the terminal until you tell it to exit.
 
 You can also run @code{@value{GDBP}} with a variety of arguments and options,
 to specify more of your debugging environment at the outset.
 
-@ifset GENERIC
 The command-line options described here are designed
 to cover a variety of situations; in some environments, some of these
 options may effectively be unavailable.  
-@end ifset
 
 The most usual way to start @value{GDBN} is with one argument,
 specifying an executable program:
@@ -676,7 +916,6 @@ specifying an executable program:
 @value{GDBP} @var{program}
 @end example
 
-@ifclear BARETARGET
 @noindent
 You can also start with both an executable program and a core file
 specified:
@@ -696,6 +935,7 @@ to debug a running process:
 would attach @value{GDBN} to process @code{1234} (unless you also have a file
 named @file{1234}; @value{GDBN} does check for a core file first).
 
+@ifclear HPPA
 Taking advantage of the second command-line argument requires a fairly
 complete operating system; when you use @value{GDBN} as a remote debugger
 attached to a bare board, there may not be any notion of ``process'',
@@ -706,7 +946,7 @@ You can run @code{gdb} without printing the front material, which describes
 @value{GDBN}'s non-warranty, by specifying @code{-silent}:
 
 @smallexample
-@value{GDBP} @var{-silent}
+@value{GDBP} -silent
 @end smallexample
 
 @noindent
@@ -730,47 +970,13 @@ in sequential order.  The order makes a difference when the
 
 
 @menu
-@ifclear GENERIC
-@ifset REMOTESTUB
-* Remote Serial::               @value{GDBN} remote serial protocol
-@end ifset
-@ifset I960
-* i960-Nindy Remote::          @value{GDBN} with a remote i960 (Nindy)
-@end ifset
-@ifset AMD29K
-* UDI29K Remote::               The UDI protocol for AMD29K
-* EB29K Remote::               The EBMON protocol for AMD29K
-@end ifset
-@ifset VXWORKS
-* VxWorks Remote::             @value{GDBN} and VxWorks
-@end ifset
-@ifset ST2000
-* ST2000 Remote::               @value{GDBN} with a Tandem ST2000
-@end ifset
-@ifset H8
-* Hitachi Remote::              @value{GDBN} and Hitachi Microprocessors
-@end ifset
-@ifset MIPS
-* MIPS Remote::                        @value{GDBN} and MIPS boards
-@end ifset
-@ifset SIMS
-* Simulator::                   Simulated CPU target
-@end ifset
-@end ifclear
-@c remnant makeinfo bug requires this blank line after *two* end-ifblahs:
-
 * File Options::                Choosing files
 * Mode Options::                Choosing modes
 @end menu
 
-@ifclear GENERIC
-@include remote.texi
-@end ifclear
-
 @node File Options
 @subsection Choosing files
 
-@ifclear BARETARGET
 When @value{GDBN} starts, it reads any arguments other than options as
 specifying an executable file and core file (or process ID).  This is
 the same as if the arguments were specified by the @samp{-se} and
@@ -779,12 +985,10 @@ that does not have an associated option flag as equivalent to the
 @samp{-se} option followed by that argument; and the second argument
 that does not have an associated option flag, if any, as equivalent to
 the @samp{-c} option followed by that argument.)
-@end ifclear
-@ifset BARETARGET
-When @value{GDBN} starts, it reads any argument other than options as
-specifying an executable file.  This is the same as if the argument was
-specified by the @samp{-se} option.
-@end ifset
+
+If @value{GDBN} has not been configured to included core file support,
+such as for most embedded targets, then it will complain about a second
+argument and ignore it.
 
 Many options have both long and short forms; both are shown in the
 following list.  @value{GDBN} also recognizes the long forms if you truncate
@@ -799,20 +1003,13 @@ Read symbol table from file @var{file}.
 
 @item -exec @var{file}
 @itemx -e @var{file}
-Use file @var{file} as the executable file to execute when
-@ifset BARETARGET
-appropriate.
-@end ifset
-@ifclear BARETARGET
-appropriate, and for examining pure data in conjunction with a core
-dump.
-@end ifclear
+Use file @var{file} as the executable file to execute when appropriate,
+and for examining pure data in conjunction with a core dump.
 
 @item -se @var{file}
 Read symbol table from file @var{file} and use it as the executable
 file.
 
-@ifclear BARETARGET
 @item -core @var{file}
 @itemx -c @var{file}
 Use file @var{file} as a core dump to examine.
@@ -821,7 +1018,6 @@ Use file @var{file} as a core dump to examine.
 Connect to process ID @var{number}, as with the @code{attach} command
 (unless there is a file in core-dump format named @var{number}, in which
 case @samp{-c} specifies that file as a core dump to read).
-@end ifclear
 
 @item -command @var{file}
 @itemx -x @var{file}
@@ -832,7 +1028,7 @@ Files,, Command files}.
 @itemx -d @var{directory}
 Add @var{directory} to the path to search for source files.
 
-@ifclear BARETARGET
+@ifclear HPPA
 @item -m
 @itemx -mapped
 @emph{Warning: this option depends on operating system facilities that are not
@@ -851,26 +1047,28 @@ is run.  It holds an exact image of the internal @value{GDBN} symbol
 table.  It cannot be shared across multiple host platforms.
 @end ifclear
 
+@ifclear HPPA
 @item -r
 @itemx -readnow
 Read each symbol file's entire symbol table immediately, rather than
 the default, which is to read it incrementally as it is needed.
 This makes startup slower, but makes future operations faster.
+@end ifclear
 @end table
 
-@ifclear BARETARGET
+@ifclear HPPA
 The @code{-mapped} and @code{-readnow} options are typically combined in
 order to build a @file{.syms} file that contains complete symbol
-information.  (@xref{Files,,Commands to specify files}, for information
-
-a @file{.syms} file for future use is:
+information.  (@xref{Files,,Commands to specify files}, for
+information on @file{.syms} files.) A simple GDB invocation to do
+nothing but build a @file{.syms} file for future use is:
 
 @example
        gdb -batch -nx -mapped -readnow programname
 @end example
 @end ifclear
 
-@node Mode Options
+@node Mode Options,  , File Options, Invoking GDB
 @subsection Choosing modes
 
 You can run @value{GDBN} in various alternative modes---for example, in
@@ -880,9 +1078,9 @@ batch mode or quiet mode.
 @item -nx
 @itemx -n
 Do not execute commands from any initialization files (normally called
-@file{@value{GDBINIT}}).  Normally, the commands in these files are
-executed after all the command options and arguments have been
-processed.  @xref{Command Files,,Command files}.
+@file{.gdbinit}, or @file{gdb.ini} on PCs).  Normally, the commands in
+these files are executed after all the command options and arguments
+have been processed.  @xref{Command Files,,Command files}.
 
 @item -quiet
 @itemx -q
@@ -912,41 +1110,45 @@ terminates) is not issued when running in batch mode.
 Run @value{GDBN} using @var{directory} as its working directory,
 instead of the current directory.
 
-@ifset LUCID
-@item -context @var{authentication}
-When the Energize programming system starts up @value{GDBN}, it uses this
-option to trigger an alternate mode of interaction.
-@var{authentication} is a pair of numeric codes that identify @value{GDBN}
-as a client in the Energize environment.  Avoid this option when you run
-@value{GDBN} directly from the command line.  See @ref{Energize,,Using
-@value{GDBN} with Energize} for more discussion of using @value{GDBN} with Energize.
-@end ifset
-
-@ifclear DOSHOST
 @item -fullname
 @itemx -f
-@sc{gnu} Emacs sets this option when it runs @value{GDBN} as a subprocess.  It tells @value{GDBN}
-to output the full file name and line number in a standard,
-recognizable fashion each time a stack frame is displayed (which
-includes each time your program stops).  This recognizable format looks
-like two @samp{\032} characters, followed by the file name, line number
-and character position separated by colons, and a newline.  The
-Emacs-to-@value{GDBN} interface program uses the two @samp{\032} characters as
-a signal to display the source code for the frame.
-@end ifclear
+@sc{gnu} Emacs sets this option when it runs @value{GDBN} as a
+subprocess.  It tells @value{GDBN} to output the full file name and line
+number in a standard, recognizable fashion each time a stack frame is
+displayed (which includes each time your program stops).  This
+recognizable format looks like two @samp{\032} characters, followed by
+the file name, line number and character position separated by colons,
+and a newline.  The Emacs-to-@value{GDBN} interface program uses the two
+@samp{\032} characters as a signal to display the source code for the
+frame.
 
-@ifset SERIAL
+@ifclear HPPA
 @item -b @var{bps}
 Set the line speed (baud rate or bits per second) of any serial
 interface used by @value{GDBN} for remote debugging.
+@end ifclear
 
 @item -tty @var{device}
 Run using @var{device} for your program's standard input and output.
 @c FIXME: kingdon thinks there is more to -tty.  Investigate.
+
+@ifset HPPA
+@item -tui
+Use a Terminal User Interface.  For information, use your Web browser to
+read the file @file{TUI.html}, which is usually installed in the
+directory @code{/opt/langtools/wdb/doc} on HP-UX systems.  Do not use
+this option if you run @value{GDBN} from Emacs (see @pxref{Emacs, ,Using
+@value{GDBN} under @sc{gnu} Emacs}).
+
+@item -xdb
+Run in XDB compatibility mode, allowing the use of certain XDB commands.
+For information, see the file @file{xdb_trans.html}, which is usually
+installed in the directory @code{/opt/langtools/wdb/doc} on HP-UX
+systems.
 @end ifset
 @end table
 
-@node Quitting GDB
+@node Quitting GDB, Shell Commands, Invoking GDB, Invocation
 @section Quitting @value{GDBN}
 @cindex exiting @value{GDBN}
 @cindex leaving @value{GDBN}
@@ -968,13 +1170,11 @@ returns to @value{GDBN} command level.  It is safe to type the interrupt
 character at any time because @value{GDBN} does not allow it to take effect
 until a time when it is safe.
 
-@ifclear BARETARGET
 If you have been using @value{GDBN} to control an attached process or
 device, you can release it with the @code{detach} command
 (@pxref{Attach, ,Debugging an already-running process}).
-@end ifclear
 
-@node Shell Commands
+@node Shell Commands,  , Quitting GDB, Invocation
 @section Shell commands
 
 If you need to execute occasional shell commands during your
@@ -985,11 +1185,9 @@ just use the @code{shell} command.
 @kindex shell
 @cindex shell escape
 @item shell @var{command string}
-Invoke a the standard shell to execute @var{command string}.
-@ifclear DOSHOST
+Invoke a standard shell to execute @var{command string}.
 If it exists, the environment variable @code{SHELL} determines which
 shell to run.  Otherwise @value{GDBN} uses @code{/bin/sh}.
-@end ifclear
 @end table
 
 The utility @code{make} is often needed in development environments.
@@ -1004,7 +1202,7 @@ Execute the @code{make} program with the specified
 arguments.  This is equivalent to @samp{shell make @var{make-args}}.
 @end table
 
-@node Commands
+@node Commands, Running, Invocation, Top
 @chapter @value{GDBN} Commands
 
 You can abbreviate a @value{GDBN} command to the first few letters of the command
@@ -1019,7 +1217,7 @@ show you the alternatives available, if there is more than one possibility).
 * Help::                        How to ask @value{GDBN} for help
 @end menu
 
-@node Command Syntax
+@node Command Syntax, Completion, Commands, Commands
 @section Command syntax
 
 A @value{GDBN} command is a single line of input.  There is no limit on
@@ -1062,7 +1260,7 @@ Any text from a @kbd{#} to the end of the line is a comment; it does
 nothing.  This is useful mainly in command files (@pxref{Command
 Files,,Command files}).
 
-@node Completion
+@node Completion, Help, Command Syntax, Commands
 @section Command completion
 
 @cindex completion
@@ -1129,22 +1327,18 @@ command.
 
 If you just want to see the list of alternatives in the first place, you
 can press @kbd{M-?} rather than pressing @key{TAB} twice. @kbd{M-?}
-means @kbd{@key{META} ?}.  You can type this
-@ifclear DOSHOST
-either by holding down a
+means @kbd{@key{META} ?}.  You can type this either by holding down a
 key designated as the @key{META} shift on your keyboard (if there is
-one) while typing @kbd{?}, or
-@end ifclear
-as @key{ESC} followed by @kbd{?}.
+one) while typing @kbd{?}, or as @key{ESC} followed by @kbd{?}.
 
 @cindex quotes in commands
 @cindex completion of quoted strings
 Sometimes the string you need, while logically a ``word'', may contain
-parentheses or other characters that @value{GDBN} normally excludes from its
-notion of a word.  To permit word completion to work in this situation,
-you may enclose words in @code{'} (single quote marks) in @value{GDBN} commands.
+parentheses or other characters that @value{GDBN} normally excludes from
+its notion of a word.  To permit word completion to work in this
+situation, you may enclose words in @code{'} (single quote marks) in
+@value{GDBN} commands.
 
-@ifclear CONLY
 The most likely situation where you might need this is in typing the
 name of a C++ function.  This is because C++ allows function overloading
 (multiple definitions of the same function, distinguished by argument
@@ -1178,10 +1372,14 @@ place:
 In general, @value{GDBN} can tell that a quote is needed (and inserts it) if
 you have not yet started typing the argument list when you ask for
 completion on an overloaded symbol.
-@end ifclear
+
+For more information about overloaded functions, @pxref{C plus plus
+expressions, ,C++ expressions}.  You can use the command @code{set
+overload-resolution off} to disable overload resolution;
+@pxref{Debugging C plus plus, ,@value{GDBN} features for C++}.
 
 
-@node Help
+@node Help,  , Completion, Commands
 @section Getting help
 @cindex online documentation
 @kindex help
@@ -1259,9 +1457,11 @@ complete i
 @noindent results in:
 
 @smallexample
+@group
 info
 inspect
 ignore
+@end group
 @end smallexample
 
 @noindent This is intended for use by @sc{gnu} Emacs.
@@ -1288,7 +1488,7 @@ You can get a complete list of the @code{info} sub-commands with
 
 @kindex set
 @item set
-You can assign the result of an expresson to an environment variable with 
+You can assign the result of an expression to an environment variable with 
 @code{set}.  For example, you can set the @value{GDBN} prompt to a $-sign with
 @code{set prompt $}.
 
@@ -1334,34 +1534,34 @@ Display information about permission for copying @value{GDBN}.
 Display the @sc{gnu} ``NO WARRANTY'' statement.
 @end table
 
-@node Running
+@node Running, Stopping, Commands, Top
 @chapter Running Programs Under @value{GDBN}
 
 When you run a program under @value{GDBN}, you must first generate
 debugging information when you compile it.
-@ifclear BARETARGET
-You may start @value{GDBN} with its arguments, if any, in an environment 
-of your choice.  You may redirect your program's input and output, debug an
-already running process, or kill a child process.
-@end ifclear
+
+You may start @value{GDBN} with its arguments, if any, in an environment
+of your choice.  If you are doing native debugging, you may redirect
+your program's input and output, debug an already running process, or
+kill a child process.
 
 @menu
 * Compilation::                 Compiling for debugging
 * Starting::                    Starting your program
-@ifclear BARETARGET
 * Arguments::                   Your program's arguments
 * Environment::                 Your program's environment
+
 * Working Directory::           Your program's working directory
 * Input/Output::                Your program's input and output
 * Attach::                      Debugging an already-running process
 * Kill Process::                Killing the child process
 * Process Information::         Additional process information
-* Threads::                    Debugging programs with multiple threads
+
+* Threads::                     Debugging programs with multiple threads
 * Processes::                   Debugging programs with multiple processes
-@end ifclear
 @end menu
 
-@node Compilation
+@node Compilation, Starting, Running, Running
 @section Compiling for debugging
 
 In order to debug a program effectively, you need to generate
@@ -1377,7 +1577,13 @@ Many C compilers are unable to handle the @samp{-g} and @samp{-O}
 options together.  Using those compilers, you cannot generate optimized
 executables containing debugging information.
 
+@ifclear HPPA
 @value{NGCC}, the @sc{gnu} C compiler, supports @samp{-g} with or without
+@end ifclear
+@ifset HPPA
+The HP ANSI C and C++ compilers, as well as @value{NGCC}, the @sc{gnu} C
+compiler, support @samp{-g} with or without
+@end ifset
 @samp{-O}, making it possible to debug optimized code.  We recommend
 that you @emph{always} use @samp{-g} whenever you compile a program.
 You may think your program is correct, but there is no sense in pushing
@@ -1402,7 +1608,7 @@ Older versions of the @sc{gnu} C compiler permitted a variant option
 format; if your @sc{gnu} C compiler has this option, do not use it.
 
 @need 2000
-@node Starting
+@node Starting, Arguments, Compilation, Running
 @section Starting your program
 @cindex starting
 @cindex running
@@ -1411,18 +1617,14 @@ format; if your @sc{gnu} C compiler has this option, do not use it.
 @kindex run
 @item run
 @itemx r
-Use the @code{run} command to start your program under @value{GDBN}.  You must
-first specify the program name
-@ifset VXWORKS
-(except on VxWorks)
-@end ifset
-with an argument to @value{GDBN} (@pxref{Invocation, ,Getting In and
-Out of @value{GDBN}}), or by using the @code{file} or @code{exec-file}
-command (@pxref{Files, ,Commands to specify files}).
+Use the @code{run} command to start your program under @value{GDBN}.
+You must first specify the program name (except on VxWorks) with an
+argument to @value{GDBN} (@pxref{Invocation, ,Getting In and Out of
+@value{GDBN}}), or by using the @code{file} or @code{exec-file} command
+(@pxref{Files, ,Commands to specify files}).
 
 @end table
 
-@ifclear BARETARGET
 If you are running your program in an execution environment that
 supports processes, @code{run} creates an inferior process and makes
 that process run your program.  (In environments without processes,
@@ -1441,9 +1643,10 @@ Specify the arguments to give your program as the arguments of the
 @code{run} command.  If a shell is available on your target, the shell
 is used to pass the arguments, so that you may use normal conventions
 (such as wildcard expansion or variable substitution) in describing
-the arguments.  In Unix systems, you can control which shell is used
-with the @code{SHELL} environment variable. @xref{Arguments, ,Your
-program's arguments}.
+the arguments.
+In Unix systems, you can control which shell is used with the
+@code{SHELL} environment variable.
+@xref{Arguments, ,Your program's arguments}.
 
 @item The @emph{environment.}
 Your program normally inherits its environment from @value{GDBN}, but you can
@@ -1469,7 +1672,6 @@ pipes to pass the output of the program you are debugging to another
 program; if you attempt this, @value{GDBN} is likely to wind up debugging the
 wrong program.
 @end table
-@end ifclear
 
 When you issue the @code{run} command, your program begins to execute
 immediately.  @xref{Stopping, ,Stopping and continuing}, for discussion
@@ -1482,17 +1684,17 @@ time @value{GDBN} read its symbols, @value{GDBN} discards its symbol
 table, and reads it again.  When it does this, @value{GDBN} tries to retain
 your current breakpoints.
 
-@ifclear BARETARGET
-@node Arguments
+@node Arguments, Environment, Starting, Running
 @section Your program's arguments
 
 @cindex arguments (to your program)
 The arguments to your program can be specified by the arguments of the
-@code{run} command.  They are passed to a shell, which expands wildcard
-characters and performs redirection of I/O, and thence to your program.
-Your @code{SHELL} environment variable (if it exists) specifies what
-shell @value{GDBN} uses.  If you do not define @code{SHELL},
-@value{GDBN} uses @code{/bin/sh}.
+@code{run} command.  
+They are passed to a shell, which expands wildcard characters and
+performs redirection of I/O, and thence to your program.  Your
+@code{SHELL} environment variable (if it exists) specifies what shell
+@value{GDBN} uses.  If you do not define @code{SHELL}, @value{GDBN} uses
+@code{/bin/sh}.
 
 @code{run} with no arguments uses the same arguments used by the previous
 @code{run}, or those set by the @code{set args} command.
@@ -1511,7 +1713,7 @@ it again without arguments.
 Show the arguments to give your program when it is started.
 @end table
 
-@node Environment
+@node Environment, Working Directory, Arguments, Running
 @section Your program's environment
 
 @cindex environment (of your program)
@@ -1592,7 +1794,7 @@ your program.  You may wish to move setting of environment variables to
 files that are only run when you sign on, such as @file{.login} or
 @file{.profile}.
 
-@node Working Directory
+@node Working Directory, Input/Output, Environment, Running
 @section Your program's working directory
 
 @cindex working directory (of your program)
@@ -1616,7 +1818,7 @@ Set the @value{GDBN} working directory to @var{directory}.
 Print the @value{GDBN} working directory.
 @end table
 
-@node Input/Output
+@node Input/Output, Attach, Working Directory, Running
 @section Your program's input and output
 
 @cindex redirection
@@ -1670,7 +1872,7 @@ When you use the @code{tty} command or redirect input in the @code{run}
 command, only the input @emph{for your program} is affected.  The input
 for @value{GDBN} still comes from your terminal.
 
-@node Attach
+@node Attach, Kill Process, Input/Output, Running
 @section Debugging an already-running process
 @kindex attach
 @cindex attach
@@ -1692,14 +1894,23 @@ which supports processes; for example, @code{attach} does not work for
 programs on bare-board targets that lack an operating system.  You must
 also have permission to send the process a signal.
 
-When using @code{attach}, you should first use the @code{file} command
-to specify the program running in the process and load its symbol table.
-@xref{Files, ,Commands to Specify Files}.
+When you use @code{attach}, the debugger finds the program running in
+the process first by looking in the current working directory, then (if
+the program is not found) by using the source file search path
+(@pxref{Source Path, ,Specifying source directories}).  You can also use
+the @code{file} command to load the program.  @xref{Files, ,Commands to
+Specify Files}.
 
 The first thing @value{GDBN} does after arranging to debug the specified
 process is to stop it.  You can examine and modify an attached process
 with all the @value{GDBN} commands that are ordinarily available when you start
+@ifclear HPPA
 processes with @code{run}.  You can insert breakpoints; you can step and
+@end ifclear
+@ifset HPPA
+processes with @code{run}.  You can insert breakpoints (except in shared
+libraries); you can step and
+@end ifset
 continue; you can modify storage.  If you would rather the process
 continue running, you may use the @code{continue} command after
 attaching @value{GDBN} to the process.
@@ -1723,8 +1934,7 @@ control whether or not you need to confirm by using the @code{set
 confirm} command (@pxref{Messages/Warnings, ,Optional warnings and
 messages}).
 
-@node Kill Process
-@c @group
+@node Kill Process, Process Information, Attach, Running
 @section Killing the child process
 
 @table @code
@@ -1736,7 +1946,6 @@ Kill the child process in which your program is running under @value{GDBN}.
 This command is useful if you wish to debug a core dump instead of a
 running process.  @value{GDBN} ignores any core dump file while your program
 is running.
-@c @end group
 
 On some operating systems, a program cannot be executed outside @value{GDBN}
 while you have breakpoints set on it inside @value{GDBN}.  You can use the
@@ -1750,17 +1959,20 @@ next type @code{run}, @value{GDBN} notices that the file has changed, and
 reads the symbol table again (while trying to preserve your current
 breakpoint settings).
 
-@node Process Information
+@node Process Information, Threads, Kill Process, Running
 @section Additional process information
 
 @kindex /proc
 @cindex process image
+
 Some operating systems provide a facility called @samp{/proc} that can
 be used to examine the image of a running process using file-system
 subroutines.  If @value{GDBN} is configured for an operating system with this
 facility, the command @code{info proc} is available to report on several
 kinds of information about the process running your program.  
 @code{info proc} works only on SVR4 systems that support @code{procfs}.
+This includes OSF/1 (Digital Unix), Solaris, Irix, and Unixware,
+but not HP-UX or Linux, for example.
 
 @table @code
 @kindex info proc
@@ -1792,19 +2004,19 @@ received.
 Show all the above information about the process.
 @end table
 
-@node Threads
+@node Threads, Processes, Process Information, Running
 @section Debugging programs with multiple threads
 
 @cindex threads of execution
 @cindex multiple threads
 @cindex switching threads
-In some operating systems, a single program may have more than one
-@dfn{thread} of execution.  The precise semantics of threads differ from
-one operating system to another, but in general the threads of a single
-program are akin to multiple processes---except that they share one
-address space (that is, they can all examine and modify the same
-variables).  On the other hand, each thread has its own registers and
-execution stack, and perhaps private memory.
+In some operating systems, such as HP-UX and Solaris, a single program
+may have more than one @dfn{thread} of execution.  The precise semantics
+of threads differ from one operating system to another, but in general
+the threads of a single program are akin to multiple processes---except
+that they share one address space (that is, they can all examine and
+modify the same variables).  On the other hand, each thread has its own
+registers and execution stack, and perhaps private memory.
 
 @value{GDBN} provides these facilities for debugging multi-thread
 programs:
@@ -1818,6 +2030,7 @@ a command to apply a command to a list of threads
 @item thread-specific breakpoints
 @end itemize
 
+@ifclear HPPA
 @quotation
 @emph{Warning:} These facilities are not yet available on every
 @value{GDBN} configuration where the operating system supports threads.
@@ -1835,6 +2048,7 @@ see the IDs of currently known threads.
 @c FIXME to implementors: how hard would it be to say "sorry, this GDB
 @c                        doesn't support threads"?
 @end quotation
+@end ifclear
 
 @cindex focus of debugging
 @cindex current thread
@@ -1844,38 +2058,95 @@ control, one thread in particular is always the focus of debugging.
 This thread is called the @dfn{current thread}.  Debugging commands show
 program information from the perspective of the current thread.
 
+@ifclear HPPA
+@kindex New @var{systag}
+@cindex thread identifier (system)
+@c FIXME-implementors!! It would be more helpful if the [New...] message
+@c included GDB's numeric thread handle, so you could just go to that
+@c thread without first checking `info threads'.
+Whenever @value{GDBN} detects a new thread in your program, it displays
+the target system's identification for the thread with a message in the
+form @samp{[New @var{systag}]}.  @var{systag} is a thread identifier
+whose form varies depending on the particular system.  For example, on
+LynxOS, you might see
+
+@example
+[New process 35 thread 27]
+@end example
+
+@noindent
+when @value{GDBN} notices a new thread.  In contrast, on an SGI system,
+the @var{systag} is simply something like @samp{process 368}, with no
+further qualifier.
+
+@c FIXME!! (1) Does the [New...] message appear even for the very first
+@c         thread of a program, or does it only appear for the
+@c         second---i.e., when it becomes obvious we have a multithread
+@c         program?
+@c         (2) *Is* there necessarily a first thread always?  Or do some
+@c         multithread systems permit starting a program with multiple
+@c         threads ab initio?      
+
+@cindex thread number
+@cindex thread identifier (GDB)
+For debugging purposes, @value{GDBN} associates its own thread
+number---always a single integer---with each thread in your program.
+
+@table @code
+@kindex info threads
+@item info threads
+Display a summary of all threads currently in your
+program.  @value{GDBN} displays for each thread (in this order):
+
+@enumerate
+@item the thread number assigned by @value{GDBN}
+
+@item the target system's thread identifier (@var{systag})
+
+@item the current stack frame summary for that thread
+@end enumerate
+
+@noindent
+An asterisk @samp{*} to the left of the @value{GDBN} thread number
+indicates the current thread.
+
+For example, 
+@end table
+@c end table here to get a little more width for example
+
+@smallexample
+(@value{GDBP}) info threads
+  3 process 35 thread 27  0x34e5 in sigpause ()
+  2 process 35 thread 23  0x34e5 in sigpause ()
+* 1 process 35 thread 13  main (argc=1, argv=0x7ffffff8)
+    at threadtest.c:68
+@end smallexample
+@end ifclear
+@ifset HPPA
+
+@cindex thread number
+@cindex thread identifier (GDB)
+For debugging purposes, @value{GDBN} associates its own thread
+number---a small integer assigned in thread-creation order---with each
+thread in your program.
+
 @kindex New @var{systag}
 @cindex thread identifier (system)
 @c FIXME-implementors!! It would be more helpful if the [New...] message
 @c included GDB's numeric thread handle, so you could just go to that
 @c thread without first checking `info threads'.
 Whenever @value{GDBN} detects a new thread in your program, it displays
-the target system's identification for the thread with a message in the
+both @value{GDBN}'s thread number and the target system's identification for the thread with a message in the
 form @samp{[New @var{systag}]}.  @var{systag} is a thread identifier
 whose form varies depending on the particular system.  For example, on
-LynxOS, you might see
+HP-UX, you see
 
 @example
-[New process 35 thread 27]
+[New thread 2 (system thread 26594)]
 @end example
 
 @noindent
-when @value{GDBN} notices a new thread.  In contrast, on an SGI system,
-the @var{systag} is simply something like @samp{process 368}, with no
-further qualifier.
-
-@c FIXME!! (1) Does the [New...] message appear even for the very first
-@c         thread of a program, or does it only appear for the
-@c         second---i.e., when it becomes obvious we have a multithread
-@c         program?
-@c         (2) *Is* there necessarily a first thread always?  Or do some
-@c         multithread systems permit starting a program with multiple
-@c         threads ab initio?      
-
-@cindex thread number
-@cindex thread identifier (GDB)
-For debugging purposes, @value{GDBN} associates its own thread
-number---always a single integer---with each thread in your program.
+when @value{GDBN} notices a new thread. 
 
 @table @code
 @kindex info threads
@@ -1899,13 +2170,13 @@ For example,
 @end table
 @c end table here to get a little more width for example
 
-@smallexample
+@example
 (@value{GDBP}) info threads
-  3 process 35 thread 27  0x34e5 in sigpause ()
-  2 process 35 thread 23  0x34e5 in sigpause ()
-* 1 process 35 thread 13  main (argc=1, argv=0x7ffffff8)
-    at threadtest.c:68
-@end smallexample
+    * 3 system thread 26607  worker (wptr=0x7b09c318 "@@") at quicksort.c:137
+      2 system thread 26606  0x7b0030d8 in __ksleep () from /usr/lib/libc.2
+      1 system thread 27905  0x7b003498 in _brk () from /usr/lib/libc.2
+@end example
+@end ifset
 
 @table @code
 @kindex thread @var{threadno}
@@ -1919,7 +2190,12 @@ you selected, and its current stack frame summary:
 @smallexample
 @c FIXME!! This example made up; find a @value{GDBN} w/threads and get real one
 (@value{GDBP}) thread 2
+@ifclear HPPA
 [Switching to process 35 thread 23]
+@end ifclear
+@ifset HPPA
+[Switching to thread 2 (system thread 26594)]
+@end ifset
 0x34e5 in sigpause ()
 @end smallexample
 
@@ -1953,9 +2229,9 @@ programs with multiple threads.
 
 @xref{Set Watchpoints,,Setting watchpoints}, for information about
 watchpoints in programs with multiple threads.
-@end ifclear
 
-@node Processes
+@ifclear HPPA
+@node Processes,  , Threads, Running
 @section Debugging programs with multiple processes
 
 @cindex fork, debugging programs which call
@@ -1978,83 +2254,114 @@ get its process ID.  Then tell @value{GDBN} (a new invocation of
 @value{GDBN} if you are also debugging the parent process) to attach to
 the child process (see @ref{Attach}).  From that point on you can debug
 the child process just like any other process which you attached to.
+@end ifclear
+@ifset HPPA
+@node Processes,  , Threads, Running
+@section Debugging programs with multiple processes
+
+@cindex fork, debugging programs which call
+@cindex multiple processes
+@cindex processes, multiple
+
+@value{GDBN} provides support for debugging programs that create
+additional processes using the @code{fork} or @code{vfork} function.
+
+By default, when a program forks, @value{GDBN} will continue to debug
+the parent process and the child process will run unimpeded.
+
+If you want to follow the child process instead of the parent process,
+use the command @w{@code{set follow-fork-mode}}.
+
+@table @code
+@kindex set follow-fork-mode
+@item set follow-fork-mode @var{mode}
+Set the debugger response to a program call of @code{fork} or
+@code{vfork}.  A call to @code{fork} or @code{vfork} creates a new
+process.  The @var{mode} can be:
+
+@table @code
+@item parent
+The original process is debugged after a fork.  The child process runs
+unimpeded.
+
+@item child
+The new process is debugged after a fork.  The parent process runs
+unimpeded.
+
+@item ask
+The debugger will ask for one of the above choices.
+@end table
+
+@item show follow-fork-mode
+Display the current debugger response to a fork or vfork call.
+@end table
+
+If you ask to debug a child process and a @code{vfork} is followed by an
+@code{exec}, @value{GDBN} executes the new target up to the first
+breakpoint in the new target.  If you have a breakpoint set on
+@code{main} in your original program, the breakpoint will also be set on
+the child process's @code{main}.
+
+When a child process is spawned by @code{vfork}, you cannot debug the
+child or parent until an @code{exec} call completes.
+
+If you issue a @code{run} command to @value{GDBN} after an @code{exec}
+call executes, the new target restarts.  To restart the parent process,
+use the @code{file} command with the parent executable name as its
+argument.
+
+You can use the @code{catch} command to make @value{GDBN} stop whenever
+a @code{fork}, @code{vfork}, or @code{exec} call is made.  @xref{Set
+Catchpoints, ,Setting catchpoints}.
+@end ifset
 
-@node Stopping
+@node Stopping, Stack, Running, Top
 @chapter Stopping and Continuing
 
 The principal purposes of using a debugger are so that you can stop your
 program before it terminates; or so that, if your program runs into
 trouble, you can investigate and find out why.
 
-Inside @value{GDBN}, your program may stop for any of several reasons, such
-as
-@ifclear BARETARGET
-a signal,
-@end ifclear
-a breakpoint, or reaching a new line after a @value{GDBN}
-command such as @code{step}.  You may then examine and change
-variables, set new breakpoints or remove old ones, and then continue
-execution.  Usually, the messages shown by @value{GDBN} provide ample
-explanation of the status of your program---but you can also explicitly
-request this information at any time.
+Inside @value{GDBN}, your program may stop for any of several reasons,
+such as a signal, a breakpoint, or reaching a new line after a
+@value{GDBN} command such as @code{step}.  You may then examine and
+change variables, set new breakpoints or remove old ones, and then
+continue execution.  Usually, the messages shown by @value{GDBN} provide
+ample explanation of the status of your program---but you can also
+explicitly request this information at any time.
 
 @table @code
 @kindex info program
 @item info program
 Display information about the status of your program: whether it is
-running or not,
-@ifclear BARETARGET
-what process it is,
-@end ifclear
-and why it stopped.
+running or not, what process it is, and why it stopped.
 @end table
 
 @menu
-@ifclear CONLY
-* Breakpoints::                 Breakpoints, watchpoints, and exceptions
-@end ifclear
-@ifset CONLY
-* Breakpoints::                 Breakpoints and watchpoints
-@end ifset
-@c Remnant makeinfo bug requires blank line after *successful* end-if in menu:
-
+* Breakpoints::                 Breakpoints, watchpoints, and catchpoints
 * Continuing and Stepping::     Resuming execution
-@ifset POSIX
 * Signals::                     Signals
-@end ifset
-@ifclear BARETARGET
-* Thread Stops::               Stopping and starting multi-thread programs
-@end ifclear
+* Thread Stops::                Stopping and starting multi-thread programs
 @end menu
 
-@c makeinfo node-defaulting requires adjacency of @node and sectioning cmds
-@c ...hence distribute @node Breakpoints over two possible @if expansions.
-@c
-@ifclear CONLY
-@node Breakpoints
-@section Breakpoints, watchpoints, and exceptions
-@end ifclear
-@ifset CONLY
-@node Breakpoints
-@section Breakpoints and watchpoints
-@end ifset
+@node Breakpoints, Continuing and Stepping, Stopping, Stopping
+@section Breakpoints, watchpoints, and catchpoints
 
 @cindex breakpoints
 A @dfn{breakpoint} makes your program stop whenever a certain point in
-the program is reached.  For each breakpoint, you can add
-conditions to control in finer detail whether your program stops.
-You can set breakpoints with the @code{break} command and its variants
-(@pxref{Set Breaks, ,Setting breakpoints}), to specify the place where
-your program should stop by line number, function name or exact address
-in the program.  
-@ifclear CONLY
-In languages with exception handling (such as @sc{gnu} C++), you can also set
-breakpoints where an exception is raised (@pxref{Exception Handling,,
-Breakpoints and exceptions}).
-@end ifclear
+the program is reached.  For each breakpoint, you can add conditions to
+control in finer detail whether your program stops.  You can set
+breakpoints with the @code{break} command and its variants (@pxref{Set
+Breaks, ,Setting breakpoints}), to specify the place where your program
+should stop by line number, function name or exact address in the
+program.
 
-In SunOS 4.x, SVR4, and Alpha OSF/1 configurations, you can now set
-breakpoints in shared libraries before the executable is run.
+In HP-UX, SunOS 4.x, SVR4, and Alpha OSF/1 configurations, you can set
+breakpoints in shared libraries before the executable is run.  There is
+a minor limitation on HP-UX systems: you must wait until the executable
+is run in order to set breakpoints in shared library routines that are
+not called directly by the program (for example, routines that are
+arguments in a @code{pthread_create} call).
 
 @cindex watchpoints
 @cindex memory tracing
@@ -2071,35 +2378,40 @@ You can arrange to have values from your program displayed automatically
 whenever @value{GDBN} stops at a breakpoint.  @xref{Auto Display,,
 Automatic display}.
 
+@cindex catchpoints
+@cindex breakpoint on events
+A @dfn{catchpoint} is another special breakpoint that stops your program
+when a certain kind of event occurs, such as the throwing of a C++
+exception or the loading of a library.  As with watchpoints, you use a
+different command to set a catchpoint (@pxref{Set Catchpoints, ,Setting
+catchpoints}), but aside from that, you can manage a catchpoint like any
+other breakpoint.  (To stop when your program receives a signal, use the
+@code{handle} command; @pxref{Signals, ,Signals}.)
+
 @cindex breakpoint numbers
 @cindex numbers for breakpoints
-@value{GDBN} assigns a number to each breakpoint or watchpoint when you
-create it; these numbers are successive integers starting with one.  In
-many of the commands for controlling various features of breakpoints you
-use the breakpoint number to say which breakpoint you want to change.
-Each breakpoint may be @dfn{enabled} or @dfn{disabled}; if disabled, it has
-no effect on your program until you enable it again.
+@value{GDBN} assigns a number to each breakpoint, watchpoint, or
+catchpoint when you create it; these numbers are successive integers
+starting with one.  In many of the commands for controlling various
+features of breakpoints you use the breakpoint number to say which
+breakpoint you want to change.  Each breakpoint may be @dfn{enabled} or
+@dfn{disabled}; if disabled, it has no effect on your program until you
+enable it again.
 
 @menu
 * Set Breaks::                  Setting breakpoints
 * Set Watchpoints::             Setting watchpoints
-@ifclear CONLY
-* Exception Handling::          Breakpoints and exceptions
-@end ifclear
-
+* Set Catchpoints::             Setting catchpoints
 * Delete Breaks::               Deleting breakpoints
 * Disabling::                   Disabling breakpoints
 * Conditions::                  Break conditions
 * Break Commands::              Breakpoint command lists
-@ifclear CONLY
 * Breakpoint Menus::            Breakpoint menus
-@end ifclear
-@c  @ifclear BARETARGET
+
 @c  * Error in Breakpoints::        ``Cannot insert breakpoints''
-@c  @end ifclear
 @end menu
 
-@node Set Breaks
+@node Set Breaks, Set Watchpoints, Breakpoints, Breakpoints
 @subsection Setting breakpoints
 
 @c FIXME LMB what does GDB do if no code on line of breakpt?  
@@ -2122,11 +2434,9 @@ You have several ways to say where the breakpoint should go.
 @table @code
 @item break @var{function}
 Set a breakpoint at entry to function @var{function}.  
-@ifclear CONLY
 When using source languages that permit overloading of symbols, such as
 C++, @var{function} may refer to more than one possible place to break.
 @xref{Breakpoint Menus,,Breakpoint menus}, for a discussion of that situation.
-@end ifclear
 
 @item break +@var{offset}
 @itemx break -@var{offset}
@@ -2186,6 +2496,7 @@ same as for the @code{break} command, and the breakpoint is set in the same
 way, but the breakpoint is automatically deleted after the first time your
 program stops there.  @xref{Disabling, ,Disabling breakpoints}.
 
+@ifclear HPPA
 @kindex hbreak
 @item hbreak @var{args}
 Set a hardware-assisted breakpoint.  @var{args} are the same as for the 
@@ -2195,10 +2506,10 @@ have this support.  The main purpose of this is EPROM/ROM code
 debugging, so you can set a breakpoint at an instruction without 
 changing the instruction.  This can be used with the new trap-generation 
 provided by SPARClite DSU.  DSU will generate traps when a program accesses
-some date or instruction address that is assigned to the debug registers.  
+some data or instruction address that is assigned to the debug registers.  
 However the hardware breakpoint registers can only take two data breakpoints,
 and @value{GDBN} will reject this command if more than two are used.  
-Delete or disable usused hardware breakpoints before setting
+Delete or disable unused hardware breakpoints before setting
 new ones.  @xref{Conditions, ,Break conditions}.
 
 @kindex thbreak
@@ -2211,6 +2522,7 @@ first time your program stops there.  Also, like the @code{hbreak}
 command, the breakpoint requires hardware support and some target hardware 
 may not have this support.  @xref{Disabling, ,Disabling breakpoints}.  
 Also @xref{Conditions, ,Break conditions}.
+@end ifclear
 
 @kindex rbreak
 @cindex regular expression
@@ -2224,24 +2536,22 @@ just like the breakpoints set with the @code{break} command.  You can
 delete them, disable them, or make them conditional the same way as any
 other breakpoint.
 
-@ifclear CONLY
 When debugging C++ programs, @code{rbreak} is useful for setting
 breakpoints on overloaded functions that are not members of any special
 classes.
-@end ifclear
 
 @kindex info breakpoints
 @cindex @code{$_} and @code{info breakpoints}
 @item info breakpoints @r{[}@var{n}@r{]}
 @itemx info break @r{[}@var{n}@r{]}
 @itemx info watchpoints @r{[}@var{n}@r{]}
-Print a table of all breakpoints and watchpoints set and not
-deleted, with the following columns for each breakpoint:
+Print a table of all breakpoints, watchpoints, and catchpoints set and
+not deleted, with the following columns for each breakpoint:
 
 @table @emph
 @item Breakpoint Numbers
 @item Type
-Breakpoint or watchpoint.
+Breakpoint, watchpoint, or catchpoint.
 @item Disposition
 Whether the breakpoint is marked to be disabled or deleted when hit.
 @item Enabled or Disabled
@@ -2267,12 +2577,12 @@ the @code{x} command are set to the address of the last breakpoint
 listed (@pxref{Memory, ,Examining memory}).  
 
 @noindent
-@code{info break} now displays a count of the number of times the
-breakpoint has been hit.  This is especially useful in conjunction with
-the @code{ignore} command.  You can ignore a large number of breakpoint
-hits, look at the breakpoint info to see how many times the
-breakpoint was hit, and then run again, ignoring one less than that
-number.  This will get you quickly to the last hit of that breakpoint.
+@code{info break} displays a count of the number of times the breakpoint
+has been hit.  This is especially useful in conjunction with the
+@code{ignore} command.  You can ignore a large number of breakpoint
+hits, look at the breakpoint info to see how many times the breakpoint
+was hit, and then run again, ignoring one less than that number.  This
+will get you quickly to the last hit of that breakpoint.
 @end table
 
 @value{GDBN} allows you to set any number of breakpoints at the same place in
@@ -2318,70 +2628,138 @@ Temporary internal breakpoint used by the @value{GDBN} @code{until} command.
 
 @item finish
 Temporary internal breakpoint used by the @value{GDBN} @code{finish} command.
-@end table
 
+@ifset HPPA
+@item shlib events
+Shared library events.
+@end ifset
+@end table
 @end table
 
 
-@node Set Watchpoints
+@node Set Watchpoints, Set Catchpoints, Set Breaks, Breakpoints
 @subsection Setting watchpoints
-@cindex setting watchpoints
 
+@cindex setting watchpoints
+@cindex software watchpoints
+@cindex hardware watchpoints
 You can use a watchpoint to stop execution whenever the value of an
-expression changes, without having to predict a particular place
-where this may happen.
-
-Watchpoints currently execute two orders of magnitude more slowly than
-other breakpoints, but this can be well worth it to catch errors where
-you have no clue what part of your program is the culprit.
-
-@c FIXME - did Stan mean to @ignore this out?
-@ignore
-Some processors provide special hardware to support watchpoint
-evaluation; @value{GDBN} will use such hardware if it is available,
-and if the support code has been added for that configuration.
-@end ignore
+expression changes, without having to predict a particular place where
+this may happen.
+
+Depending on your system, watchpoints may be implemented in software or
+hardware.  GDB does software watchpointing by single-stepping your
+program and testing the variable's value each time, which is hundreds of
+times slower than normal execution.  (But this may still be worth it, to
+catch errors where you have no clue what part of your program is the
+culprit.)
+
+On some systems, such as HP-UX and Linux, GDB includes support for
+hardware watchpoints, which do not slow down the running of your
+program.
 
 @table @code
 @kindex watch
 @item watch @var{expr}
 Set a watchpoint for an expression.  @value{GDBN} will break when @var{expr}
 is written into by the program and its value changes.
-This can be used with the new trap-generation provided by 
-SPARClite DSU.  DSU will generate traps when a program accesses
-some date or instruction address that is assigned to the debug registers.  
-For the data addresses, DSU facilitates the @code{watch} command.
-However the hardware breakpoint registers can only take two data watchpoints,
-and both watchpoints must be the same kind.  For example, you can set two
-watchpoints with @code{watch} commands, two with @code{rwatch}
-commands, @strong{or} two with @code{awatch} commands, but you cannot set one
-watchpoint with one command and the other with a different command. 
-@value{GBDN} will reject the command if you try to mix watchpoints.
-Delete or disable unused watchpoint commands before setting new ones.
 
 @kindex rwatch
 @item rwatch @var{expr}
-Set a watchpoint that will break when watch @var{args} is read by the program.
-If you use both watchpoints, both must be set with the @code{rwatch}
-command.
+Set a watchpoint that will break when watch @var{expr} is read by the program.
 
 @kindex awatch
 @item awatch @var{expr}
 Set a watchpoint that will break when @var{args} is read and written into
-by the program.  If you use both watchpoints, both must be set with the
-@code{awatch} command.
+by the program.
 
 @kindex info watchpoints
 @item info watchpoints
-This command prints a list of watchpoints and breakpoints; it is the
-same as @code{info break}.
+This command prints a list of watchpoints, breakpoints, and catchpoints;
+it is the same as @code{info break}.
 @end table
 
-@ifclear BARETARGET
+@value{GDBN} sets a @dfn{hardware watchpoint} if possible.  Hardware
+watchpoints execute very quickly, and the debugger reports a change in
+value at the exact instruction where the change occurs.  If @value{GDBN}
+cannot set a hardware watchpoint, it sets a software watchpoint, which
+executes more slowly and reports the change in value at the next
+statement, not the instruction, after the change occurs.
+
+When you issue the @code{watch} command, @value{GDBN} reports
+
+@example
+Hardware watchpoint @var{num}: @var{expr}
+@end example
+
+@noindent
+if it was able to set a hardware watchpoint.
+
+Currently, the @code{awatch} and @code{rwatch} commands can only set
+hardware watchpoints, because accesses to data that don't change the
+value of the watched expression cannot be detected without examining
+every instruction as it is being executed, and @value{GDBN} does not do
+that currently.  If @value{GDBN} finds that it is unable to set a
+hardware breakpoint with the @code{awatch} or @code{rwatch} command, it
+will print a message like this:
+
+@smallexample
+Expression cannot be implemented with read/access watchpoint.
+@end smallexample
+
+Sometimes, @value{GDBN} cannot set a hardware watchpoint because the
+data type of the watched expression is wider than what a hardware
+watchpoint on the target machine can handle.  For example, some systems
+can only watch regions that are up to 4 bytes wide; on such systems you
+cannot set hardware watchpoints for an expression that yields a
+double-precision floating-point number (which is typically 8 bytes
+wide).  As a work-around, it might be possible to break the large region
+into a series of smaller ones and watch them with separate watchpoints.
+
+If you set too many hardware watchpoints, @value{GDBN} might be unable
+to insert all of them when you resume the execution of your program.
+Since the precise number of active watchpoints is unknown until such
+time as the program is about to be resumed, @value{GDBN} might not be
+able to warn you about this when you set the watchpoints, and the
+warning will be printed only when the program is resumed:
+
+@smallexample
+Hardware watchpoint @var{num}: Could not insert watchpoint
+@end smallexample
+
+@noindent
+If this happens, delete or disable some of the watchpoints.
+
+The SPARClite DSU will generate traps when a program accesses some data
+or instruction address that is assigned to the debug registers.  For the
+data addresses, DSU facilitates the @code{watch} command.  However the
+hardware breakpoint registers can only take two data watchpoints, and
+both watchpoints must be the same kind.  For example, you can set two
+watchpoints with @code{watch} commands, two with @code{rwatch} commands,
+@strong{or} two with @code{awatch} commands, but you cannot set one
+watchpoint with one command and the other with a different command.
+@value{GDBN} will reject the command if you try to mix watchpoints.
+Delete or disable unused watchpoint commands before setting new ones.
+
+If you call a function interactively using @code{print} or @code{call},
+any watchpoints you have set will be inactive until GDB reaches another
+kind of breakpoint or the call completes.
+
+@value{GDBN} automatically deletes watchpoints that watch local
+(automatic) variables, or expressions that involve such variables, when
+they go out of scope, that is, when the execution leaves the block in
+which these variables were defined.  In particular, when the program
+being debugged terminates, @emph{all} local variables go out of scope,
+and so only watchpoints that watch global variables remain set.  If you
+rerun the program, you will need to set all such watchpoints again.  One
+way of doing that would be to set a code breakpoint at the entry to the
+@code{main} function and when it breaks, set all the watchpoints.
+
 @quotation
 @cindex watchpoints and threads
 @cindex threads and watchpoints
-@emph{Warning:} in multi-thread programs, watchpoints have only limited
+@ifclear HPPA
+@emph{Warning:} In multi-thread programs, watchpoints have only limited
 usefulness.  With the current watchpoint implementation, @value{GDBN}
 can only watch the value of an expression @emph{in a single thread}.  If
 you are confident that the expression can only change due to the current
@@ -2389,40 +2767,89 @@ thread's activity (and if you are also confident that no other thread
 can become current), then you can use watchpoints as usual.  However,
 @value{GDBN} may not notice when a non-current thread's activity changes
 the expression.
-@end quotation
 @end ifclear
+@ifset HPPA
+@emph{Warning:} In multi-thread programs, software watchpoints have only
+limited usefulness.  If @value{GDBN} creates a software watchpoint, it
+can only watch the value of an expression @emph{in a single thread}.  If
+you are confident that the expression can only change due to the current
+thread's activity (and if you are also confident that no other thread
+can become current), then you can use software watchpoints as usual.
+However, @value{GDBN} may not notice when a non-current thread's
+activity changes the expression.  (Hardware watchpoints, in contrast,
+watch an expression in all threads.)
+@end ifset
+@end quotation
 
-@ifclear CONLY
-@node Exception Handling
-@subsection Breakpoints and exceptions
+@node Set Catchpoints, Delete Breaks, Set Watchpoints, Breakpoints
+@subsection Setting catchpoints
+@cindex catchpoints
 @cindex exception handlers
+@cindex event handling
 
-Some languages, such as @sc{gnu} C++, implement exception handling.  You can
-use @value{GDBN} to examine what caused your program to raise an exception,
-and to list the exceptions your program is prepared to handle at a
-given point in time.
+You can use @dfn{catchpoints} to cause the debugger to stop for certain
+kinds of program events, such as C++ exceptions or the loading of a
+shared library.  Use the @code{catch} command to set a catchpoint.
 
 @table @code
 @kindex catch
-@item catch @var{exceptions}
-You can set breakpoints at active exception handlers by using the
-@code{catch} command.  @var{exceptions} is a list of names of exceptions
-to catch.
+@item catch @var{event}
+Stop when @var{event} occurs.  @var{event} can be any of the following:
+@table @code
+@item throw
+@kindex catch throw
+The throwing of a C++ exception.
+
+@item catch
+@kindex catch catch
+The catching of a C++ exception.
+
+@item exec
+@kindex catch exec
+A call to @code{exec}.  This is currently only available for HP-UX.
+
+@item fork
+@kindex catch fork
+A call to @code{fork}.  This is currently only available for HP-UX.
+
+@item vfork
+@kindex catch vfork
+A call to @code{vfork}.  This is currently only available for HP-UX.
+
+@item load
+@itemx load @var{libname}
+@kindex catch load
+The dynamic loading of any shared library, or the loading of the library
+@var{libname}.  This is currently only available for HP-UX.
+
+@item unload
+@itemx unload @var{libname}
+@kindex catch unload
+The unloading of any dynamically loaded shared library, or the unloading
+of the library @var{libname}.  This is currently only available for HP-UX.
+@end table
+
+@item tcatch @var{event}
+Set a catchpoint that is enabled only for one stop.  The catchpoint is
+automatically deleted after the first time the event is caught.
+
 @end table
 
-You can use @code{info catch} to list active exception handlers.
-@xref{Frame Info, ,Information about a frame}.
+Use the @code{info break} command to list the current catchpoints.
 
-There are currently some limitations to exception handling in @value{GDBN}:
+There are currently some limitations to C++ exception handling
+(@code{catch throw} and @code{catch catch}) in @value{GDBN}:
 
 @itemize @bullet
 @item
 If you call a function interactively, @value{GDBN} normally returns
 control to you when the function has finished executing.  If the call
 raises an exception, however, the call may bypass the mechanism that
-returns control to you and cause your program to simply continue
-running until it hits a breakpoint, catches a signal that @value{GDBN} is
-listening for, or exits.
+returns control to you and cause your program either to abort or to
+simply continue running until it hits a breakpoint, catches a signal
+that @value{GDBN} is listening for, or exits.  This is the case even if
+you set a catchpoint for the exception; catchpoints on exceptions are
+disabled within interactive calls.
 
 @item
 You cannot raise an exception interactively.
@@ -2460,30 +2887,30 @@ that depends on the value of @var{id}, you can stop your program when
 a specific exception is raised.  You can use multiple conditional
 breakpoints to stop your program when any of a number of exceptions are
 raised.
-@end ifclear
 
-@node Delete Breaks
+
+@node Delete Breaks, Disabling, Set Catchpoints, Breakpoints
 @subsection Deleting breakpoints
 
-@cindex clearing breakpoints, watchpoints
-@cindex deleting breakpoints, watchpoints
-It is often necessary to eliminate a breakpoint or watchpoint once it
-has done its job and you no longer want your program to stop there.  This
-is called @dfn{deleting} the breakpoint.  A breakpoint that has been
-deleted no longer exists; it is forgotten.
+@cindex clearing breakpoints, watchpoints, catchpoints
+@cindex deleting breakpoints, watchpoints, catchpoints
+It is often necessary to eliminate a breakpoint, watchpoint, or
+catchpoint once it has done its job and you no longer want your program
+to stop there.  This is called @dfn{deleting} the breakpoint.  A
+breakpoint that has been deleted no longer exists; it is forgotten.
 
 With the @code{clear} command you can delete breakpoints according to
 where they are in your program.  With the @code{delete} command you can
-delete individual breakpoints or watchpoints by specifying their
-breakpoint numbers.
+delete individual breakpoints, watchpoints, or catchpoints by specifying
+their breakpoint numbers.
 
 It is not necessary to delete a breakpoint to proceed past it.  @value{GDBN}
 automatically ignores breakpoints on the first instruction to be executed
 when you continue execution without changing the execution address.
 
 @table @code
-@item clear
 @kindex clear
+@item clear
 Delete any breakpoints at the next instruction to be executed in the
 selected stack frame (@pxref{Selection, ,Selecting a frame}).  When
 the innermost frame is selected, this is a good way to delete a
@@ -2501,30 +2928,30 @@ Delete any breakpoints set at or within the code of the specified line.
 @kindex delete
 @kindex d
 @item delete @r{[}breakpoints@r{]} @r{[}@var{bnums}@dots{}@r{]}
-Delete the breakpoints or watchpoints of the numbers specified as
-arguments.  If no argument is specified, delete all breakpoints (@value{GDBN}
-asks confirmation, unless you have @code{set confirm off}).  You
-can abbreviate this command as @code{d}.
+Delete the breakpoints, watchpoints, or catchpoints of the numbers
+specified as arguments.  If no argument is specified, delete all
+breakpoints (@value{GDBN} asks confirmation, unless you have @code{set
+confirm off}).  You can abbreviate this command as @code{d}.
 @end table
 
-@node Disabling
+@node Disabling, Conditions, Delete Breaks, Breakpoints
 @subsection Disabling breakpoints
 
 @kindex disable breakpoints
 @kindex enable breakpoints
-Rather than deleting a breakpoint or watchpoint, you might prefer to
-@dfn{disable} it.  This makes the breakpoint inoperative as if it had
-been deleted, but remembers the information on the breakpoint so that
-you can @dfn{enable} it again later.
+Rather than deleting a breakpoint, watchpoint, or catchpoint, you might
+prefer to @dfn{disable} it.  This makes the breakpoint inoperative as if
+it had been deleted, but remembers the information on the breakpoint so
+that you can @dfn{enable} it again later.
 
-You disable and enable breakpoints and watchpoints with the
-@code{enable} and @code{disable} commands, optionally specifying one or
-more breakpoint numbers as arguments.  Use @code{info break} or
-@code{info watch} to print a list of breakpoints or watchpoints if you
-do not know which numbers to use.
+You disable and enable breakpoints, watchpoints, and catchpoints with
+the @code{enable} and @code{disable} commands, optionally specifying one
+or more breakpoint numbers as arguments.  Use @code{info break} or
+@code{info watch} to print a list of breakpoints, watchpoints, and
+catchpoints if you do not know which numbers to use.
 
-A breakpoint or watchpoint can have any of four different states of
-enablement:
+A breakpoint, watchpoint, or catchpoint can have any of four different
+states of enablement:
 
 @itemize @bullet
 @item
@@ -2541,8 +2968,8 @@ Enabled for deletion.  The breakpoint stops your program, but
 immediately after it does so it is deleted permanently.
 @end itemize
 
-You can use the following commands to enable or disable breakpoints and
-watchpoints:
+You can use the following commands to enable or disable breakpoints,
+watchpoints, and catchpoints:
 
 @table @code
 @kindex disable breakpoints
@@ -2578,7 +3005,7 @@ breakpoint of its own, but it does not change the state of your other
 breakpoints; see @ref{Continuing and Stepping, ,Continuing and
 stepping}.)
 
-@node Conditions
+@node Conditions, Break Commands, Disabling, Breakpoints
 @subsection Break conditions
 @cindex conditional breakpoints
 @cindex breakpoint conditions
@@ -2618,20 +3045,31 @@ purpose of performing side effects when a breakpoint is reached
 Break conditions can be specified when a breakpoint is set, by using
 @samp{if} in the arguments to the @code{break} command.  @xref{Set
 Breaks, ,Setting breakpoints}.  They can also be changed at any time
-with the @code{condition} command.  The @code{watch} command does not
-recognize the @code{if} keyword; @code{condition} is the only way to
-impose a further condition on a watchpoint.
+with the @code{condition} command.
+@ifclear HPPA
+@c The watch command now seems to recognize the if keyword.
+@c catch doesn't, though.
+The @code{watch} command does not recognize the @code{if} keyword;
+@code{condition} is the only way to impose a further condition on a
+watchpoint.
+@end ifclear
+@ifset HPPA
+You can also use the @code{if} keyword with the @code{watch} command.
+The @code{catch} command does not recognize the @code{if} keyword;
+@code{condition} is the only way to impose a further condition on a
+catchpoint.
+@end ifset
 
 @table @code
 @kindex condition
 @item condition @var{bnum} @var{expression}
-Specify @var{expression} as the break condition for breakpoint or
-watchpoint number @var{bnum}.  After you set a condition, breakpoint
-@var{bnum} stops your program only if the value of @var{expression} is
-true (nonzero, in C).  When you use @code{condition}, @value{GDBN}
-checks @var{expression} immediately for syntactic correctness, and to
-determine whether symbols in it have referents in the context of your
-breakpoint.
+Specify @var{expression} as the break condition for breakpoint,
+watchpoint, or catchpoint number @var{bnum}.  After you set a condition,
+breakpoint @var{bnum} stops your program only if the value of
+@var{expression} is true (nonzero, in C).  When you use
+@code{condition}, @value{GDBN} checks @var{expression} immediately for
+syntactic correctness, and to determine whether symbols in it have
+referents in the context of your breakpoint.
 @c FIXME so what does GDB do if there is no referent?  Moreover, what
 @c about watchpoints?
 @value{GDBN} does
@@ -2681,14 +3119,17 @@ is decremented each time.  @xref{Convenience Vars, ,Convenience
 variables}.
 @end table
 
-@node Break Commands
+Ignore counts apply to breakpoints, watchpoints, and catchpoints.
+
+
+@node Break Commands, Breakpoint Menus, Conditions, Breakpoints
 @subsection Breakpoint command lists
 
 @cindex breakpoint commands
-You can give any breakpoint (or watchpoint) a series of commands to
-execute when your program stops due to that breakpoint.  For example, you
-might want to print the values of certain expressions, or enable other
-breakpoints.
+You can give any breakpoint (or watchpoint or catchpoint) a series of
+commands to execute when your program stops due to that breakpoint.  For
+example, you might want to print the values of certain expressions, or
+enable other breakpoints.
 
 @table @code
 @kindex commands
@@ -2704,8 +3145,8 @@ To remove all commands from a breakpoint, type @code{commands} and
 follow it immediately with @code{end}; that is, give no commands.
 
 With no @var{bnum} argument, @code{commands} refers to the last
-breakpoint or watchpoint set (not to the breakpoint most recently
-encountered).
+breakpoint, watchpoint, or catchpoint set (not to the breakpoint most
+recently encountered).
 @end table
 
 Pressing @key{RET} as a means of repeating the last @value{GDBN} command is
@@ -2762,8 +3203,7 @@ cont
 end
 @end example
 
-@ifclear CONLY
-@node Breakpoint Menus
+@node Breakpoint Menus,  , Break Commands, Breakpoints
 @subsection Breakpoint menus
 @cindex overloading
 @cindex symbol overloading
@@ -2788,6 +3228,7 @@ We choose three particular definitions of that function name:
 
 @c FIXME! This is likely to change to show arg type lists, at least
 @smallexample
+@group
 (@value{GDBP}) b String::after
 [0] cancel
 [1] all
@@ -2805,8 +3246,8 @@ Multiple breakpoints were set.
 Use the "delete" command to delete unwanted
  breakpoints.
 (@value{GDBP})
+@end group
 @end smallexample
-@end ifclear
 
 @c  @ifclear BARETARGET
 @c  @node Error in Breakpoints
@@ -2838,7 +3279,7 @@ Use the "delete" command to delete unwanted
 @c  @end enumerate
 @c  @end ifclear
 
-@node Continuing and Stepping
+@node Continuing and Stepping, Signals, Breakpoints, Stopping
 @section Continuing and stepping
 
 @cindex stepping
@@ -2848,16 +3289,10 @@ Use the "delete" command to delete unwanted
 completes normally.  In contrast, @dfn{stepping} means executing just
 one more ``step'' of your program, where ``step'' may mean either one
 line of source code, or one machine instruction (depending on what
-particular command you use).  Either when continuing
-or when stepping, your program may stop even sooner, due to 
-@ifset BARETARGET
-a breakpoint.
-@end ifset
-@ifclear BARETARGET
-a breakpoint or a signal.  (If due to a signal, you may want to use
-@code{handle}, or use @samp{signal 0} to resume execution.
-@xref{Signals, ,Signals}.)
-@end ifclear
+particular command you use).  Either when continuing or when stepping,
+your program may stop even sooner, due to a breakpoint or a signal.  (If
+due to a signal, you may want to use @code{handle}, or use @samp{signal
+0} to resume execution.  @xref{Signals, ,Signals}.)
 
 @table @code
 @kindex continue
@@ -2886,17 +3321,11 @@ calling function; or @code{jump} (@pxref{Jumping, ,Continuing at a
 different address}) to go to an arbitrary location in your program.
 
 A typical technique for using stepping is to set a breakpoint
-@ifclear CONLY
-(@pxref{Breakpoints, ,Breakpoints; watchpoints; and exceptions})
-@end ifclear
-@ifset CONLY
-(@pxref{Breakpoints, ,Breakpoints and watchpoints})
-@end ifset
-at the
-beginning of the function or the section of your program where a
-problem is believed to lie, run your program until it stops at that
-breakpoint, and then step through the suspect area, examining the
-variables that are interesting, until you see the problem happen.
+(@pxref{Breakpoints, ,Breakpoints; watchpoints; and catchpoints}) at the
+beginning of the function or the section of your program where a problem
+is believed to lie, run your program until it stops at that breakpoint,
+and then step through the suspect area, examining the variables that are
+interesting, until you see the problem happen.
 
 @table @code
 @kindex step
@@ -2933,21 +3362,18 @@ was any debugging information about the routine.
 
 @item step @var{count}
 Continue running as in @code{step}, but do so @var{count} times.  If a
-breakpoint is reached,
-@ifclear BARETARGET
-or a signal not related to stepping occurs before @var{count} steps,
-@end ifclear
-stepping stops right away.
+breakpoint is reached, or a signal not related to stepping occurs before
+@var{count} steps, stepping stops right away.
 
 @kindex next
 @kindex n
 @item next @r{[}@var{count}@r{]}
 Continue to the next source line in the current (innermost) stack frame.
-This is similar to @code{step}, but function calls that appear within the line
-of code are executed without stopping.  Execution stops when control
-reaches a different line of code at the original stack level that was 
-executing when you gave the @code{next} command.  This command is abbreviated
-@code{n}.
+This is similar to @code{step}, but function calls that appear within
+the line of code are executed without stopping.  Execution stops when
+control reaches a different line of code at the original stack level
+that was executing when you gave the @code{next} command.  This command
+is abbreviated @code{n}.
 
 An argument @var{count} is a repeat count, as for @code{step}.
 
@@ -2961,7 +3387,7 @@ An argument @var{count} is a repeat count, as for @code{step}.
 
 The @code{next} command now only stops at the first instruction of a
 source line.  This prevents the multiple stops that used to occur in
-swtch statements, for loops, etc. 
+switch statements, for loops, etc. 
 
 @kindex finish
 @item finish
@@ -2972,9 +3398,9 @@ Contrast this with the @code{return} command (@pxref{Returning,
 ,Returning from a function}).
 
 @kindex until
-@itemx u
 @kindex u
 @item until
+@itemx u
 Continue running until a source line past the current line, in the
 current stack frame, is reached.  This command is used to avoid single
 stepping through a loop more than once.  It is like the @code{next}
@@ -3049,8 +3475,7 @@ proceed until the function returns.
 An argument is a repeat count, as in @code{next}.
 @end table
 
-@ifset POSIX
-@node Signals
+@node Signals, Thread Stops, Continuing and Stepping, Stopping
 @section Signals
 @cindex signals
 
@@ -3143,10 +3568,8 @@ execution; but your program would probably terminate immediately as
 a result of the fatal signal once it saw the signal.  To prevent this,
 you can continue with @samp{signal 0}.  @xref{Signaling, ,Giving your
 program a signal}. 
-@end ifset
 
-@ifclear BARETARGET
-@node Thread Stops
+@node Thread Stops,  , Signals, Stopping
 @section Stopping and starting multi-thread programs
 
 When your program has multiple threads (@pxref{Threads,, Debugging
@@ -3208,9 +3631,30 @@ You might even find your program stopped in another thread after
 continuing or even single-stepping.  This happens whenever some other
 thread runs into a breakpoint, a signal, or an exception before the
 first thread completes whatever you requested.
-@end ifclear
 
-@node Stack
+On some OSes, you can lock the OS scheduler and thus allow only a single
+thread to run.
+
+@table @code
+@item set scheduler-locking @var{mode}
+Set the scheduler locking mode.  If it is @code{off}, then there is no
+locking and any thread may run at any time.  If @code{on}, then only the
+current thread may run when the inferior is resumed.  The @code{step}
+mode optimizes for single-stepping.  It stops other threads from
+``seizing the prompt'' by preempting the current thread while you are
+stepping.  Other threads will only rarely (or never) get a chance to run
+when you step.  They are more likely to run when you ``next'' over a
+function call, and they are completely free to run when you use commands
+like ``continue'', ``until'', or ``finish''.  However, unless another
+thread hits a breakpoint during its timeslice, they will never steal the
+GDB prompt away from the thread that you are debugging.
+
+@item show scheduler-locking
+Display the current scheduler locking mode.
+@end table
+
+
+@node Stack, Source, Stopping, Top
 @chapter Examining the Stack
 
 When your program has stopped, the first thing you need to know is where it
@@ -3246,12 +3690,11 @@ currently executing frame and describes it briefly, similar to the
 * Backtrace::                   Backtraces
 * Selection::                   Selecting a frame
 * Frame Info::                  Information on a frame
-@ifset MIPS
-* MIPS Stack::                  MIPS machines and the function stack
-@end ifset
+* Alpha/MIPS Stack::            Alpha and MIPS machines and the function stack
+
 @end menu
 
-@node Frames
+@node Frames, Backtrace, Stack, Stack
 @section Stack frames
 
 @cindex frame
@@ -3307,7 +3750,7 @@ no provision for frameless functions elsewhere in the stack.
 @item frame @var{args}
 The @code{frame} command allows you to move from one stack frame to another, 
 and to print the stack frame you select.  @var{args} may be either the
-address of the frame of the stack frame number.  Without an argument, 
+address of the frame or the stack frame number.  Without an argument, 
 @code{frame} prints the current stack frame.  
 
 @kindex select-frame
@@ -3317,9 +3760,12 @@ to another without printing the frame.  This is the silent version of
 @code{frame}.
 @end table
 
-@node Backtrace
+@node Backtrace, Selection, Frames, Stack
 @section Backtraces
 
+@cindex backtraces
+@cindex tracebacks
+@cindex stack traces
 A backtrace is a summary of how your program got where it is.  It shows one
 line per frame, for many frames, starting with the currently executing
 frame (frame zero), followed by its caller (frame one), and on up the
@@ -3377,7 +3823,7 @@ The display for frame zero does not begin with a program counter
 value, indicating that your program has stopped at the beginning of the
 code for line @code{993} of @code{builtin.c}.
 
-@node Selection
+@node Selection, Frame Info, Backtrace, Stack
 @section Selecting a frame
 
 Most commands for examining the stack and other data in your program work on
@@ -3403,7 +3849,7 @@ impossible for @value{GDBN} to assign numbers properly to all frames.  In
 addition, this can be useful when your program has multiple stacks and
 switches between them.
 
-@ifclear H8EXCLUSIVE
+@ifclear HPPA
 On the SPARC architecture, @code{frame} needs two addresses to
 select an arbitrary frame: a frame pointer and a stack pointer.
 
@@ -3465,7 +3911,7 @@ in @value{GDBN} command scripts, where the output might be unnecessary and
 distracting.
 @end table
 
-@node Frame Info
+@node Frame Info, Alpha/MIPS Stack, Selection, Stack
 @section Information about a frame
 
 There are several other commands to print information about the selected
@@ -3487,7 +3933,7 @@ argument, this command is used to select a stack frame.
 This command prints a verbose description of the selected stack frame,
 including:
 
-@itemize
+@itemize @bullet
 @item 
 the address of the frame 
 @item
@@ -3526,7 +3972,7 @@ Print the local variables of the selected frame, each on a separate
 line.  These are all variables (declared either static or automatic)
 accessible at the point of execution of the selected frame.
 
-@ifclear CONLY
+@ifclear HPPA
 @kindex info catch
 @cindex catch exceptions
 @cindex exception handlers
@@ -3535,19 +3981,20 @@ Print a list of all the exception handlers that are active in the
 current stack frame at the current point of execution.  To see other
 exception handlers, visit the associated frame (using the @code{up},
 @code{down}, or @code{frame} commands); then type @code{info catch}.
-@xref{Exception Handling, ,Breakpoints and exceptions}.
+@xref{Set Catchpoints, , Setting catchpoints}.
 @end ifclear
 @end table
 
-@ifset MIPS
-@node MIPS Stack
-@section MIPS machines and the function stack
+@node Alpha/MIPS Stack,  , Frame Info, Stack
+@section MIPS/Alpha machines and the function stack
 
+@cindex stack on Alpha
 @cindex stack on MIPS
+@cindex Alpha stack
 @cindex MIPS stack
-MIPS based computers use an unusual stack frame, which sometimes
-requires @value{GDBN} to search backward in the object code to find the
-beginning of a function.
+Alpha- and MIPS-based computers use an unusual stack frame, which
+sometimes requires @value{GDBN} to search backward in the object code to
+find the beginning of a function.
 
 @cindex response time, MIPS debugging
 To improve response time (especially for embedded applications, where
@@ -3556,7 +4003,7 @@ you may want to limit the size of this search, using one of these
 commands:
 
 @table @code
-@cindex @code{heuristic-fence-post} (MIPS)
+@cindex @code{heuristic-fence-post} (Alpha,MIPS)
 @item set heuristic-fence-post @var{limit}
 Restrict @value{GDBN} to examining at most @var{limit} bytes in its search
 for the beginning of a function.  A value of @var{0} (the default)
@@ -3570,10 +4017,10 @@ Display the current limit.
 
 @noindent
 These commands are available @emph{only} when @value{GDBN} is configured
-for debugging programs on MIPS processors.
-@end ifset
+for debugging programs on Alpha or MIPS processors.
 
-@node Source
+
+@node Source, Data, Stack, Top
 @chapter Examining Source Files
 
 @value{GDBN} can print parts of your program's source, since the debugging
@@ -3584,23 +4031,18 @@ the line where it stopped.  Likewise, when you select a stack frame
 execution in that frame has stopped.  You can print other portions of
 source files by explicit command.
 
-@ifclear DOSHOST
-If you use @value{GDBN} through its @sc{gnu} Emacs interface, you may prefer 
-to use
-Emacs facilities to view source; @pxref{Emacs, ,Using @value{GDBN} under @sc{gnu} Emacs}.
-@end ifclear
+If you use @value{GDBN} through its @sc{gnu} Emacs interface, you may
+prefer to use Emacs facilities to view source; @pxref{Emacs, ,Using
+@value{GDBN} under @sc{gnu} Emacs}.
 
 @menu
 * List::                        Printing source lines
-@ifclear DOSHOST
 * Search::                      Searching source files
-@end ifclear
-
 * Source Path::                 Specifying source directories
 * Machine Code::                Source and machine code
 @end menu
 
-@node List
+@node List, Search, Source, Source
 @section Printing source lines
 
 @kindex list
@@ -3717,8 +4159,7 @@ Specifies the line containing the program address @var{address}.
 @var{address} may be any expression.
 @end table
 
-@ifclear DOSHOST
-@node Search
+@node Search, Source Path, List, Source
 @section Searching source files
 @cindex searching
 @kindex reverse-search
@@ -3743,9 +4184,8 @@ with the one before the last line listed and going backward, for a match
 for @var{regexp}.  It lists the line that is found.  You can abbreviate
 this command as @code{rev}.
 @end table
-@end ifclear
 
-@node Source Path
+@node Source Path, Machine Code, Search, Source
 @section Specifying source directories
 
 @cindex source path
@@ -3825,7 +4265,7 @@ directories you want in the source path.  You can add all the
 directories in one command.
 @end enumerate
 
-@node Machine Code
+@node Machine Code,  , Source Path, Source
 @section Source and machine code
 
 You can use the command @code{info line} to map source lines to program
@@ -3884,49 +4324,43 @@ surrounding this value.  Two arguments specify a range of addresses
 (first inclusive, second exclusive) to dump.
 @end table
 
-@ifclear H8EXCLUSIVE
-We can use @code{disassemble} to inspect the object code
-range shown in the last @code{info line} example (the example
-shows SPARC machine instructions):
-
+The following example shows the disassembly of a range of addresses of
+HP PA-RISC 2.0 code:
 
 @smallexample
-(@value{GDBP}) disas 0x63e4 0x6404
-Dump of assembler code from 0x63e4 to 0x6404:
-0x63e4 <builtin_init+5340>:     ble 0x63f8 <builtin_init+5360>
-0x63e8 <builtin_init+5344>:     sethi %hi(0x4c00), %o0
-0x63ec <builtin_init+5348>:     ld [%i1+4], %o0
-0x63f0 <builtin_init+5352>:     b 0x63fc <builtin_init+5364>
-0x63f4 <builtin_init+5356>:     ld [%o0+4], %o0
-0x63f8 <builtin_init+5360>:     or %o0, 0x1a4, %o0
-0x63fc <builtin_init+5364>:     call 0x9288 <path_search>
-0x6400 <builtin_init+5368>:     nop
+(@value{GDBP}) disas 0x32c4 0x32e4
+Dump of assembler code from 0x32c4 to 0x32e4:
+0x32c4 <main+204>:      addil 0,dp
+0x32c8 <main+208>:      ldw 0x22c(sr0,r1),r26
+0x32cc <main+212>:      ldil 0x3000,r31
+0x32d0 <main+216>:      ble 0x3f8(sr4,r31)
+0x32d4 <main+220>:      ldo 0(r31),rp
+0x32d8 <main+224>:      addil -0x800,dp
+0x32dc <main+228>:      ldo 0x588(r1),r26
+0x32e0 <main+232>:      ldil 0x3000,r31
 End of assembler dump.
 @end smallexample
-@end ifclear
 
-@ifset H8EXCLUSIVE
-For example, here is the beginning of the output for the
-disassembly of a function @code{fact}:
+Some architectures have more than one commonly-used set of instruction
+mnemonics or other syntax.
+
+@table @code
+@kindex set assembly-language
+@cindex assembly instructions
+@cindex instructions, assembly
+@cindex machine instructions
+@cindex listing machine instructions
+@item set assembly-language @var{instruction-set}
+Select the instruction set to use when disassembling the
+program via the @code{disassemble} or @code{x/i} commands.
 
+Currently this command is only defined for the Intel x86 family.  You
+can set @var{instruction-set} to either @code{i386} or @code{i8086}.
+The default is @code{i386}.
+@end table
 
-@smallexample
-(@value{GDBP}) disas fact
-Dump of assembler code for function fact:
-to 0x808c:
-0x802c <fact>: 6d f2           mov.w r2,@@-r7
-0x802e <fact+2>:  6d f3                mov.w r3,@@-r7
-0x8030 <fact+4>:  6d f6                mov.w r6,@@-r7
-0x8032 <fact+6>:  0d 76                mov.w r7,r6
-0x8034 <fact+8>:  6f 70 00 08  mov.w @@(0x8,r7),r0
-0x8038 <fact+12>  19 11                sub.w   r1,r1
- .
- .
- . 
-@end smallexample
-@end ifset
 
-@node Data
+@node Data, Languages, Source, Top
 @chapter Examining Data
 
 @cindex printing data
@@ -3937,12 +4371,10 @@ to 0x808c:
 @c document because it is nonstandard...  Under Epoch it displays in a
 @c different window or something like that.
 The usual way to examine data in your program is with the @code{print}
-command (abbreviated @code{p}), or its synonym @code{inspect}.  
-@ifclear CONLY
-It evaluates and prints the value of an expression of the language your
-program is written in (@pxref{Languages, ,Using @value{GDBN} with Different
-Languages}).
-@end ifclear
+command (abbreviated @code{p}), or its synonym @code{inspect}.  It
+evaluates and prints the value of an expression of the language your
+program is written in (@pxref{Languages, ,Using @value{GDBN} with
+Different Languages}).
 
 @table @code
 @item print @var{exp}
@@ -3964,13 +4396,10 @@ A more low-level way of examining data is with the @code{x} command.
 It examines data in memory at a specified address and prints it in a
 specified format.  @xref{Memory, ,Examining memory}.
 
-If you are interested in information about types, or about how the fields
-of a struct
-@ifclear CONLY
-or class
-@end ifclear
-are declared, use the @code{ptype @var{exp}}
-command rather than @code{print}. @xref{Symbols, ,Examining the Symbol Table}.
+If you are interested in information about types, or about how the
+fields of a struct or class are declared, use the @code{ptype @var{exp}}
+command rather than @code{print}. @xref{Symbols, ,Examining the Symbol
+Table}.
 
 @menu
 * Expressions::                 Expressions
@@ -3983,12 +4412,10 @@ command rather than @code{print}. @xref{Symbols, ,Examining the Symbol Table}.
 * Value History::               Value history
 * Convenience Vars::            Convenience variables
 * Registers::                   Registers
-@ifclear HAVE-FLOAT
 * Floating Point Hardware::     Floating point hardware
-@end ifclear
 @end menu
 
-@node Expressions
+@node Expressions, Variables, Data, Data
 @section Expressions
 
 @cindex expressions
@@ -4000,11 +4427,10 @@ and string constants.  It unfortunately does not include symbols defined
 by preprocessor @code{#define} commands.
 
 @value{GDBN} now supports array constants in expressions input by
-the user.  The syntax is @var{element, element@dots{}}.  For example,
-you can now use the command @code{print @{1 2 3@}} to build up an array in 
+the user.  The syntax is @var{@{element, element@dots{}@}}.  For example,
+you can now use the command @code{print @{1, 2, 3@}} to build up an array in 
 memory that is malloc'd in the target program.
 
-@ifclear CONLY
 Because C is so widespread, most of the expressions shown in examples in
 this manual are in C.  @xref{Languages, , Using @value{GDBN} with Different
 Languages}, for information on how to use expressions in other
@@ -4017,7 +4443,6 @@ Casts are supported in all languages, not just in C, because it is so
 useful to cast a number into a pointer in order to examine a structure
 at that address in memory.
 @c FIXME: casts supported---Mod2 true?
-@end ifclear
 
 @value{GDBN} supports these operators, in addition to those common
 to programming languages:
@@ -4043,7 +4468,7 @@ a cast).  This construct is allowed regardless of what kind of data is
 normally supposed to reside at @var{addr}.
 @end table
 
-@node Variables
+@node Variables, Arrays, Expressions, Data
 @section Program variables
 
 The most common kind of expression to use is the name of a variable
@@ -4052,14 +4477,14 @@ in your program.
 Variables in expressions are understood in the selected stack frame
 (@pxref{Selection, ,Selecting a frame}); they must be either:
 
-@itemize
+@itemize @bullet
 @item
-global (or static)
+global (or file-static)
 @end itemize
 
 @noindent or 
 
-@itemize
+@itemize @bullet
 @item
 visible according to the scope rules of the
 programming language from the point of execution in that frame
@@ -4114,14 +4539,12 @@ to print a global value of @code{x} defined in @file{f2.c}:
 (@value{GDBP}) p 'f2.c'::x
 @end example
 
-@ifclear CONLY
 @cindex C++ scope resolution
 This use of @samp{::} is very rarely in conflict with the very similar
 use of the same notation in C++.  @value{GDBN} also supports use of the C++
 scope resolution operator in @value{GDBN} expressions.
 @c FIXME: Um, so what happens in one of those rare cases where it's in
 @c conflict??  --mew
-@end ifclear
 
 @cindex wrong values
 @cindex variable values, wrong
@@ -4139,7 +4562,11 @@ also takes more than one machine instruction to destroy a stack frame;
 after you begin stepping through that group of instructions, local
 variable definitions may be gone.
 
-@node Arrays
+This may also happen when the compiler does significant optimizations.
+To be sure of always seeing accurate values, turn off all optimization
+when compiling.
+
+@node Arrays, Output Formats, Variables, Data
 @section Artificial arrays
 
 @cindex artificial array
@@ -4211,7 +4638,7 @@ p dtab[$i++]->fv
 @dots{}
 @end example
 
-@node Output Formats
+@node Output Formats, Memory, Arrays, Data
 @section Output formats
 
 @cindex formatted output
@@ -4280,7 +4707,7 @@ To reprint the last value in the value history with a different format,
 you can use the @code{print} command with just a format and no
 expression.  For example, @samp{p/x} reprints the last value in hex.
 
-@node Memory
+@node Memory, Auto Display, Output Formats, Data
 @section Examining memory
 
 You can use the command @code{x} (for ``examine'') to examine memory in
@@ -4385,7 +4812,7 @@ If the @code{x} command has a repeat count, the address and contents saved
 are from the last memory unit printed; this is not the same as the last
 address printed if several units were printed on the last line of output.
 
-@node Auto Display
+@node Auto Display, Print Settings, Memory, Data
 @section Automatic display
 @cindex automatic display
 @cindex display of expressions
@@ -4481,7 +4908,7 @@ there is no variable @code{last_char}---the display is disabled
 automatically.  The next time your program stops where @code{last_char}
 is meaningful, you can enable the display expression once again.
 
-@node Print Settings
+@node Print Settings, Value History, Auto Display, Data
 @section Print settings
 
 @cindex format options
@@ -4734,7 +5161,6 @@ $1 = @{it = Tree, form = @{...@}@}
 @end smallexample
 @end table
 
-@ifclear CONLY
 @need 1000
 @noindent
 These settings are of interest when debugging C++ programs:
@@ -4777,7 +5203,12 @@ Allow @value{GDBN} to choose a decoding style by inspecting your program.
 
 @item gnu
 Decode based on the @sc{gnu} C++ compiler (@code{g++}) encoding algorithm.  
+@ifclear HPPA
 This is the default.
+@end ifclear
+
+@item hp
+Decode based on the HP ANSI C++ (@code{aCC}) encoding algorithm.
 
 @item lucid
 Decode based on the Lucid C++ compiler (@code{lcc}) encoding algorithm.
@@ -4788,9 +5219,8 @@ Decode using the algorithm in the @cite{C++ Annotated Reference Manual}.
 debugging @code{cfront}-generated executables.  @value{GDBN} would
 require further enhancement to permit that.
 
-@item foo
-Show the list of formats.
 @end table
+If you omit @var{style}, you will see a list of possible formats.
 
 @kindex show demangle-style
 @item show demangle-style
@@ -4823,10 +5253,15 @@ Do not print static members when displaying a C++ object.
 @item show print static-members
 Show whether C++ static members are printed, or not.
 
+@c These don't work with HP ANSI C++ yet.
 @kindex set print vtbl
 @item set print vtbl
 @itemx set print vtbl on
 Pretty print C++ virtual function tables.  The default is off.
+@ifset HPPA
+(The @code{vtbl} commands do not work on programs compiled with the HP
+ANSI C++ compiler (@code{aCC}).)
+@end ifset
 
 @item set print vtbl off
 Do not pretty print C++ virtual function tables.
@@ -4835,9 +5270,8 @@ Do not pretty print C++ virtual function tables.
 @item show print vtbl
 Show whether C++ virtual function tables are pretty printed, or not.
 @end table
-@end ifclear
 
-@node Value History
+@node Value History, Convenience Vars, Print Settings, Data
 @section Value history
 
 @cindex value history
@@ -4914,7 +5348,7 @@ values are available, @code{show values +} produces no display.
 Pressing @key{RET} to repeat @code{show values @var{n}} has exactly the
 same effect as @samp{show values +}.
 
-@node Convenience Vars
+@node Convenience Vars, Registers, Value History, Data
 @section Convenience variables
 
 @cindex convenience variables
@@ -4995,7 +5429,13 @@ The variable @code{$_exitcode} is automatically set to the exit code when
 the program being debugged terminates.
 @end table
 
-@node Registers
+@ifset HPPA
+If you refer to a function or variable name that begins with a dollar
+sign, @value{GDBN} searches for a user or system name first, before it
+searches for a convenience variable.
+@end ifset
+
+@node Registers, Floating Point Hardware, Convenience Vars, Data
 @section Registers
 
 @cindex registers
@@ -5093,7 +5533,6 @@ code generated by your compiler.  If some registers are not saved, or if
 @value{GDBN} is unable to locate the saved registers, the selected stack
 frame makes no difference.
 
-@ifset AMD29K
 @table @code
 @kindex set rstack_high_address
 @cindex AMD 29K register stack
@@ -5114,10 +5553,8 @@ hexadecimal.
 Display the current limit of the register stack, on AMD 29000 family
 processors.
 @end table
-@end ifset
 
-@ifclear HAVE-FLOAT
-@node Floating Point Hardware
+@node Floating Point Hardware,  , Registers, Data
 @section Floating point hardware
 @cindex floating point
 
@@ -5132,21 +5569,17 @@ point unit.  The exact contents and layout vary depending on the
 floating point chip.  Currently, @samp{info float} is supported on
 the ARM and x86 machines.
 @end table
-@end ifclear
 
-@ifclear CONLY
-@node Languages
+@node Languages, Symbols, Data, Top
 @chapter Using @value{GDBN} with Different Languages
 @cindex languages
 
-@ifset MOD2
 Although programming languages generally have common aspects, they are
 rarely expressed in the same manner.  For instance, in ANSI C,
 dereferencing a pointer @code{p} is accomplished by @code{*p}, but in
 Modula-2, it is accomplished by @code{p^}.  Values can also be
 represented (and displayed) differently.  Hex numbers in C appear as 
 @samp{0x1ae}, while in Modula-2 they appear as @samp{1AEH}.
-@end ifset
 
 @cindex working language
 Language-specific information is built into @value{GDBN} for some languages,
@@ -5159,14 +5592,11 @@ language}.
 @menu
 * Setting::                     Switching between source languages
 * Show::                        Displaying the language
-@ifset MOD2
 * Checks::                      Type and range checks
-@end ifset
-
 * Support::                     Supported languages
 @end menu
 
-@node Setting
+@node Setting, Show, Languages, Languages
 @section Switching between source languages
 
 There are two ways to control the working language---either have @value{GDBN}
@@ -5198,33 +5628,38 @@ program, and will display that source code, not the generated C code.
 * Automatically::               Having @value{GDBN} infer the source language
 @end menu
 
-@node Filenames
+@node Filenames, Manually, Setting, Setting
 @subsection List of filename extensions and languages
 
 If a source file name ends in one of the following extensions, then
 @value{GDBN} infers that its language is the one indicated.
 
 @table @file
-@ifset MOD2
-@item .mod
-Modula-2 source file
-@end ifset
 
 @item .c
 C source file
 
 @item .C
 @itemx .cc
-@itemx .cxx
-@itemx .cpp
 @itemx .cp
+@itemx .cpp
+@itemx .cxx
 @itemx .c++
 C++ source file
 
+@item .f
+@itemx .F
+Fortran source file
+
+@ifclear HPPA
 @item .ch
 @itemx .c186
 @itemx .c286
 CHILL source file.
+@end ifclear
+
+@item .mod
+Modula-2 source file
 
 @item .s
 @itemx .S
@@ -5232,7 +5667,10 @@ Assembler source file.  This actually behaves almost like C, but
 @value{GDBN} does not skip over function prologues when stepping.
 @end table
 
-@node Manually
+In addition, you may set the language associated with a filename
+extension.  @xref{Show, , Displaying the language}.
+
+@node Manually, Automatically, Filenames, Setting
 @subsection Setting the working language
 
 If you allow @value{GDBN} to set the language automatically,
@@ -5243,15 +5681,9 @@ your program.
 If you wish, you may set the language manually.  To do this, issue the
 command @samp{set language @var{lang}}, where @var{lang} is the name of
 a language, such as 
-@ifclear MOD2
-@code{c}.
-@end ifclear
-@ifset MOD2
 @code{c} or @code{modula-2}.
-@end ifset
 For a list of the supported languages, type @samp{set language}.
 
-@ifset MOD2
 Setting the language manually prevents @value{GDBN} from updating the working
 language automatically.  This can lead to confusion if you try
 to debug a program when the working language is not the same as the
@@ -5269,9 +5701,8 @@ might not have the effect you intended.  In C, this means to add
 @code{b} and @code{c} and place the result in @code{a}.  The result
 printed would be the value of @code{a}.  In Modula-2, this means to compare
 @code{a} to the result of @code{b+c}, yielding a @code{BOOLEAN} value.
-@end ifset
 
-@node Automatically
+@node Automatically,  , Manually, Setting
 @subsection Having @value{GDBN} infer the source language
 
 To have @value{GDBN} set the working language automatically, use
@@ -5290,7 +5721,7 @@ written in one source language can be used by a main program written in
 a different source language.  Using @samp{set language auto} in this
 case frees you from having to set the working language manually.
 
-@node Show
+@node Show, Checks, Setting, Languages
 @section Displaying the language
 
 The following commands help you find out which language is the
@@ -5317,8 +5748,22 @@ Display the source language of this source file.
 information listed here.
 @end table
 
-@ifset MOD2
-@node Checks
+In unusual circumstances, you may have source files with extensions
+not in the standard list.  You can then set the extension associated
+with a language explicitly:
+
+@kindex set extension-language
+@kindex info extensions
+@table @code
+@item set extension-language @var{.ext} @var{language}
+Set source files with extension @var{.ext} to be assumed to be in
+the source language @var{language}.
+
+@item info extensions
+List all the filename extensions and the associated languages.
+@end table
+
+@node Checks, Support, Show, Languages
 @section Type and range checking
 
 @quotation
@@ -5351,7 +5796,7 @@ for the default settings of supported languages.
 
 @cindex type checking
 @cindex checks, type
-@node Type Checking
+@node Type Checking, Range Checking, Checks, Checks
 @subsection An overview of type checking
 
 Some languages, such as Modula-2, are strongly typed, meaning that the
@@ -5422,7 +5867,7 @@ is setting it automatically.
 
 @cindex range checking
 @cindex checks, range
-@node Range Checking
+@node Range Checking,  , Type Checking, Checks
 @subsection An overview of range checking
 
 In some languages (such as Modula-2), it is an error to exceed the
@@ -5480,17 +5925,12 @@ systems).
 Show the current setting of the range checker, and whether or not it is
 being set automatically by @value{GDBN}.
 @end table
-@end ifset
 
-@node Support
+@node Support,  , Checks, Languages
 @section Supported languages
 
-@ifset MOD2
-@value{GDBN} 4 supports C, C++, and Modula-2.
-@end ifset
-@ifclear MOD2
-@value{GDBN} 4 supports C, and C++.
-@end ifclear
+@value{GDBN} supports C, C++, Fortran, Java, Chill, assembly, and Modula-2.
+@c This is false ...
 Some @value{GDBN} features may be used in expressions regardless of the
 language you use: the @value{GDBN} @code{@@} and @code{::} operators,
 and the @samp{@{type@}addr} construct (@pxref{Expressions,
@@ -5505,94 +5945,86 @@ formats should look like for different languages.  There are many good
 books written on each of these languages; please look to these for a
 language reference or tutorial.
 
-@ifset MOD2
 @menu
-* C::                           C and C++
-* Modula-2::                    Modula-2
+* C::           C and C++
+* Modula-2::    Modula-2
+* Chill::      Chill
 @end menu
 
-@node C
+@node C, Modula-2, , Support
 @subsection C and C++
+
 @cindex C and C++
 @cindex expressions in C or C++
 
 Since C and C++ are so closely related, many features of @value{GDBN} apply
 to both languages.  Whenever this is the case, we discuss those languages
 together.
-@end ifset
-@ifclear MOD2
-@c Cancel this below, under same condition, at end of this chapter!
-@raisesections
-@end ifclear
 
+@ifclear HPPA
 @cindex C++
 @kindex g++
 @cindex @sc{gnu} C++
-The C++ debugging facilities are jointly implemented by the @sc{gnu} C++
+The C++ debugging facilities are jointly implemented by the C++
 compiler and @value{GDBN}.  Therefore, to debug your C++ code
-effectively, you must compile your C++ programs with the @sc{gnu} C++
-compiler, @code{g++}.
+effectively, you must compile your C++ programs with a supported
+C++ compiler, such as @sc{gnu} @code{g++}, or the HP ANSI C++
+compiler (@code{aCC}).
 
-For best results when debugging C++ programs, use the stabs debugging
+For best results when using @sc{gnu} C++, use the stabs debugging
 format.  You can select that format explicitly with the @code{g++}
 command-line options @samp{-gstabs} or @samp{-gstabs+}.  See
-@ref{Debugging Options,,Options for Debugging Your Program or @sc{gnu} CC,
-gcc.info, Using @sc{gnu} CC}, for more information.
+@ref{Debugging Options,,Options for Debugging Your Program or @sc{gnu}
+CC, gcc.info, Using @sc{gnu} CC}, for more information.
 @end ifclear
-@ifset CONLY
-@node C
-@chapter C Language Support
-@cindex C language
-@cindex expressions in C
-
-Information specific to the C language is built into @value{GDBN} so that you
-can use C expressions while degugging.  This also permits @value{GDBN} to
-output values in a manner consistent with C conventions.
-
-@menu
-* C Operators::                 C operators
-* C Constants::                 C constants
-* Debugging C::                 @value{GDBN} and C
-@end menu
+@ifset HPPA
+@cindex C++
+@kindex g++
+@cindex @sc{gnu} C++
+You can use @value{GDBN} to debug C programs compiled with either the HP
+C compiler (@code{cc}) or the GNU C compiler (@code{gcc}), and to debug
+programs compiled with either the HP ANSI C++ compiler (@code{aCC}) or
+the @sc{gnu} C++ compiler (@code{g++}).
+
+If you compile with the @sc{gnu} C++ compiler, use the stabs debugging
+format for best results when debugging.  You can select that format
+explicitly with the @code{g++} command-line options @samp{-gstabs} or
+@samp{-gstabs+}.  See @ref{Debugging Options,,Options for Debugging Your
+Program or @sc{gnu} CC, gcc.info, Using @sc{gnu} CC}, for more
+information.
 @end ifset
-@ifclear CONLY
+
 @menu
 * C Operators::                 C and C++ operators
 * C Constants::                 C and C++ constants
-* Cplus expressions::           C++ expressions
+* C plus plus expressions::     C++ expressions
 * C Defaults::                  Default settings for C and C++
-@ifset MOD2
 * C Checks::                    C and C++ type and range checks
-@end ifset
-
 * Debugging C::                 @value{GDBN} and C
-* Debugging C plus plus::       Special features for C++
+* Debugging C plus plus::       @value{GDBN} features for C++
 @end menu
-@end ifclear
 
-@ifclear CONLY
-@cindex C and C++ operators
-@node C Operators
+@node C Operators, C Constants, , C
 @subsubsection C and C++ operators
-@end ifclear
-@ifset CONLY
-@cindex C operators
-@node C Operators
-@section C operators
-@end ifset
+
+@cindex C and C++ operators
 
 Operators must be defined on values of specific types.  For instance,
 @code{+} is defined on numbers, but not on structures.  Operators are
 often defined on groups of types.  
 
-@ifclear CONLY
 For the purposes of C and C++, the following definitions hold:
-@end ifclear
 
 @itemize @bullet
 @item
+@ifclear HPPA
 @emph{Integral types} include @code{int} with any of its storage-class
 specifiers; @code{char}; and @code{enum}.
+@end ifclear
+@ifset HPPA
+@emph{Integral types} include @code{int} with any of its storage-class
+specifiers; @code{char}; @code{enum}; and, for C++, @code{bool}.
+@end ifset
 
 @item
 @emph{Floating-point types} include @code{float} and @code{double}.
@@ -5683,13 +6115,11 @@ Pointer dereferencing.  Defined on pointer types.  Same precedence as
 @item &
 Address operator.  Defined on variables.  Same precedence as @code{++}.
 
-@ifclear CONLY
 For debugging C++, @value{GDBN} implements a use of @samp{&} beyond what is
 allowed in the C++ language itself: you can use @samp{&(&@var{ref})}
 (or, if you prefer, simply @samp{&&@var{ref}}) to examine the address
 where a C++ reference variable (declared with @samp{&@var{ref}}) is
 stored.
-@end ifclear
 
 @item -
 Negative.  Defined on integral and floating-point types.  Same
@@ -5710,6 +6140,11 @@ Structure member, and pointer-to-structure member.  For convenience,
 pointer based on the stored type information.
 Defined on @code{struct} and @code{union} data.
 
+@ifset HPPA
+@item .*@r{, }->*
+Dereferences of pointers to members.
+@end ifset
+
 @item []
 Array indexing.  @code{@var{a}[@var{i}]} is defined as
 @code{*(@var{a}+@var{i})}.  Same precedence as @code{->}.
@@ -5717,40 +6152,33 @@ Array indexing.  @code{@var{a}[@var{i}]} is defined as
 @item ()
 Function parameter list.  Same precedence as @code{->}.
 
-@ifclear CONLY
 @item ::
-C++ scope resolution operator.  Defined on
-@code{struct}, @code{union}, and @code{class} types.
-@end ifclear
+C++ scope resolution operator.  Defined on @code{struct}, @code{union},
+and @code{class} types.
 
 @item ::
-Doubled colons
-@ifclear CONLY
-also
-@end ifclear
-represent the @value{GDBN} scope operator (@pxref{Expressions,
-,Expressions}).
-@ifclear CONLY
-Same precedence as @code{::}, above.
-@end ifclear
+Doubled colons also represent the @value{GDBN} scope operator
+(@pxref{Expressions, ,Expressions}).  Same precedence as @code{::},
+above.
 @end table
 
-@ifclear CONLY
+@ifset HPPA
+If an operator is redefined in the user code, @value{GDBN} usually
+attempts to invoke the redefined version instead of using the operator's
+predefined meaning.
+@end ifset
+
+@menu
+* C Constants::             
+@end menu
+
+@node C Constants, C plus plus expressions, C Operators, C
+@subsubsection C and C++ constants
+
 @cindex C and C++ constants
-@node C Constants
-@subsubsection C and C++ constants
 
 @value{GDBN} allows you to express the constants of C and C++ in the
 following ways:
-@end ifclear
-@ifset CONLY
-@cindex C constants
-@node C Constants
-@section C constants
-
-@value{GDBN} allows you to express the constants of C in the
-following ways:
-@end ifset
 
 @itemize @bullet
 @item
@@ -5796,14 +6224,21 @@ integers, @samp{@{@{1,2@}, @{3,4@}, @{5,6@}@}} is a three-by-two array,
 and @samp{@{&"hi", &"there", &"fred"@}} is a three-element array of pointers.
 @end itemize
 
-@ifclear CONLY
-@node Cplus expressions
+@menu
+* C plus plus expressions::           
+* C Defaults::                  
+* C Checks::                    
+
+* Debugging C::                 
+@end menu
+
+@node C plus plus expressions, C Defaults, C Constants, C
 @subsubsection C++ expressions
 
 @cindex expressions in C++
-@value{GDBN} expression handling has a number of extensions to
-interpret a significant subset of C++ expressions.
+@value{GDBN} expression handling can interpret most C++ expressions.
 
+@ifclear HPPA
 @cindex C++ support, not in @sc{coff}
 @cindex @sc{coff} versus C++
 @cindex C++ and object formats
@@ -5816,18 +6251,18 @@ interpret a significant subset of C++ expressions.
 @c FIXME!! GDB may eventually be able to debug C++ using DWARF; check
 @c periodically whether this has happened...
 @quotation
-@emph{Warning:} @value{GDBN} can only debug C++ code if you compile with
-the @sc{gnu} C++ compiler.  Moreover, C++ debugging depends on the use of
+@emph{Warning:} @value{GDBN} can only debug C++ code if you use the
+proper compiler.  Typically, C++ debugging depends on the use of
 additional debugging information in the symbol table, and thus requires
-special support.  @value{GDBN} has this support @emph{only} with the
-stabs debug format.  In particular, if your compiler generates a.out,
-MIPS @sc{ecoff}, RS/6000 @sc{xcoff}, or @sc{elf} with stabs extensions
-to the symbol table, these facilities are all available.  (With @sc{gnu} CC,
+special support.  In particular, if your compiler generates a.out, MIPS
+@sc{ecoff}, RS/6000 @sc{xcoff}, or @sc{elf} with stabs extensions to the
+symbol table, these facilities are all available.  (With @sc{gnu} CC,
 you can use the @samp{-gstabs} option to request stabs debugging
 extensions explicitly.)  Where the object code format is standard
 @sc{coff} or @sc{dwarf} in @sc{elf}, on the other hand, most of the C++
 support in @value{GDBN} does @emph{not} work.
 @end quotation
+@end ifclear
 
 @enumerate
 
@@ -5847,6 +6282,7 @@ expressions have the same namespace available as the member function;
 that is, @value{GDBN} allows implicit references to the class instance
 pointer @code{this} following the same rules as C++.
 
+@ifclear HPPA
 @cindex call overloaded functions
 @cindex type conversions in C++
 @item
@@ -5855,6 +6291,38 @@ call to the right definition, with one restriction---you must use
 arguments of the type required by the function that you want to call.
 @value{GDBN} does not perform conversions requiring constructors or
 user-defined type operators.
+@end ifclear
+@ifset HPPA
+@cindex call overloaded functions
+@cindex overloaded functions
+@cindex type conversions in C++
+@item
+You can call overloaded functions; @value{GDBN} resolves the function
+call to the right definition, with some restrictions.  GDB does not
+perform overload resolution involving user-defined type conversions,
+calls to constructors, or instantiations of templates that do not exist
+in the program.  It also cannot handle ellipsis argument lists or
+default arguments.
+
+It does perform integral conversions and promotions, floating-point
+promotions, arithmetic conversions, pointer conversions, conversions of
+class objects to base classes, and standard conversions such as those of
+functions or arrays to pointers; it requires an exact match on the
+number of function arguments.
+
+Overload resolution is always performed, unless you have specified
+@code{set overload-resolution off}.  @xref{Debugging C plus plus,
+,@value{GDBN} features for C++}.
+
+You must specify@code{set overload-resolution off} in order to use an
+explicit function signature to call an overloaded function, as in
+@smallexample
+p 'foo(char,int)'('x', 13)
+@end smallexample
+The @value{GDBN} command-completion facility can simplify this;
+@pxref{Completion, ,Command completion}.
+
+@end ifset
 
 @cindex reference declarations
 @item
@@ -5878,28 +6346,38 @@ resolving name scope by reference to source files, in both C and C++
 debugging (@pxref{Variables, ,Program variables}).
 @end enumerate
 
-@node C Defaults
+@ifset HPPA
+In addition, @value{GDBN} supports calling virtual functions correctly,
+printing out virtual bases of objects, calling functions in a base
+subobject, casting objects, and invoking user-defined operators.
+@end ifset
+
+@node C Defaults, C Checks, C plus plus expressions, C
 @subsubsection C and C++ defaults
+
 @cindex C and C++ defaults
 
+@ifclear HPPA
 If you allow @value{GDBN} to set type and range checking automatically, they
 both default to @code{off} whenever the working language changes to
 C or C++.  This happens regardless of whether you or @value{GDBN}
 selects the working language.
+@end ifclear
 
-If you allow @value{GDBN} to set the language automatically, it recognizes
-source files whose names end with @file{.c}, @file{.C}, or @file{.cc}, and
-when @value{GDBN} enters code compiled from one of these files, 
-it sets the working language to C or C++.
-@xref{Automatically, ,Having @value{GDBN} infer the source language}, for
-further details.
+If you allow @value{GDBN} to set the language automatically, it
+recognizes source files whose names end with @file{.c}, @file{.C}, or
+@file{.cc}, etc, and when @value{GDBN} enters code compiled from one of
+these files, it sets the working language to C or C++.
+@xref{Automatically, ,Having @value{GDBN} infer the source language},
+for further details.
 
-@ifset MOD2
 @c Type checking is (a) primarily motivated by Modula-2, and (b)
 @c unimplemented.  If (b) changes, it might make sense to let this node
 @c appear even if Mod-2 does not, but meanwhile ignore it. roland 16jul93.
-@node C Checks
+
+@node C Checks, Debugging C, C Defaults, C Constants
 @subsubsection C and C++ type and range checks
+
 @cindex C and C++ checks
 
 By default, when @value{GDBN} parses C or C++ expressions, type checking
@@ -5928,36 +6406,28 @@ compilers.)
 Range checking, if turned on, is done on mathematical operations.  Array
 indices are not checked, since they are often used to index a pointer
 that is not itself an array.
-@end ifset
-@end ifclear
 
-@ifclear CONLY
-@node Debugging C
+@node Debugging C, Debugging C plus plus, C Checks, C
 @subsubsection @value{GDBN} and C
-@end ifclear
-@ifset CONLY
-@node Debugging C
-@section @value{GDBN} and C
-@end ifset
 
 The @code{set print union} and @code{show print union} commands apply to
 the @code{union} type.  When set to @samp{on}, any @code{union} that is
-inside a @code{struct}
-@ifclear CONLY
-or @code{class}
-@end ifclear
-is also printed.
-Otherwise, it appears as @samp{@{...@}}.
+inside a @code{struct} or @code{class} is also printed.  Otherwise, it
+appears as @samp{@{...@}}.
 
 The @code{@@} operator aids in the debugging of dynamic arrays, formed
 with pointers and a memory allocation function.  @xref{Expressions,
 ,Expressions}.
 
-@ifclear CONLY
-@node Debugging C plus plus
+@menu
+* Debugging C plus plus::       
+@end menu
+
+@node Debugging C plus plus,  , Debugging C, C
 @subsubsection @value{GDBN} features for C++
 
 @cindex commands for C++
+
 Some @value{GDBN} commands are particularly useful with C++, and some are
 designed specifically for use with C++.  Here is a summary:
 
@@ -5976,10 +6446,10 @@ classes.
 @xref{Set Breaks, ,Setting breakpoints}.
 
 @cindex C++ exception handling
-@item catch @var{exceptions}
-@itemx info catch
-Debug C++ exception handling using these commands.  @xref{Exception
-Handling, ,Breakpoints and exceptions}.
+@item catch throw
+@itemx catch catch
+Debug C++ exception handling using these commands.  @xref{Set
+Catchpoints, , Setting catchpoints}.
 
 @cindex inheritance
 @item ptype @var{typename}
@@ -6005,6 +6475,29 @@ Choose whether to print derived (actual) or declared types of objects.
 @itemx show print vtbl
 Control the format for printing virtual function tables.
 @xref{Print Settings, ,Print settings}.
+@ifset HPPA
+(The @code{vtbl} commands do not work on programs compiled with the HP
+ANSI C++ compiler (@code{aCC}).)
+
+@kindex set overload-resolution
+@cindex overloaded functions
+@item set overload-resolution on
+Enable overload resolution for C++ expression evaluation.  The default
+is on.  For overloaded functions, @value{GDBN} evaluates the arguments
+and searches for a function whose signature matches the argument types,
+using the standard C++ conversion rules (@pxref{C plus plus expressions, ,C++
+expressions} for details).  If it cannot find a match, it emits a
+message.
+
+@item set overload-resolution off
+Disable overload resolution for C++ expression evaluation.  For
+overloaded functions that are not class member functions, @value{GDBN}
+chooses the first function of the specified name that it finds in the
+symbol table, whether or not its arguments are of the correct type.  For
+overloaded functions that are class member functions, @value{GDBN}
+searches for a function whose signature @emph{exactly} matches the
+argument types.
+@end ifset
 
 @item @r{Overloaded symbol names}
 You can specify a particular definition of an overloaded symbol, using
@@ -6014,14 +6507,10 @@ also use the @value{GDBN} command-line word completion facilities to list the
 available choices, or to finish the type list for you.
 @xref{Completion,, Command completion}, for details on how to do this.
 @end table
-@ifclear MOD2
-@c cancels "raisesections" under same conditions near bgn of chapter
-@lowersections
-@end ifclear
 
-@ifset MOD2
-@node Modula-2
+@node Modula-2, Chill, C, Support
 @subsection Modula-2
+
 @cindex Modula-2
 
 The extensions made to @value{GDBN} to support Modula-2 only support
@@ -6034,7 +6523,7 @@ table.
 @cindex expressions in Modula-2
 @menu
 * M2 Operators::                Built-in operators
-* Built-In Func/Proc::           Built-in functions and procedures
+* Built-In Func/Proc::          Built-in functions and procedures
 * M2 Constants::                Modula-2 constants
 * M2 Defaults::                 Default settings for Modula-2
 * Deviations::                  Deviations from standard Modula-2
@@ -6043,7 +6532,7 @@ table.
 * GDB/M2::                      @value{GDBN} and Modula-2
 @end menu
 
-@node M2 Operators
+@node M2 Operators, Built-In Func/Proc, Modula-2, Modula-2
 @subsubsection Operators
 @cindex Modula-2 operators
 
@@ -6167,7 +6656,7 @@ treats the use of the operator @code{IN}, or the use of operators
 @end quotation
 
 @cindex Modula-2 built-ins
-@node Built-In Func/Proc
+@node Built-In Func/Proc, M2 Constants, M2 Operators, Modula-2
 @subsubsection Built-in functions and procedures
 
 Modula-2 also makes available several built-in procedures and functions.
@@ -6279,7 +6768,7 @@ an error.
 @end quotation
 
 @cindex Modula-2 constants
-@node M2 Constants
+@node M2 Constants, M2 Defaults, Built-In Func/Proc, Modula-2
 @subsubsection Constants
 
 @value{GDBN} allows you to express the constants of Modula-2 in the following
@@ -6328,7 +6817,7 @@ Pointer constants consist of integral values only.
 Set constants are not yet supported.
 @end itemize
 
-@node M2 Defaults
+@node M2 Defaults, Deviations, M2 Constants, Modula-2
 @subsubsection Modula-2 defaults
 @cindex Modula-2 defaults
 
@@ -6342,7 +6831,7 @@ code compiled from a file whose name ends with @file{.mod} sets the
 working language to Modula-2. @xref{Automatically, ,Having @value{GDBN} set
 the language automatically}, for further details.
 
-@node Deviations
+@node Deviations, M2 Checks, M2 Defaults, Modula-2
 @subsubsection Deviations from standard Modula-2
 @cindex Modula-2, deviations from
 
@@ -6372,7 +6861,7 @@ argument.
 All built-in procedures both modify @emph{and} return their argument.
 @end itemize
 
-@node M2 Checks
+@node M2 Checks, M2 Scope, Deviations, Modula-2
 @subsubsection Modula-2 type and range checks
 @cindex Modula-2 checks
 
@@ -6400,7 +6889,7 @@ whose types are not equivalent is an error.
 Range checking is done on all mathematical operations, assignment, array
 index bounds, and all built-in functions and procedures.
 
-@node M2 Scope
+@node M2 Scope, GDB/M2, M2 Checks, Modula-2
 @subsubsection The scope operators @code{::} and @code{.}
 @cindex scope
 @kindex .
@@ -6440,7 +6929,7 @@ an error if the identifier @var{id} was not imported from definition
 module @var{module}, or if @var{id} is not an identifier in
 @var{module}.
 
-@node GDB/M2
+@node GDB/M2,  , M2 Scope, Modula-2
 @subsubsection @value{GDBN} and Modula-2
 
 Some @value{GDBN} commands have little use when debugging Modula-2 programs.
@@ -6460,10 +6949,454 @@ address can be specified by an integral constant, the construct
 @cindex @code{#} in Modula-2
 In @value{GDBN} scripts, the Modula-2 inequality operator @code{#} is
 interpreted as the beginning of a comment.  Use @code{<>} instead.
-@end ifset
-@end ifclear
 
-@node Symbols
+@node Chill, , Modula-2, Support
+@subsection Chill
+
+The extensions made to @value{GDBN} to support Chill only support output
+from the GNU Chill compiler.  Other Chill compilers are not currently
+supported, and attempting to debug executables produced by them is most
+likely to give an error as @value{GDBN} reads in the executable's symbol
+table.
+
+This section covers the following Chill related topics and the features
+of @value{GDBN} which support these topics.
+
+@menu
+* How modes are displayed::    How modes are displayed
+* Locations::                  Locations and their accesses
+* Values and their Operations:: Values and their Operations
+@end menu
+
+@node How modes are displayed
+@subsubsection How modes are displayed
+
+The Chill Datatype- (Mode) support of @value{GDBN} is directly related
+with the functionality of the GNU Chill compiler, and therefore deviates
+slightly from the standard specification of the Chill language. The
+provided modes are:
+@table @code
+@item @r{@emph{Discrete modes:}}
+@itemize @bullet
+@item
+@emph{Integer Modes} which are predefined by @code{BYTE, UBYTE, INT,
+UINT, LONG, ULONG},
+@item
+@emph{Boolean Mode} which is predefined by @code{BOOL}, 
+@item
+@emph{Character Mode} which is predefined by @code{CHAR}, 
+@item
+@emph{Set Mode} which is displayed by the keyword @code{SET}.
+@smallexample
+(@value{GDBP}) ptype x
+type = SET (karli = 10, susi = 20, fritzi = 100)
+@end smallexample
+If the type is an unnumbered set the set element values are omitted.
+@item
+@emph{Range Mode} which is displayed by @code{type = <basemode>
+(<lower bound> : <upper bound>)}, where @code{<lower bound>, <upper
+bound>} can be of any discrete literal expression (e.g. set element
+names).
+@end itemize
+
+@item @r{@emph{Powerset Mode:}}
+A Powerset Mode is displayed by the keyword @code{POWERSET} followed by
+the member mode of the powerset. The member mode can be any discrete mode.
+@smallexample
+(@value{GDBP}) ptype x
+type = POWERSET SET (egon, hugo, otto)
+@end smallexample
+
+@item @r{@emph{Reference Modes:}}
+@itemize @bullet
+@item
+@emph{Bound Reference Mode} which is diplayed by the keyword @code{REF}
+followed by the mode name to which the reference is bound.
+@item
+@emph{Free Reference Mode} which is displayed by the keyword @code{PTR}.
+@end itemize
+
+@item @r{@emph{Procedure mode}}
+The procedure mode is displayed by @code{type = PROC(<parameter list>)
+<return mode> EXCEPTIONS (<exception list>)}. The @code{<parameter
+list>} is a list of the parameter modes. @code{<return mode>} indicates
+the mode of the result of the procedure if any. The exceptionlist lists
+all possible exceptions which can be raised by the procedure.
+
+@ignore
+@item @r{@emph{Instance mode}}
+The instance mode is represented by a structure, which has a static
+type, and is therefore not really of interest. 
+@end ignore
+
+@item @r{@emph{Synchronization Modes:}} 
+@itemize @bullet
+@item
+@emph{Event Mode} which is displayed by @code{EVENT (<event length>)},
+where @code{(<event length>)} is optional.
+@item
+@emph{Buffer Mode} which is displayed by @code{BUFFER (<buffer length>)
+<buffer element mode>}, where @code{(<buffer length>)} is optional.
+@end itemize
+
+@item @r{@emph{Timing Modes:}} 
+@itemize @bullet
+@item
+@emph{Duration Mode} which is predefined by @code{DURATION}
+@item
+@emph{Absolute Time Mode} which is predefined by @code{TIME}
+@end itemize
+
+@item @r{@emph{Real Modes:}}
+Real Modes are predefined with @code{REAL} and @code{LONG_REAL}.
+
+@item @r{@emph{String Modes:}}
+@itemize @bullet
+@item
+@emph{Character String Mode} which is displayed by @code{CHARS(<string
+length>)}, followed by the keyword @code{VARYING} if the String Mode is
+a varying mode
+@item
+@emph{Bit String Mode} which is displayed by @code{BOOLS(<string
+length>)}.
+@end itemize
+
+@item @r{@emph{Array Mode:}}
+The Array Mode is displayed by the keyword @code{ARRAY(<range>)}
+followed by the element mode (which may in turn be an array mode).
+@smallexample
+(@value{GDBP}) ptype x
+type = ARRAY (1:42) 
+          ARRAY (1:20) 
+             SET (karli = 10, susi = 20, fritzi = 100)
+@end smallexample
+
+@item @r{@emph{Structure Mode}} 
+The Structure mode is displayed by the keyword @code{STRUCT(<field
+list>)}. The @code{<field list>} consists of names and modes of fields
+of the structure. Variant structures have the keyword @code{CASE <field>
+OF <variant fields> ESAC} in their field list. Since the current version
+of the GNU Chill compiler doesn't implement tag processing (no runtime
+checks of variant fields, and therefore no debugging info), the output
+always displays all variant fields.
+@smallexample
+(@value{GDBP}) ptype str
+type = STRUCT (
+    as x,
+    bs x,
+    CASE bs OF
+    (karli):
+        cs a
+    (ott):
+        ds x
+    ESAC
+)
+@end smallexample
+@end table
+
+@node Locations
+@subsubsection Locations and their accesses
+
+A location in Chill is an object which can contain values.
+
+A value of a location is generally accessed by the (declared) name of
+the location. The output conforms to the specification of values in
+Chill programs. How values are specified, and which operations are valid
+is the topic of the next section.
+
+The pseudo-location @code{RESULT} (or @code{result}) can be used to
+display or change the result of a currently-active procedure:
+@smallexample
+set result := EXPR
+@end smallexample
+- does the same as the Chill action @code{RESULT EXPR} (which
+is not available in gdb).
+
+Values of reference mode locations are printed by @code{PTR(<hex
+value>)} in case of a free reference mode, and by @code{(REF <reference
+mode>) (<hex-value>)} in case of a bound reference. @code{<hex value>}
+represents the address where the reference points to.  To access the
+value of the location referenced by the pointer, use the dereference
+operator `@code{->}'.
+
+Values of procedure mode locations are displayed by @code{@{ PROC
+(<argument modes> ) <return mode> @} <address> <name of procedure
+location>}. @code{<argument modes>} is a list of modes according to the
+parameter specification of the procedure and @code{<address>} shows the
+address of the entry point. 
+
+@ignore
+Locations of instance modes are displayed just like a structure with two
+fields specifying the @emph{process type} and the @emph{copy number} of
+the investigated instance location@footnote{This comes from the current
+implementation of instances. They are implemented as a structure (no
+na). The output should be something like @code{[<name of the process>;
+<instance number>]}.}. The field names are @code{__proc_type} and
+@code{__proc_copy}.
+
+Locations of synchronization modes are displayed like a structure with
+the field name @code{__event_data} in case of a event mode location, and
+like a structure with the field @code{__buffer_data} in case of a buffer
+mode location (refer to previous paragraph).
+
+Structure Mode locations are printed by @code{[.<field name>: <value>,
+...]}. The @code{<field name>} corresponds to the structure mode
+definition and the layout of @code{<value>} varies depending of the mode
+of the field. If the investigated structure mode location is of variant
+structure mode the variant parts of the structure are enclosed in curled
+braces (`@code{@{@}}'). Fields enclosed by `@code{@{,@}}' are residing
+on the same memory location and represent the current values of the
+memory location in their specific modes. Since no tag processing is done
+all variants are displayed. A variant field is printed by
+@code{(<variant name>) = .<field name>: <value>}. (who implements the
+stuff ???)
+@smallexample
+(@value{GDBP}) print str1 $4 = [.as: 0, .bs: karli, .<TAG>: { (karli) =
+[.cs: []], (susi) = [.ds: susi]}]
+@end smallexample
+@end ignore
+
+Substructures of string mode-, array mode- or structure mode-values
+(e.g. array slices, fields of structure locations) are accessed using
+certain operations which are descibed in the next chapter.
+
+A location value may be interpreted as having a different mode using the
+location conversion. This mode conversion is written as @code{<mode
+name>(<location>)}. The user has to consider that the sizes of the modes
+have to be equal otherwise an error message occurs. Further no range
+checking of the location against the destination mode is performed and
+therefore the result can be quite confusing.
+@smallexample
+(@value{GDBP}) print int (s(3 up 4)) XXX TO be filled in !! XXX
+@end smallexample
+
+@node Values and their Operations
+@subsubsection Values and their Operations
+
+Values are used to alter locations, to investigate complex structures in
+more detail or to filter relevant information out of a large amount of
+data. There are several (mode dependent) operations defined which enable
+such investigations. These operations are not only applicable to
+constant values but also to locations, which can become quite useful
+when debugging complex structures. During parsing the command line
+(e.g. evaluating an expression) @value{GDBN} treats location names as
+the values behind these locations.
+
+This subchapters describes how values have to be specified and which
+operations are legal to be used with such values.
+
+@table @code
+@item Literal Values
+Literal values are specified in the same manner as in GNU Chill programs.
+For detailed specification refer to the GNU Chill implementation Manual
+chapter 1.5.
+
+@ignore 
+@itemize @bullet
+@item
+@emph{Integer Literals} are specified in the same manner as in Chill
+programs (refer z200/88 chpt 5.2.4.2)
+@item
+@emph{Boolean Literals} are defined by @code{TRUE} and @code{FALSE}.
+@item
+@emph{Character Literals} are defined by @code{'<character>'}. (e.g.
+@code{'M'})
+@item
+@emph{Set Literals} are defined by a name which was specified in a set
+mode. The value delivered by a Set Literal is the set value. This is
+comparable to an enumaration in C/C++ language.
+@item
+@emph{Emptiness Literal} is predefined by @code{NULL}. The value of the
+emptiness literal delivers either the empty reference value, the empty
+procedure value or the empty instance value. 
+
+@item
+@emph{Character String Literals} are defined by a sequence of characters
+enclosed in single- or double quotes. If a single- or double quote has
+to be part of the string literal it has to be stuffed (specified twice).
+@item
+@emph{Bitstring Literals} are specified in the same manner as in Chill
+programs (refer z200/88 chpt 5.2.4.8).
+@item
+@emph{Floating point literals} are specified in the same manner as in
+(gnu-)Chill programs (refer GNU Chill implementation Manual chapter 1.5).
+@end itemize
+@end ignore
+
+@item Tuple Values
+A tuple is specified by @code{<mode name>[<tuple>]}, where @code{<mode
+name>} can be omitted if the mode of the tuple is unambigous. This
+unambiguity is derived from the context of a evaluated expression.
+@code{<tuple>} can be one of the following:
+@itemize @bullet
+@item @emph{Powerset Tuple}
+@item @emph{Array Tuple}
+@item @emph{Structure Tuple}
+Powerset tuples, array tuples and structure tuples are specified in the
+same manner as in Chill programs refer z200/88 chpt 5.2.5.
+@end itemize
+
+@item String Element Value
+A string element value is specified by @code{<string value>(<index>)},
+where @code{<index>} is a integer expression. It delivers a character
+value which is equivalent to the character indexed by @code{<index>} in
+the string.
+
+@item String Slice Value
+A string slice value is specified by @code{<string value>(<slice
+spec>)}, where @code{<slice spec>} can be either a range of integer
+expressions or specified by @code{<start expr> up <size>}.
+@code{<size>} denotes the number of elements which the slice contains.
+The delivered value is a string value, which is part of the specified
+string.
+
+@item Array Element Values
+An array element value is specified by @code{<array value>(<expr>)} and
+delivers a array element value of the mode of the specified array.
+
+@item Array Slice Values
+An array slice is specified by @code{<array value>(<slice spec>)}, where
+@code{<slice spec>} can be either a range specified by expressions or by
+@code{<start expr> up <size>}. @code{<size>} denotes the number of
+arrayelements the slice contains. The delivered value is an array value
+which is part of the specified array.
+
+@item Structure Field Values
+A structure field value is derived by @code{<structure value>.<field
+name>}, where @code{<field name>} indcates the name of a field specified
+in the mode definition of the structure. The mode of the delivered value
+corresponds to this mode definition in the structure definition.
+
+@item Procedure Call Value
+The procedure call value is derived from the return value of the
+procedure@footnote{If a procedure call is used for instance in an
+expression, then this procedure is called with all its side
+effects. This can lead to confusing results if used carelessly.}.
+
+Values of duration mode locations are represented by ULONG literals.
+
+Values of time mode locations are represented by TIME(<secs>:<nsecs>).
+
+@ignore
+This is not implemented yet:
+@item Built-in Value
+@noindent
+The following built in functions are provided:
+@table @code
+@item @code{ADDR()}
+@item @code{NUM()}
+@item @code{PRED()}
+@item @code{SUCC()}
+@item @code{ABS()}
+@item @code{CARD()}
+@item @code{MAX()}
+@item @code{MIN()}
+@item @code{SIZE()}
+@item @code{UPPER()}
+@item @code{LOWER()}
+@item @code{LENGTH()}
+@item @code{SIN()}
+@item @code{COS()}
+@item @code{TAN()}
+@item @code{ARCSIN()}
+@item @code{ARCCOS()}
+@item @code{ARCTAN()}
+@item @code{EXP()}
+@item @code{LN()}
+@item @code{LOG()}
+@item @code{SQRT()}
+@end table
+
+For a detailed description refer to the GNU Chill implementation manual
+chapter 1.6.
+@end ignore
+
+@item Zero-adic Operator Value
+The zero-adic operator value is derived from the instance value for the
+current active process.
+
+@item Expression Values
+The value delivered by an expression is the result of the evaluation of
+the specified expression. If there are error conditions (mode
+incompatibility, etc.) the evaluation of expressions is aborted with a
+corresponding error message. Expressions may be paranthesised which
+causes the evaluation of this expression before any other expression
+which uses the result of the paranthesised expression. The following
+operators are supported by @value{GDBN}:
+@table @code
+@item @code{OR, ORIF, XOR}
+@item @code{AND, ANDIF}
+@item @code{NOT}
+Logical operators defined over operands of boolean mode.
+@item @code{=, /=}
+Equality and inequality operators defined over all modes.
+@item @code{>, >=}
+@item @code{<, <=}
+Relational operators defined over predefined modes.
+@item @code{+, -}
+@item @code{*, /, MOD, REM}
+Arithmetic operators defined over predefined modes.
+@item @code{-}
+Change sign operator.
+@item @code{//}
+String concatenation operator.
+@item @code{()}
+String repetition operator.
+@item @code{->}
+Referenced location operator which can be used either to take the
+address of a location (@code{->loc}), or to dereference a reference
+location (@code{loc->}).
+@item @code{OR, XOR}
+@item @code{AND}
+@item @code{NOT}
+Powerset and bitstring operators.
+@item @code{>, >=}
+@item @code{<, <=}
+Powerset inclusion operators.
+@item @code{IN}
+Membership operator.
+@end table
+@end table
+
+@subsubsection Chill type and range checks
+
+@value{GDBN} considers two Chill variables mode equivalent if the sizes
+of the two modes are equal. This rule applies recursively to more
+complex datatypes which means that complex modes are treated
+eqivalent if all element modes (which also can be complex modes like
+structures, arrays, etc.) have the same size.
+
+Range checking is done on all mathematical operations, assignment, array
+index bounds and all built in procedures.
+
+Strong type checks are forced using the @value{GDBN} command @code{set
+check strong}. This enforces strong type and range checks on all
+operations where Chill constructs are used (expressions, built in
+functions, etc.) in respect to the semantics as defined in the z.200
+language specification.
+
+@noindent
+All checks can be disabled by the @value{GDBN} command @code{set check
+off}.
+
+@ignore 
+@subsubsection Deviations from the Chill Standard Z200/88
+see last paragraph ?
+@end ignore
+
+@subsubsection Chill defaults
+
+If type and range checking are set automatically by @value{GDBN}, they
+both default to @code{on} whenever the working language changes to
+Chill.  This happens regardless of whether you, or @value{GDBN},
+selected the working language.
+
+If you allow @value{GDBN} to set the language automatically, then entering
+code compiled from a file whose name ends with @file{.ch} sets the
+working language to Chill. @xref{Automatically, ,Having @value{GDBN} set
+the language automatically}, for further details.
+
+@node Symbols, Altering, Languages, Top
 @chapter Examining the Symbol Table
 
 The commands described in this section allow you to inquire about the
@@ -6518,12 +7451,9 @@ Print the data type of @code{$}, the last value in the value history.
 @kindex ptype
 @item ptype @var{typename}
 Print a description of data type @var{typename}.  @var{typename} may be
-the name of a type, or for C code it may have the form
-@ifclear CONLY
-@samp{class @var{class-name}},
-@end ifclear
-@samp{struct @var{struct-tag}}, @samp{union @var{union-tag}} or
-@samp{enum @var{enum-tag}}.
+the name of a type, or for C code it may have the form @samp{class
+@var{class-name}}, @samp{struct @var{struct-tag}}, @samp{union
+@var{union-tag}} or @samp{enum @var{enum-tag}}.
 
 @item ptype @var{exp}
 @itemx ptype
@@ -6617,15 +7547,13 @@ from the @code{ptype} command can be overwhelming and hard to use.  The
 which match the regular-expression @var{regexp}.
 @end ignore
 
+@ifclear HPPA
 @cindex reloading symbols
 Some systems allow individual object files that make up your program to
-be replaced without stopping and restarting your program.
-@ifset VXWORKS
-For example, in VxWorks you can simply recompile a defective object file
-and keep on running.
-@end ifset
-If you are running on one of these systems, you can allow @value{GDBN} to
-reload the symbols for automatically relinked modules:
+be replaced without stopping and restarting your program.  For example,
+in VxWorks you can simply recompile a defective object file and keep on
+running.  If you are running on one of these systems, you can allow
+@value{GDBN} to reload the symbols for automatically relinked modules:
 
 @table @code
 @kindex set symbol-reloading
@@ -6645,6 +7573,31 @@ different directories or libraries) with the same name.
 @item show symbol-reloading
 Show the current @code{on} or @code{off} setting.
 @end table
+@end ifclear
+
+@ifset HPPA
+@kindex set opaque-type-resolution
+@item set opaque-type-resolution on
+Tell @value{GDBN} to resolve opaque types.  An opaque type is a type
+declared as a pointer to a @code{struct}, @code{class}, or
+@code{union}---for example, @code{struct MyType *}---that is used in one
+source file although the full declaration of @code{struct MyType} is in
+another source file.  The default is on.
+
+A change in the setting of this subcommand will not take effect until
+the next time symbols for a file are loaded.
+
+@item set opaque-type-resolution off
+Tell @value{GDBN} not to resolve opaque types.  In this case, the type
+is printed as follows:
+@smallexample
+@{<no data fields>@}
+@end smallexample
+
+@kindex show opaque-type-resolution
+@item show opaque-type-resolution
+Show whether opaque types are resolved or not.
+@end ifset
 
 @kindex maint print symbols
 @cindex symbol dump
@@ -6669,7 +7622,7 @@ required for each object file from which @value{GDBN} has read some symbols.
 @value{GDBN} reads symbols (in the description of @code{symbol-file}).
 @end table
 
-@node Altering
+@node Altering, GDB Files, Symbols, Top
 @chapter Altering Execution
 
 Once you think you have found an error in your program, you might want to
@@ -6679,28 +7632,19 @@ experiment, using the @value{GDBN} features for altering execution of the
 program.
 
 For example, you can store new values into variables or memory
-locations,
-@ifclear BARETARGET
-give your program a signal, restart it
-@end ifclear
-@ifset BARETARGET
-restart your program
-@end ifset
-at a different address, or even return prematurely from a function.
+locations, give your program a signal, restart it at a different
+address, or even return prematurely from a function.
 
 @menu
 * Assignment::                  Assignment to variables
 * Jumping::                     Continuing at a different address
-@ifclear BARETARGET
 * Signaling::                   Giving your program a signal
-@end ifclear
-
 * Returning::                   Returning from a function
 * Calling::                     Calling your program's functions
 * Patching::                    Patching your program
 @end menu
 
-@node Assignment
+@node Assignment, Jumping, Altering, Altering
 @section Assignment to variables
 
 @cindex assignment
@@ -6715,10 +7659,8 @@ print x=4
 @noindent
 stores the value 4 into the variable @code{x}, and then prints the
 value of the assignment expression (which is 4).  
-@ifclear CONLY
 @xref{Languages, ,Using @value{GDBN} with Different Languages}, for more
 information on operators in supported languages.
-@end ifclear
 
 @kindex set variable
 @cindex variables, setting
@@ -6728,13 +7670,14 @@ really the same as @code{print} except that the expression's value is
 not printed and is not put in the value history (@pxref{Value History,
 ,Value history}).  The expression is evaluated only for its effects.
 
+@ifclear HPPA
 If the beginning of the argument string of the @code{set} command
 appears identical to a @code{set} subcommand, use the @code{set
 variable} command instead of just @code{set}.  This command is identical
-to @code{set} except for its lack of subcommands.  For example, if
-your program has a variable @code{width}, you get
-an error if you try to set a new value with just @samp{set width=13},
-because @value{GDBN} has the command @code{set width}:
+to @code{set} except for its lack of subcommands.  For example, if your
+program has a variable @code{width}, you get an error if you try to set
+a new value with just @samp{set width=13}, because @value{GDBN} has the
+command @code{set width}:
 
 @example
 (@value{GDBP}) whatis width
@@ -6752,6 +7695,43 @@ order to actually set the program's variable @code{width}, use
 @example
 (@value{GDBP}) set var width=47
 @end example
+@end ifclear
+@ifset HPPA
+Because the @code{set} command has many subcommands that can conflict
+with the names of program variables, it is a good idea to use the
+@code{set variable} command instead of just @code{set}.  For example, if
+your program has a variable @code{g}, you run into problems if you try
+to set a new value with just @samp{set g=4}, because @value{GDBN} has
+the command @code{set gnutarget}, abbreviated @code{set g}:
+
+@example
+@group
+(@value{GDBP}) whatis g
+type = double
+(@value{GDBP}) p g
+$1 = 1
+(@value{GDBP}) set g=4
+(gdb) p g
+$2 = 1
+(@value{GDBP}) r
+The program being debugged has been started already.
+Start it from the beginning? (y or n) y
+Starting program: /home/smith/cc_progs/a.out
+"/home/smith/cc_progs/a.out": can't open to read symbols: Invalid bfd target.
+(@value{GDBP}) show g
+The current BFD target is "=4".
+@end group
+@end example
+
+@noindent
+The program variable @code{g} did not change, and you silently set the
+@code{gnutarget} to an invalid value.  In order to set the variable
+@code{g}, use
+
+@example
+(@value{GDBP}) set var g=4
+@end example
+@end ifset
 
 @value{GDBN} allows more implicit conversions in assignments than C; you can
 freely store an integer value into a pointer variable or vice versa,
@@ -6773,7 +7753,7 @@ set @{int@}0x83040 = 4
 @noindent
 stores the value 4 into that memory location.
 
-@node Jumping
+@node Jumping, Signaling, Assignment, Altering
 @section Continuing at a different address
 
 Ordinarily, when you continue your program, you do so at the place where
@@ -6786,7 +7766,9 @@ an address of your own choosing, with the following commands:
 Resume execution at line @var{linespec}.  Execution stops again
 immediately if there is a breakpoint there.  @xref{List, ,Printing
 source lines}, for a description of the different forms of
-@var{linespec}.
+@var{linespec}.  It is common practice to use the @code{tbreak} command
+in conjunction with @code{jump}.  @xref{Set Breaks, ,Setting
+breakpoints}.
 
 The @code{jump} command does not change the current stack frame, or
 the stack pointer, or the contents of any memory location or any
@@ -6802,6 +7784,8 @@ well acquainted with the machine-language code of your program.
 Resume execution at the instruction at address @var{address}.
 @end table
 
+@ifclear HPPA
+@c Doesn't work on HP-UX; have to set $pcoqh and $pcoqt.
 You can get much the same effect as the @code{jump} command by storing a
 new value into the register @code{$pc}.  The difference is that this
 does not start your program running; it only changes the address of where it
@@ -6815,14 +7799,15 @@ set $pc = 0x485
 makes the next @code{continue} command or stepping command execute at
 address @code{0x485}, rather than at the address where your program stopped.
 @xref{Continuing and Stepping, ,Continuing and stepping}.
+@end ifclear
 
-The most common occasion to use the @code{jump} command is to back up--
-perhaps with more breakpoints set--over a portion of a program that has
-already executed, in order to examine its execution in more detail.
+The most common occasion to use the @code{jump} command is to back
+up---perhaps with more breakpoints set---over a portion of a program
+that has already executed, in order to examine its execution in more
+detail.
 
-@ifclear BARETARGET
 @c @group
-@node Signaling
+@node Signaling, Returning, Jumping, Altering
 @section Giving your program a signal
 
 @table @code
@@ -6850,9 +7835,8 @@ causes @value{GDBN} to decide what to do with the signal depending on
 the signal handling tables (@pxref{Signals}).  The @code{signal} command
 passes the signal directly to your program.
 
-@end ifclear
 
-@node Returning
+@node Returning, Calling, Signaling, Altering
 @section Returning from a function
 
 @table @code
@@ -6883,7 +7867,7 @@ returned.  In contrast, the @code{finish} command (@pxref{Continuing
 and Stepping, ,Continuing and stepping}) resumes execution until the
 selected stack frame returns naturally.
 
-@node Calling
+@node Calling, Patching, Returning, Altering
 @section Calling program functions
 
 @cindex calling functions
@@ -6899,28 +7883,25 @@ execute a function from your program, but without cluttering the output
 with @code{void} returned values.  If the result is not void, it 
 is printed and saved in the value history. 
 
-A new user-controlled variable, @var{call_scratch_address}, specifies
-the location of a scratch area to be used when @value{GDBN} calls a
-function in the target.  This is necessary because the usual method
-of putting the scratch area on the stack does not work in systems that
-have separate instruction and data spaces.
+@ifclear HPPA
+For the A29K, a user-controlled variable @code{call_scratch_address},
+specifies the location of a scratch area to be used when @value{GDBN}
+calls a function in the target.  This is necessary because the usual
+method of putting the scratch area on the stack does not work in systems
+that have separate instruction and data spaces.
+@end ifclear
 
-@node Patching
+@node Patching,  , Calling, Altering
 @section Patching programs
+
 @cindex patching binaries
 @cindex writing into executables
-@ifclear BARETARGET
 @cindex writing into corefiles
-@end ifclear
 
-By default, @value{GDBN} opens the file containing your program's executable
-code
-@ifclear BARETARGET
-(or the corefile)
-@end ifclear
-read-only.  This prevents accidental alterations
-to machine code; but it also prevents you from intentionally patching
-your program's binary.
+By default, @value{GDBN} opens the file containing your program's
+executable code (or the corefile) read-only.  This prevents accidental
+alterations to machine code; but it also prevents you from intentionally
+patching your program's binary.
 
 If you'd like to be able to patch the binary, you can specify that
 explicitly with the @code{set write} command.  For example, you might
@@ -6931,61 +7912,43 @@ repairs.
 @kindex set write
 @item set write on
 @itemx set write off
-If you specify @samp{set write on}, @value{GDBN} opens executable 
-@ifclear BARETARGET
-and core
-@end ifclear
-files for both reading and writing; if you specify @samp{set write
+If you specify @samp{set write on}, @value{GDBN} opens executable and
+core files for both reading and writing; if you specify @samp{set write
 off} (the default), @value{GDBN} opens them read-only.
 
 If you have already loaded a file, you must load it again (using the
-@code{exec-file}
-@ifclear BARETARGET
-or @code{core-file}
-@end ifclear
-command) after changing @code{set write}, for your new setting to take
-effect.
+@code{exec-file} or @code{core-file} command) after changing @code{set
+write}, for your new setting to take effect.
 
 @item show write
 @kindex show write
-Display whether executable files 
-@ifclear BARETARGET
-and core files 
-@end ifclear
-are opened for writing as well as reading.
+Display whether executable files and core files are opened for writing
+as well as reading.
 @end table
 
-@node GDB Files
+@node GDB Files, Targets, Altering, Top
 @chapter @value{GDBN} Files
 
-@value{GDBN} needs to know the file name of the program to be debugged, both in
-order to read its symbol table and in order to start your program.  
-@ifclear BARETARGET
-To debug a core dump of a previous run, you must also tell @value{GDBN}
-the name of the core dump file.
-@end ifclear
+@value{GDBN} needs to know the file name of the program to be debugged,
+both in order to read its symbol table and in order to start your
+program.  To debug a core dump of a previous run, you must also tell
+@value{GDBN} the name of the core dump file.
 
 @menu
 * Files::                       Commands to specify files
 * Symbol Errors::               Errors reading symbol files
 @end menu
 
-@node Files
+@node Files, Symbol Errors, GDB Files, GDB Files
 @section Commands to specify files
-@cindex symbol table
 
-@ifclear BARETARGET
+@cindex symbol table
 @cindex core dump file
-You may want to specify executable and core dump file names.
-The usual way to do this is at start-up time, using the arguments to 
-@value{GDBN}'s start-up commands (@pxref{Invocation, ,
-Getting In and Out of @value{GDBN}}).
-@end ifclear
-@ifset BARETARGET
-The usual way to specify an executable file name is with
-the command argument given when you start @value{GDBN}, (@pxref{Invocation,
-,Getting In and Out of @value{GDBN}}.
-@end ifset
+
+You may want to specify executable and core dump file names.  The usual
+way to do this is at start-up time, using the arguments to
+@value{GDBN}'s start-up commands (@pxref{Invocation, , Getting In and
+Out of @value{GDBN}}).
 
 Occasionally it is necessary to change to a different file during a
 @value{GDBN} session.  Or you may run @value{GDBN} and forget to specify
@@ -7005,6 +7968,7 @@ directories to search, just as the shell does when looking for a program
 to run.  You can change the value of this variable, for both @value{GDBN} 
 and your program, using the @code{path} command.
 
+@ifclear HPPA
 On systems with memory-mapped files, an auxiliary file
 @file{@var{filename}.syms} may hold symbol table information for
 @var{filename}.  If so, @value{GDBN} maps in the symbol table from
@@ -7013,6 +7977,7 @@ descriptions of the file options @samp{-mapped} and @samp{-readnow}
 (available on the command line, and with the commands @code{file},
 @code{symbol-file}, or @code{add-symbol-file}, described below), 
 for more information.
+@end ifclear
 
 @item file
 @code{file} with no argument makes @value{GDBN} discard any information it
@@ -7046,26 +8011,32 @@ executing it once.
 When @value{GDBN} is configured for a particular environment, it
 understands debugging information in whatever format is the standard
 generated for that environment; you may use either a @sc{gnu} compiler, or
-other compilers that adhere to the local conventions.  Best results are
-usually obtained from @sc{gnu} compilers; for example, using @code{@value{GCC}}
-you can generate debugging information for optimized code.
-
-On some kinds of object files, the @code{symbol-file} command does not
-normally read the symbol table in full right away.  Instead, it scans
-the symbol table quickly to find which source files and which symbols
-are present.  The details are read later, one source file at a time,
-as they are needed.
-
-The purpose of this two-stage reading strategy is to make @value{GDBN} start up
-faster.  For the most part, it is invisible except for occasional
-pauses while the symbol table details for a particular source file are
-being read.  (The @code{set verbose} command can turn these pauses
-into messages if desired.  @xref{Messages/Warnings, ,Optional warnings
-and messages}.) 
+other compilers that adhere to the local conventions.
+@ifclear HPPA
+Best results are usually obtained from @sc{gnu} compilers; for example,
+using @code{@value{GCC}} you can generate debugging information for
+optimized code.
+@end ifclear
+
+For most kinds of object files, with the exception of old SVR3 systems
+using COFF, the @code{symbol-file} command does not normally read the
+symbol table in full right away.  Instead, it scans the symbol table
+quickly to find which source files and which symbols are present.  The
+details are read later, one source file at a time, as they are needed.
+
+The purpose of this two-stage reading strategy is to make @value{GDBN}
+start up faster.  For the most part, it is invisible except for
+occasional pauses while the symbol table details for a particular source
+file are being read.  (The @code{set verbose} command can turn these
+pauses into messages if desired.  @xref{Messages/Warnings, ,Optional
+warnings and messages}.)
 
+@ifclear HPPA
 We have not implemented the two-stage strategy for COFF yet.  When the
 symbol table is stored in COFF format, @code{symbol-file} reads the
-symbol table data in full right away.
+symbol table data in full right away.  Note that ``stabs-in-COFF''
+still does the two-stage strategy, since the debug info is actually
+in stabs format.
 
 @kindex readnow
 @cindex reading symbols immediately
@@ -7079,8 +8050,9 @@ You can override the @value{GDBN} two-stage strategy for reading symbol
 tables by using the @samp{-readnow} option with any of the commands that
 load symbol table information, if you want to be sure @value{GDBN} has the
 entire symbol table available.  
+@end ifclear
 
-@ifclear BARETARGET
+@ifclear HPPA
 If memory-mapped files are available on your system through the
 @code{mmap} system call, you can use another option, @samp{-mapped}, to
 cause @value{GDBN} to write the symbols for your program into a reusable
@@ -7123,60 +8095,13 @@ executable file itself for other parts.
 to be used.
 
 Note that the core file is ignored when your program is actually running
-under @value{GDBN}.  So, if you have been running your program and you wish to
-debug a core file instead, you must kill the subprocess in which the
-program is running.  To do this, use the @code{kill} command
+under @value{GDBN}.  So, if you have been running your program and you
+wish to debug a core file instead, you must kill the subprocess in which
+the program is running.  To do this, use the @code{kill} command
 (@pxref{Kill Process, ,Killing the child process}).
 @end ifclear
 
-@kindex load @var{filename}
-@item load @var{filename}
-@ifset GENERIC
-Depending on what remote debugging facilities are configured into
-@value{GDBN}, the @code{load} command may be available.  Where it exists, it
-is meant to make @var{filename} (an executable) available for debugging
-on the remote system---by downloading, or dynamic linking, for example.
-@code{load} also records the @var{filename} symbol table in @value{GDBN}, like
-the @code{add-symbol-file} command.
-
-If your @value{GDBN} does not have a @code{load} command, attempting to
-execute it gets the error message ``@code{You can't do that when your
-target is @dots{}}''
-@end ifset
-
-The file is loaded at whatever address is specified in the executable.
-For some object file formats, you can specify the load address when you
-link the program; for other formats, like a.out, the object file format
-specifies a fixed address.
-@c FIXME! This would be a good place for an xref to the GNU linker doc.
-
-@ifset VXWORKS
-On VxWorks, @code{load} links @var{filename} dynamically on the
-current target system as well as adding its symbols in @value{GDBN}.
-@end ifset
-
-@ifset I960
-@cindex download to Nindy-960
-With the Nindy interface to an Intel 960 board, @code{load}
-downloads @var{filename} to the 960 as well as adding its symbols in
-@value{GDBN}.
-@end ifset
-
-@ifset H8
-@cindex download to H8/300 or H8/500
-@cindex H8/300 or H8/500 download
-@cindex download to Hitachi SH
-@cindex Hitachi SH download
-When you select remote debugging to a Hitachi SH, H8/300, or H8/500 board
-(@pxref{Hitachi Remote,,@value{GDBN} and Hitachi Microprocessors}),
-the @code{load} command downloads your program to the Hitachi board and also
-opens it as the current executable target for @value{GDBN} on your host
-(like the @code{file} command).
-@end ifset
-
-@code{load} does not repeat if you press @key{RET} again after using it.
-
-@ifclear BARETARGET
+@ifclear HPPA
 @kindex add-symbol-file
 @cindex dynamic linking
 @item add-symbol-file @var{filename} @var{address}
@@ -7208,6 +8133,7 @@ shared libraries, however if @value{GDBN} does not find yours, you can run
 @code{add-shared-symbol-file}.  It takes no arguments.
 @end ifclear
 
+@ifclear HPPA
 @kindex section
 @item section
 The @code{section} command changes the base address of section SECTION of 
@@ -7216,37 +8142,43 @@ section addresses, (such as in the a.out format), or when the addresses
 specified in the file itself are wrong.  Each section must be changed 
 separately.  The ``info files'' command lists all the sections and their 
 addresses.
+@end ifclear
 
 @kindex info files
 @kindex info target
 @item info files
 @itemx info target
-@code{info files} and @code{info target} are synonymous; both print
-the current target (@pxref{Targets, ,Specifying a Debugging Target}),
-including the
-@ifclear BARETARGET
-names of the executable and core dump files
-@end ifclear
-@ifset BARETARGET
-name of the executable file
-@end ifset
-currently in use by @value{GDBN}, and the files from which symbols were
-loaded.  The command @code{help target} lists all possible targets
-rather than current ones.
+@code{info files} and @code{info target} are synonymous; both print the
+current target (@pxref{Targets, ,Specifying a Debugging Target}),
+including the names of the executable and core dump files currently in
+use by @value{GDBN}, and the files from which symbols were loaded.  The
+command @code{help target} lists all possible targets rather than
+current ones.
+
 @end table
 
 All file-specifying commands allow both absolute and relative file names
 as arguments.  @value{GDBN} always converts the file name to an absolute file
 name and remembers it that way.
 
-@ifclear BARETARGET
 @cindex shared libraries
-@value{GDBN} supports SunOS, SVr4, Irix 5, and IBM RS/6000 shared libraries.
+@ifclear HPPA
+@c added HP-UX -- Kim (HP writer)
+@value{GDBN} supports HP-UX, SunOS, SVr4, Irix 5, and IBM RS/6000 shared
+libraries.
+@end ifclear
+@ifset HPPA
+@value{GDBN} supports HP-UX shared libraries.
+@end ifset
 @value{GDBN} automatically loads symbol definitions from shared libraries
 when you use the @code{run} command, or when you examine a core file.
 (Before you issue the @code{run} command, @value{GDBN} does not understand
 references to a function in a shared library, however---unless you are
 debugging a core file).
+@ifset HPPA
+If the program loads a library explicitly, @value{GDBN} automatically
+loads the symbols at the time of the @code{shl_load} call.
+@end ifset
 @c FIXME: some @value{GDBN} release may permit some refs to undef
 @c FIXME...symbols---eg in a break cmd---assuming they are from a shared
 @c FIXME...lib; check this from time to time when updating manual
@@ -7270,9 +8202,37 @@ required by your program for a core file or after typing @code{run}.  If
 @var{regex} is omitted all shared libraries required by your program are
 loaded.
 @end table
-@end ifclear
 
-@node Symbol Errors
+@ifset HPPA
+@value{GDBN} detects the loading of a shared library and automatically
+reads in symbols from the newly loaded library, up to a threshold that
+is initially set but that you can modify if you wish.
+
+Beyond that threshold, symbols from shared libraries must be explicitly
+loaded.  To load these symbols, use the command @code{sharedlibrary}
+@var{filename}.  The base address of the shared library is determined
+automatically by @value{GDBN} and need not be specified.
+
+To display or set the threshold, use the commands:
+
+@table @code
+@kindex set auto-solib-add
+@item set auto-solib-add @var{threshold}
+Set the autoloading size threshold, in megabytes.  If @var{threshold} is
+nonzero, symbols from all shared object libraries will be loaded
+automatically when the inferior begins execution or when the dynamic
+linker informs @value{GDBN} that a new library has been loaded, until
+the symbol table of the program and libraries exceeds this threshold.
+Otherwise, symbols must be loaded manually, using the
+@code{sharedlibrary} command.  The default threshold is 100 megabytes.
+
+@kindex show auto-solib-add
+@item show auto-solib-add
+Display the current autoloading size threshold, in megabytes.
+@end table
+@end ifset
+
+@node Symbol Errors,  , Files, GDB Files
 @section Errors reading symbol files
 
 While reading a symbol file, @value{GDBN} occasionally encounters problems,
@@ -7335,46 +8295,40 @@ with this name.
 
 @item unknown symbol type @code{0x@var{nn}}
 
-The symbol information contains new data types that @value{GDBN} does not yet
-know how to read.  @code{0x@var{nn}} is the symbol type of the misunderstood
-information, in hexadecimal.
+The symbol information contains new data types that @value{GDBN} does
+not yet know how to read.  @code{0x@var{nn}} is the symbol type of the
+misunderstood information, in hexadecimal.
 
-@value{GDBN} circumvents the error by ignoring this symbol information.  This
-usually allows you to debug your program, though certain symbols
+@value{GDBN} circumvents the error by ignoring this symbol information.
+This usually allows you to debug your program, though certain symbols
 are not accessible.  If you encounter such a problem and feel like
-debugging it, you can debug @code{@value{GDBP}} with itself, breakpoint on
-@code{complain}, then go up to the function @code{read_dbx_symtab} and
-examine @code{*bufp} to see the symbol.
+debugging it, you can debug @code{@value{GDBP}} with itself, breakpoint
+on @code{complain}, then go up to the function @code{read_dbx_symtab}
+and examine @code{*bufp} to see the symbol.
 
 @item stub type has NULL name
-@value{GDBN} could not find the full definition for
-@ifclear CONLY
-a struct or class.
-@end ifclear
-@ifset CONLY
-a struct.
-@end ifset
 
-@ifclear CONLY
-@item const/volatile indicator missing (ok if using g++ v1.x), got@dots{}
+@value{GDBN} could not find the full definition for a struct or class.
 
+@item const/volatile indicator missing (ok if using g++ v1.x), got@dots{}
 The symbol information for a C++ member function is missing some
-information that recent versions of the compiler should have output
-for it.
-@end ifclear
+information that recent versions of the compiler should have output for
+it.
 
 @item info mismatch between compiler and debugger
 
 @value{GDBN} could not parse a type specification output by the compiler.
+
 @end table
 
-@node Targets
+@node Targets, Controlling GDB, GDB Files, Top
 @chapter Specifying a Debugging Target
+
 @cindex debugging target
 @kindex target
 
 A @dfn{target} is the execution environment occupied by your program.
-@ifclear BARETARGET
+@ifclear HPPA
 Often, @value{GDBN} runs in the same host environment as your program; in
 that case, the debugging target is specified as a side effect when you
 use the @code{file} or @code{core} commands.  When you need more
@@ -7382,31 +8336,53 @@ flexibility---for example, running @value{GDBN} on a physically separate
 host, or controlling a standalone system over a serial port or a
 realtime system over a TCP/IP connection---you 
 @end ifclear
-@ifset BARETARGET
-You
-@end ifset
+@ifset HPPA
+On HP-UX systems, @value{GDBN} has been configured to support debugging
+of processes running on the PA-RISC architecture.  This means that the
+only possible targets are:
+
+@itemize @bullet
+@item
+An executable that has been compiled and linked to run on HP-UX
+
+@item
+A live HP-UX process, either started by @value{GDBN} (with the
+@code{run} command) or started outside of @value{GDBN} and attached to
+(with the @code{attach} command)
+
+@item
+A core file generated by an HP-UX process that previously aborted
+execution
+@end itemize
+
+@value{GDBN} on HP-UX has not been configured to support remote
+debugging, or to support programs running on other platforms. You
 can use the @code{target} command to specify one of the target types
 configured for @value{GDBN} (@pxref{Target Commands, ,Commands for managing
 targets}).
+@end ifset
 
 @menu
 * Active Targets::              Active targets
 * Target Commands::             Commands for managing targets
+* Byte Order::                  Choosing target byte order
 * Remote::                      Remote debugging
+* KOD::                         Kernel Object Display
+
 @end menu
 
-@node Active Targets
+@node Active Targets, Target Commands, Targets, Targets
 @section Active targets
+
 @cindex stacking targets
 @cindex active targets
 @cindex multiple targets
 
-@ifclear BARETARGET
 There are three classes of targets: processes, core files, and
-executable files.  @value{GDBN} can work concurrently on up to three active
-targets, one in each class.  This allows you to (for example) start a
-process and inspect its activity without abandoning your work on a core
-file.
+executable files.  @value{GDBN} can work concurrently on up to three
+active targets, one in each class.  This allows you to (for example)
+start a process and inspect its activity without abandoning your work on
+a core file.
 
 For example, if you execute @samp{gdb a.out}, then the executable file
 @code{a.out} is the only active target.  If you designate a core file as
@@ -7417,48 +8393,32 @@ requests for memory addresses.  (Typically, these two classes of target
 are complementary, since core files contain only a program's
 read-write memory---variables and so on---plus machine status, while
 executable files contain only the program text and initialized data.)
-@end ifclear
 
 When you type @code{run}, your executable file becomes an active process
-target as well.  When a process target is active, all @value{GDBN} commands
-requesting memory addresses refer to that target; addresses in an 
-@ifclear BARETARGET
-active core file or 
-@end ifclear
-executable file target are obscured while the process
-target is active.
+target as well.  When a process target is active, all @value{GDBN}
+commands requesting memory addresses refer to that target; addresses in
+an active core file or executable file target are obscured while the
+process target is active.
 
-@ifset BARETARGET
-Use the @code{exec-file} command to select a
-new executable target (@pxref{Files, ,Commands to specify
-files}).
-@end ifset
-@ifclear BARETARGET
-Use the @code{core-file} and @code{exec-file} commands to select a
-new core file or executable target (@pxref{Files, ,Commands to specify
+Use the @code{core-file} and @code{exec-file} commands to select a new
+core file or executable target (@pxref{Files, ,Commands to specify
 files}).  To specify as a target a process that is already running, use
-the @code{attach} command (@pxref{Attach, ,Debugging an
-already-running process}).
-@end ifclear
+the @code{attach} command (@pxref{Attach, ,Debugging an already-running
+process}).
 
-@node Target Commands
+@node Target Commands, Byte Order, Active Targets, Targets
 @section Commands for managing targets
 
 @table @code
 @item target @var{type} @var{parameters}
-Connects the @value{GDBN} host environment to a target
-@ifset BARETARGET
-machine.
-@end ifset
-@ifclear BARETARGET
-machine or process.  A target is typically a protocol for talking to
-debugging facilities.  You use the argument @var{type} to specify the
-type or protocol of the target machine.
+Connects the @value{GDBN} host environment to a target machine or
+process.  A target is typically a protocol for talking to debugging
+facilities.  You use the argument @var{type} to specify the type or
+protocol of the target machine.
 
 Further @var{parameters} are interpreted by the target protocol, but
 typically include things like device names or host names to connect
 with, process numbers, and baud rates.
-@end ifclear
 
 The @code{target} command does not repeat if you press @key{RET} again
 after executing the command.
@@ -7475,14 +8435,14 @@ select it.
 
 @kindex set gnutarget
 @item set gnutarget @var{args}
-@value{GDBN}uses its own library BFD to read your files.  @value{GDBN} 
+@value{GDBN} uses its own library BFD to read your files.  @value{GDBN} 
 knows whether it is reading an @dfn{executable},
-a @dfn{core}, or a @dfn{.o} file, however you can specify the file format 
+a @dfn{core}, or a @dfn{.o} file; however, you can specify the file format 
 with the @code{set gnutarget} command.  Unlike most @code{target} commands, 
 with @code{gnutarget} the @code{target} refers to a program, not a machine.
 
 @emph{Warning:} To specify a file format with @code{set gnutarget},
-you must know the actual BFD name.  
+you must know the actual BFD name.
 
 @noindent @xref{Files, , Commands to specify files}.
 
@@ -7490,12 +8450,17 @@ you must know the actual BFD name.
 @item show gnutarget
 Use the @code{show gnutarget} command to display what file format
 @code{gnutarget} is set to read.  If you have not set @code{gnutarget},
-@value{GDBN} will determine the file format for each file automatically
-and @code{show gnutarget} displays @code{The current BDF target is "auto"}.
+@value{GDBN} will determine the file format for each file automatically,
+and @code{show gnutarget} displays @samp{The current BDF target is "auto"}.
 @end table
 
+@ifclear HPPA
 Here are some common targets (available, or not, depending on the GDB
 configuration):
+@end ifclear
+@ifset HPPA
+These are the valid targets on HP-UX systems:
+@end ifset
 
 @table @code
 @kindex target exec
@@ -7503,14 +8468,11 @@ configuration):
 An executable file.  @samp{target exec @var{program}} is the same as
 @samp{exec-file @var{program}}.
 
-@ifclear BARETARGET
 @kindex target core
 @item target core @var{filename}
 A core dump file.  @samp{target core @var{filename}} is the same as
 @samp{core-file @var{filename}}.
-@end ifclear
 
-@ifset REMOTESTUB
 @kindex target remote
 @item target remote @var{dev}
 Remote serial target in GDB-specific protocol.  The argument @var{dev}
@@ -7519,20 +8481,27 @@ specifies what serial device to use for the connection (e.g.
 now supports the @code{load} command.  This is only useful if you have
 some other way of getting the stub to the target system, and you can put
 it somewhere in memory where it won't get clobbered by the download.
-@end ifset
 
-@ifset SIMS
+@ifclear HPPA
 @kindex target sim
 @item target sim
 CPU simulator.  @xref{Simulator,,Simulated CPU Target}.
-@end ifset
+@end ifclear
+@end table
 
-@ifset AMD29K
-@kindex target udi
-@item target udi @var{keyword}
-Remote AMD29K target, using the AMD UDI protocol.  The @var{keyword}
-argument specifies which 29K board or simulator to use.  @xref{UDI29K
-Remote,,The UDI protocol for AMD29K}.
+The following targets are all CPU-specific, and only available for
+specific configurations.
+@c should organize by CPU
+
+@table @code
+
+@kindex target abug
+@item target abug @var{dev}
+ABug ROM monitor for M68K.
+
+@kindex target adapt
+@item target adapt @var{dev}
+Adapt monitor for A29K.
 
 @kindex target amd-eb
 @item target amd-eb @var{dev} @var{speed} @var{PROG}
@@ -7543,27 +8512,126 @@ Remote PC-resident AMD EB29K board, attached over serial lines.
 name of the program to be debugged, as it appears to DOS on the PC.
 @xref{EB29K Remote, ,The EBMON protocol for AMD29K}.
 
-@end ifset
-@ifset H8
+@kindex target array
+@item target array @var{dev}
+Array Tech LSI33K RAID controller board.
+
+@kindex target bug
+@item target bug @var{dev}
+BUG monitor, running on a MVME187 (m88k) board.
+
+@kindex target cpu32bug
+@item target cpu32bug @var{dev}
+CPU32BUG monitor, running on a CPU32 (M68K) board.
+
+@kindex target dbug
+@item target dbug @var{dev}
+dBUG ROM monitor for Motorola ColdFire.
+
+@kindex target ddb
+@item target ddb @var{dev}
+NEC's DDB monitor for Mips Vr4300.
+
+@kindex target dink32
+@item target dink32 @var{dev}
+DINK32 ROM monitor for PowerPC.
+
+@kindex target e7000
+@item target e7000 @var{dev}
+E7000 emulator for Hitachi H8 and SH.
+
+@kindex target es1800
+@item target es1800 @var{dev}
+ES-1800 emulator for M68K.
+
+@kindex target est
+@item target est @var{dev}
+EST-300 ICE monitor, running on a CPU32 (M68K) board.
+
 @kindex target hms
 @item target hms @var{dev}
 A Hitachi SH, H8/300, or H8/500 board, attached via serial line to your host.
-@ifclear H8EXCLUSIVE
 Use special commands @code{device} and @code{speed} to control the serial
 line and the communications speed used.
-@end ifclear
 @xref{Hitachi Remote,,@value{GDBN} and Hitachi Microprocessors}.
 
-@end ifset
-@ifset I960
+@kindex target lsi
+@item target lsi @var{dev}
+LSI ROM monitor for Mips.
+
+@kindex target m32r
+@item target m32r @var{dev}
+Mitsubishi M32R/D ROM monitor.
+
+@kindex target mips
+@item target mips @var{dev}
+IDT/SIM ROM monitor for Mips.
+
+@kindex target mon960
+@item target mon960 @var{dev}
+MON960 monitor for Intel i960.
+
 @kindex target nindy
 @item target nindy @var{devicename}
 An Intel 960 board controlled by a Nindy Monitor.  @var{devicename} is
 the name of the serial device to use for the connection, e.g.
 @file{/dev/ttya}.  @xref{i960-Nindy Remote, ,@value{GDBN} with a remote i960 (Nindy)}.
 
-@end ifset
-@ifset ST2000
+@kindex target nrom
+@item target nrom @var{dev}
+NetROM ROM emulator.  This target only supports downloading.
+
+@kindex target op50n
+@item target op50n @var{dev}
+OP50N monitor, running on an OKI HPPA board.
+
+@kindex target pmon
+@item target pmon @var{dev}
+PMON ROM monitor for Mips.
+
+@kindex target ppcbug
+@item target ppcbug @var{dev}
+@kindex target ppcbug1
+@item target ppcbug1 @var{dev}
+PPCBUG ROM monitor for PowerPC.
+
+@kindex target r3900
+@item target r3900 @var{dev}
+Densan DVE-R3900 ROM monitor for Toshiba R3900 Mips.
+
+@kindex target rdi
+@item target rdi @var{dev}
+ARM Angel monitor, via RDI library interface.
+@kindex target rdp
+@item target rdp @var{dev}
+ARM Demon monitor.
+
+@kindex target rom68k
+@item target rom68k @var{dev}
+ROM 68K monitor, running on an M68K IDP board.
+
+@kindex target rombug
+@item target rombug @var{dev}
+ROMBUG ROM monitor for OS/9000.
+
+@kindex target sds
+@item target sds @var{dev}
+SDS monitor, running on a PowerPC board (such as Motorola's ADS).
+
+@kindex target sparclite
+@item target sparclite @var{dev}
+Fujitsu sparclite boards, used only for the purpose of loading.  
+You must use an additional command to debug the program. 
+For example: target remote @var{dev} using @value{GDBN} standard 
+remote protocol.
+
+@kindex target sh3
+@kindex target sh3e
+@item target sh3 @var{dev}
+@item target sh3e @var{dev}
+Hitachi SH-3 and SH-3E target systems.
+
 @kindex target st2000
 @item target st2000 @var{dev} @var{speed}
 A Tandem ST2000 phone switch, running Tandem's STDBUG protocol.  @var{dev}
@@ -7571,54 +8639,76 @@ is the name of the device attached to the ST2000 serial line;
 @var{speed} is the communication line speed.  The arguments are not used
 if @value{GDBN} is configured to connect to the ST2000 using TCP or Telnet.
 @xref{ST2000 Remote,,@value{GDBN} with a Tandem ST2000}.
-@end ifset
 
-@ifset VXWORKS
+@kindex target udi
+@item target udi @var{keyword}
+Remote AMD29K target, using the AMD UDI protocol.  The @var{keyword}
+argument specifies which 29K board or simulator to use.  @xref{UDI29K
+Remote,,The UDI protocol for AMD29K}.
+
 @kindex target vxworks
 @item target vxworks @var{machinename}
 A VxWorks system, attached via TCP/IP.  The argument @var{machinename}
 is the target system's machine name or IP address.
 @xref{VxWorks Remote, ,@value{GDBN} and VxWorks}.
-@end ifset
-
-@kindex target cpu32bug
-@item target cpu32bug @var{dev}
-CPU32BUG monitor, running on a CPU32 (M68K) board.
-
-@kindex target op50n
-@item target op50n @var{dev}
-OP50N monitor, running on an OKI HPPA board.
 
 @kindex target w89k
 @item target w89k @var{dev}
 W89K monitor, running on a Winbond HPPA board.
 
-@kindex target est
-@item target est @var{dev}
-EST-300 ICE monitor, running on a CPU32 (M68K) board.
-
-@kindex target rom68k
-@item target rom68k @var{dev}
-ROM 68K monitor, running on an IDP board.
-
-@kindex target array
-@item target array @var{dev}
-Array Tech LSI33K RAID controller board.
-
-@kindex target sparclite
-@item target sparclite @var{dev}
-Fujitsu sparclite boards, used only for the purpose of loading.  
-You must use an additional command to debug the program. 
-For example: target remote @var{dev} using @value{GDBN} standard 
-remote protocol.
 @end table
 
-@ifset GENERIC
 Different targets are available on different configurations of @value{GDBN}; 
 your configuration may have more or fewer targets.
-@end ifset
 
+Many remote targets require you to download the executable's code
+once you've successfully established a connection.
+
+@table @code
+
+@kindex load @var{filename}
+@item load @var{filename}
+Depending on what remote debugging facilities are configured into
+@value{GDBN}, the @code{load} command may be available.  Where it exists, it
+is meant to make @var{filename} (an executable) available for debugging
+on the remote system---by downloading, or dynamic linking, for example.
+@code{load} also records the @var{filename} symbol table in @value{GDBN}, like
+the @code{add-symbol-file} command.
+
+If your @value{GDBN} does not have a @code{load} command, attempting to
+execute it gets the error message ``@code{You can't do that when your
+target is @dots{}}''
+
+The file is loaded at whatever address is specified in the executable.
+For some object file formats, you can specify the load address when you
+link the program; for other formats, like a.out, the object file format
+specifies a fixed address.
+@c FIXME! This would be a good place for an xref to the GNU linker doc.
+
+On VxWorks, @code{load} links @var{filename} dynamically on the
+current target system as well as adding its symbols in @value{GDBN}.
+
+@cindex download to Nindy-960
+With the Nindy interface to an Intel 960 board, @code{load}
+downloads @var{filename} to the 960 as well as adding its symbols in
+@value{GDBN}.
+
+@cindex download to H8/300 or H8/500
+@cindex H8/300 or H8/500 download
+@cindex download to Hitachi SH
+@cindex Hitachi SH download
+When you select remote debugging to a Hitachi SH, H8/300, or H8/500 board
+(@pxref{Hitachi Remote,,@value{GDBN} and Hitachi Microprocessors}),
+the @code{load} command downloads your program to the Hitachi board and also
+opens it as the current executable target for @value{GDBN} on your host
+(like the @code{file} command).
+
+@code{load} does not repeat if you press @key{RET} again after using it.
+@end table
+
+@node Byte Order, Remote, Target Commands, Targets
 @section Choosing target byte order
+
 @cindex choosing target byte order
 @cindex target byte order
 @kindex set endian big
@@ -7626,17 +8716,37 @@ your configuration may have more or fewer targets.
 @kindex set endian auto
 @kindex show endian
 
-You can now choose which byte order to use with a target system.
-Use the @code{set endian big} and @code{set endian little} commands.  
-Use the @code{set endian auto} command to instruct
-@value{GDBN} to use the byte order associated with the executable.
-You can see the current setting for byte order with the @code{show endian}
-command.
-@emph{Warning:} Currently, only embedded MIPS configurations support 
-dynamic selection of target byte order.
+Some types of processors, such as the MIPS, PowerPC, and Hitachi SH,
+offer the ability to run either big-endian or little-endian byte
+orders.  Usually the executable or symbol will include a bit to
+designate the endian-ness, and you will not need to worry about
+which to use.  However, you may still find it useful to adjust
+GDB's idea of processor endian-ness manually.
+
+@table @code
+@kindex set endian big
+@item set endian big
+Instruct @value{GDBN} to assume the target is big-endian.
+
+@kindex set endian little
+@item set endian little
+Instruct @value{GDBN} to assume the target is little-endian.
+
+@kindex set endian auto
+@item set endian auto
+Instruct @value{GDBN} to use the byte order associated with the
+executable.
+
+@item show endian
+Display @value{GDBN}'s current idea of the target byte order.
 
-@node Remote
+@end table
+
+Note that these commands merely adjust interpretation of symbolic
+data on the host, and that they have absolutely no effect on the
+target system.
+
+@node Remote, KOD, Byte Order, Targets
 @section Remote debugging
 @cindex remote debugging
 
@@ -7656,40 +8766,62 @@ communicate with @value{GDBN}.
 Other remote targets may be available in your
 configuration of @value{GDBN}; use @code{help target} to list them.
 
-@ifset GENERIC
 @c Text on starting up GDB in various specific cases; it goes up front
 @c in manuals configured for any of those particular situations, here
 @c otherwise.
 @menu
-@ifset REMOTESTUB
 * Remote Serial::               @value{GDBN} remote serial protocol
-@end ifset
-@ifset I960
 * i960-Nindy Remote::          @value{GDBN} with a remote i960 (Nindy)
-@end ifset
-@ifset AMD29K
 * UDI29K Remote::               The UDI protocol for AMD29K
 * EB29K Remote::               The EBMON protocol for AMD29K
-@end ifset
-@ifset VXWORKS
 * VxWorks Remote::             @value{GDBN} and VxWorks
-@end ifset
-@ifset ST2000
 * ST2000 Remote::               @value{GDBN} with a Tandem ST2000
-@end ifset
-@ifset H8
 * Hitachi Remote::              @value{GDBN} and Hitachi Microprocessors
-@end ifset
-@ifset MIPS
 * MIPS Remote::                        @value{GDBN} and MIPS boards
-@end ifset
-@ifset SIMS
+* Sparclet Remote::             @value{GDBN} and Sparclet boards
 * Simulator::                   Simulated CPU target
-@end ifset
 @end menu
 
 @include remote.texi
-@end ifset
+
+
+@node KOD,  , Remote, Targets
+@section Kernel Object Display
+@cindex kernel object display
+@cindex kernel object
+@cindex KOD
+
+Some targets support kernel object display.  Using this facility,
+@value{GDBN} communicates specially with the underlying operating system
+and can display information about operating system-level objects such as
+mutexes and other synchronization objects.  Exactly which objects can be
+displayed is determined on a per-OS basis.
+
+Use the @code{set os} command to set the operating system.  This tells
+@value{GDBN} which kernel object display module to initialize:
+
+@example
+(gdb) set os cisco
+@end example
+
+If @code{set os} succeeds, @value{GDBN} will display some information
+about the operating system, and will create a new @code{info} command
+which can be used to query the target.  The @code{info} command is named
+after the operating system:
+
+@example
+(gdb) info cisco
+List of Cisco Kernel Objects
+Object     Description
+any        Any and all objects
+@end example
+
+Further subcommands can be used to query about particular objects known
+by the kernel.
+
+There is currently no way to determine whether a given operating system
+is supported other than to try it.
+
 
 @node Controlling GDB
 @chapter Controlling @value{GDBN}
@@ -7708,7 +8840,7 @@ here.
 * Messages/Warnings::           Optional warnings and messages
 @end menu
 
-@node Prompt
+@node Prompt, Editing, Controlling GDB, Controlling GDB
 @section Prompt
 
 @cindex prompt
@@ -7734,7 +8866,7 @@ Directs @value{GDBN} to use @var{newprompt} as its prompt string henceforth.
 Prints a line of the form: @samp{Gdb's prompt is: @var{your-prompt}}
 @end table
 
-@node Editing
+@node Editing, History, Prompt, Controlling GDB
 @section Command editing
 @cindex readline
 @cindex command line editing
@@ -7764,7 +8896,7 @@ Disable command line editing.
 Show whether command line editing is enabled.
 @end table
 
-@node History
+@node History, Screen Size, Editing, Controlling GDB
 @section Command history
 
 @value{GDBN} can keep track of the commands you type during your
@@ -7860,7 +8992,7 @@ Print ten commands centered on command number @var{n}.
 Print ten commands just after the commands last printed.
 @end table
 
-@node Screen Size
+@node Screen Size, Numbers, History, Controlling GDB
 @section Screen size
 @cindex size of screen
 @cindex pauses in output
@@ -7901,7 +9033,7 @@ Likewise, you can specify @samp{set width 0} to prevent @value{GDBN}
 from wrapping its output.
 @end table
 
-@node Numbers
+@node Numbers, Messages/Warnings, Screen Size, Controlling GDB
 @section Numbers
 @cindex number representation
 @cindex entering numbers
@@ -7947,7 +9079,7 @@ Display the current default base for numeric input.
 Display the current default base for numeric display.
 @end table
 
-@node Messages/Warnings
+@node Messages/Warnings,  , Numbers, Controlling GDB
 @section Optional warnings and messages
 
 By default, @value{GDBN} is silent about its inner workings.  If you are running
@@ -8018,7 +9150,7 @@ Enables confirmation requests (the default).
 Displays state of confirmation requests.
 @end table
 
-@node Sequences
+@node Sequences, Emacs, Controlling GDB, Top
 @chapter Canned Sequences of Commands
 
 Aside from breakpoint commands (@pxref{Break Commands, ,Breakpoint
@@ -8027,12 +9159,12 @@ for execution as a unit: user-defined commands and command files.
 
 @menu
 * Define::                      User-defined commands
-* Hooks::                      User-defined command hooks
+* Hooks::                       User-defined command hooks
 * Command Files::               Command files
 * Output::                      Commands for controlled output
 @end menu
 
-@node Define
+@node Define, Hooks, Sequences, Sequences
 @section User-defined commands
 
 @cindex user-defined command
@@ -8121,7 +9253,7 @@ without asking when used inside a user-defined command.  Many @value{GDBN}
 commands that normally print messages to say what they are doing omit the 
 messages when used in a user-defined command.
 
-@node Hooks
+@node Hooks, Command Files, Define, Sequences
 @section User-defined command hooks
 @cindex command files
 
@@ -8135,7 +9267,6 @@ In addition, a pseudo-command, @samp{stop} exists.  Defining
 execution stops in your program: before breakpoint commands are run,
 displays are printed, or the stack frame is printed.
 
-@ifclear BARETARGET
 For example, to ignore @code{SIGALRM} signals while
 single-stepping, but treat them normally during normal execution,
 you could define:
@@ -8153,7 +9284,6 @@ define hook-continue
 handle SIGLARM pass
 end
 @end example
-@end ifclear
 
 You can define a hook for any single-word command in @value{GDBN}, but
 not for command aliases; you should define a hook for the basic command
@@ -8167,7 +9297,7 @@ If an error occurs during the execution of your hook, execution of
 If you try to define a hook which does not match any known command, you
 get a warning from the @code{define} command.
 
-@node Command Files
+@node Command Files, Output, Hooks, Sequences
 @section Command files
 
 @cindex command files
@@ -8177,25 +9307,23 @@ An empty line in a command file does nothing; it does not mean to repeat
 the last command, as it would from the terminal.
 
 @cindex init file
-@cindex @file{@value{GDBINIT}}
+@cindex @file{.gdbinit}
 When you start @value{GDBN}, it automatically executes commands from its
-@dfn{init files}.  These are files named @file{@value{GDBINIT}}.
-@value{GDBN} reads the init file (if any) in your home directory, then
-processes command line options and operands, and then reads the init
-file (if any) in the current working directory.  This is so the init
-file in your home directory can set options (such as @code{set
-complaints}) which affect the processing of the command line options and
-operands.  The init files are not executed if you use the @samp{-nx}
-option; @pxref{Mode Options, ,Choosing modes}.
-
-@ifset GENERIC
+@dfn{init files}.  These are files named @file{.gdbinit} on Unix, or
+@file{gdb.ini} on DOS/Windows.  @value{GDBN} reads the init file (if
+any) in your home directory, then processes command line options and
+operands, and then reads the init file (if any) in the current working
+directory.  This is so the init file in your home directory can set
+options (such as @code{set complaints}) which affect the processing of
+the command line options and operands.  The init files are not executed
+if you use the @samp{-nx} option; @pxref{Mode Options, ,Choosing modes}.
+
 @cindex init file name
 On some configurations of @value{GDBN}, the init file is known by a
 different name (these are typically environments where a specialized
-form of @value{GDBN} may need to coexist with other forms, 
-hence a different name
-for the specialized version's init file).  These are the environments
-with special init file names:
+form of @value{GDBN} may need to coexist with other forms, hence a
+different name for the specialized version's init file).  These are the
+environments with special init file names:
 
 @kindex .vxgdbinit
 @itemize @bullet
@@ -8210,7 +9338,6 @@ OS68K (Enea Data Systems real-time OS): @samp{.os68gdbinit}
 @item
 ES-1800 (Ericsson Telecom AB M68000 emulator): @samp{.esgdbinit}
 @end itemize
-@end ifset
 
 You can also request the execution of a command file with the
 @code{source} command:
@@ -8230,7 +9357,7 @@ without asking when used in a command file.  Many @value{GDBN} commands that
 normally print messages to say what they are doing omit the messages
 when called from command files.
 
-@node Output
+@node Output,  , Command Files, Sequences
 @section Commands for controlled output
 
 During the execution of a command file or a user-defined command, normal
@@ -8306,8 +9433,7 @@ string are the simple ones that consist of backslash followed by a
 letter.
 @end table
 
-@ifclear DOSHOST
-@node Emacs
+@node Emacs, GDB Bugs, Sequences, Top
 @chapter Using @value{GDBN} under @sc{gnu} Emacs
 
 @cindex Emacs
@@ -8320,6 +9446,9 @@ To use this interface, use the command @kbd{M-x gdb} in Emacs.  Give the
 executable file you want to debug as an argument.  This command starts
 @value{GDBN} as a subprocess of Emacs, with input and output through a newly
 created Emacs buffer.
+@ifset HPPA
+(Do not use the @code{-tui} option to run @value{GDBN} from Emacs.)
+@end ifset
 
 Using @value{GDBN} under Emacs is just like using @value{GDBN} normally except for two
 things:
@@ -8479,38 +9608,10 @@ environment.  Users of this environment can use a new command,
 @code{inspect} which performs identically to @code{print} except that
 each value is printed in its own window.
 @end ignore
-@end ifclear
-
-@ifset LUCID
-@node Energize
-@chapter Using @value{GDBN} with Energize
-
-@cindex Energize
-The Energize Programming System is an integrated development environment
-that includes a point-and-click interface to many programming tools.
-When you use @value{GDBN} in this environment, you can use the standard
-Energize graphical interface to drive @value{GDBN}; you can also, if you
-choose, type @value{GDBN} commands as usual in a debugging window.  Even if
-you use the graphical interface, the debugging window (which uses Emacs,
-and resembles the standard @sc{gnu} Emacs interface to 
-@value{GDBN}) displays the
-equivalent commands, so that the history of your debugging session is
-properly reflected.
-
-When Energize starts up a @value{GDBN} session, it uses one of the
-command-line options @samp{-energize} or @samp{-cadillac} (``cadillac''
-is the name of the communications protocol used by the Energize system).
-This option makes @value{GDBN} run as one of the tools in the Energize Tool
-Set: it sends all output to the Energize kernel, and accept input from
-it as well.
-
-See the user manual for the Energize Programming System for 
-information on how to use the Energize graphical interface and the other
-development tools that Energize integrates with @value{GDBN}.
-
-@end ifset
 
 @node GDB Bugs
+@c links whacked to pacify makeinfo
+@c , Command Line Editing, Emacs, Top
 @chapter Reporting Bugs in @value{GDBN}
 @cindex bugs in @value{GDBN}
 @cindex reporting bugs in @value{GDBN}
@@ -8530,7 +9631,7 @@ information that enables us to fix the bug.
 * Bug Reporting::               How to report bugs
 @end menu
 
-@node Bug Criteria
+@node Bug Criteria, Bug Reporting, GDB Bugs, GDB Bugs
 @section Have you found a bug?
 @cindex bug criteria
 
@@ -8546,7 +9647,9 @@ If the debugger gets a fatal signal, for any input whatever, that is a
 
 @cindex error on valid input
 @item
-If @value{GDBN} produces an error message for valid input, that is a bug.
+If @value{GDBN} produces an error message for valid input, that is a
+bug.  (Note that if you're cross debugging, the problem may also be
+somewhere in the connection to the target.)
 
 @cindex invalid input
 @item
@@ -8560,11 +9663,12 @@ If you are an experienced user of debugging tools, your suggestions
 for improvement of @value{GDBN} are welcome in any case.
 @end itemize
 
-@node Bug Reporting
+@node Bug Reporting,  , Bug Criteria, GDB Bugs
 @section How to report bugs
 @cindex bug reports
 @cindex @value{GDBN} bugs, reporting
 
+@ifclear HPPA
 A number of companies and individuals offer support for @sc{gnu} products.
 If you obtained @value{GDBN} from a support organization, we recommend you
 contact that organization first.
@@ -8572,18 +9676,19 @@ contact that organization first.
 You can find contact information for many support companies and
 individuals in the file @file{etc/SERVICE} in the @sc{gnu} Emacs
 distribution.
+@c should add a web page ref...
 
-In any event, we also recommend that you send bug reports for @value{GDBN} to one
-of these addresses:
+In any event, we also recommend that you send bug reports for
+@value{GDBN} to this addresses:
 
 @example
 bug-gdb@@prep.ai.mit.edu
-@{ucbvax|mit-eddie|uunet@}!prep.ai.mit.edu!bug-gdb
 @end example
 
 @strong{Do not send bug reports to @samp{info-gdb}, or to
-@samp{help-gdb}, or to any newsgroups.} Most users of @value{GDBN} do not want to
-receive bug reports.  Those that do have arranged to receive @samp{bug-gdb}.
+@samp{help-gdb}, or to any newsgroups.} Most users of @value{GDBN} do
+not want to receive bug reports.  Those that do have arranged to receive
+@samp{bug-gdb}.
 
 The mailing list @samp{bug-gdb} has a newsgroup @samp{gnu.gdb.bug} which
 serves as a repeater.  The mailing list and the newsgroup carry exactly
@@ -8603,6 +9708,15 @@ Free Software Foundation Inc.
 Boston, MA 02111-1307
 USA
 @end example
+@end ifclear
+
+@ifset HPPA
+If you obtained HP GDB as part of your HP ANSI C or HP ANSI C++ compiler
+kit, report problems to your HP Support Representative.
+
+If you obtained HP GDB from the Hewlett-Packard Web site, report
+problems by electronic mail to @code{wdb-www@@ch.hp.com}.
+@end ifset
 
 The fundamental principle of reporting bugs usefully is this:
 @strong{report all the facts}.  If you are not sure whether to state a
@@ -8618,16 +9732,10 @@ of that location would fool the debugger into doing the right thing despite
 the bug.  Play it safe and give a specific, complete example.  That is the
 easiest thing for you to do, and the most helpful.
 
-Keep in mind that the purpose of a bug report is to enable us to fix
-the bug if it is new to us.  
-@c
-@c  FIX ME!!--What the heck does the following sentence mean, 
-@c  in the context of the one above?
-@c
-@c  It is not as important as what happens if the bug is already known.
-@c  
-Therefore, always write your bug reports on
-the assumption that the bug has not been reported previously.
+Keep in mind that the purpose of a bug report is to enable us to fix the
+bug.  It may be that the bug has been reported previously, but neither
+you nor we can know that unless your bug report is complete and
+self-contained.
 
 Sometimes people give a few sketchy facts and ask, ``Does this ring a
 bell?''  Those bug reports are useless, and we urge everyone to
@@ -8638,8 +9746,9 @@ To enable us to fix the bug, you should include all these things:
 
 @itemize @bullet
 @item
-The version of @value{GDBN}.  @value{GDBN} announces it if you start with no
-arguments; you can also print it at any time using @code{show version}.
+The version of @value{GDBN}.  @value{GDBN} announces it if you start
+with no arguments; you can also print it at any time using @code{show
+version}.
 
 Without this, we will not know whether there is any point in looking for
 the bug in the current version of @value{GDBN}.
@@ -8648,13 +9757,18 @@ the bug in the current version of @value{GDBN}.
 The type of machine you are using, and the operating system name and
 version number.
 
+@ifclear HPPA
 @item
 What compiler (and its version) was used to compile @value{GDBN}---e.g.
-``@value{GCC}--2.0''.
+``@value{GCC}--2.8.1''.
+@end ifclear
 
 @item
-What compiler (and its version) was used to compile the program you
-are debugging---e.g.  ``@value{GCC}--2.0''.
+What compiler (and its version) was used to compile the program you are
+debugging---e.g.  ``@value{GCC}--2.8.1'', or ``HP92453-01 A.10.32.03 HP
+C Compiler''.  For GCC, you can say @code{gcc --version} to get this
+information; for other compilers, see the documentation for those
+compilers.
 
 @item
 The command arguments you gave the compiler to compile your example and
@@ -8673,20 +9787,21 @@ reproduce the bug.
 A description of what behavior you observe that you believe is
 incorrect.  For example, ``It gets a fatal signal.''
 
-Of course, if the bug is that @value{GDBN} gets a fatal signal, then we will
-certainly notice it.  But if the bug is incorrect output, we might not
-notice unless it is glaringly wrong.  You might as well not give us a 
-chance to make a mistake.
+Of course, if the bug is that @value{GDBN} gets a fatal signal, then we
+will certainly notice it.  But if the bug is incorrect output, we might
+not notice unless it is glaringly wrong.  You might as well not give us
+chance to make a mistake.
 
 Even if the problem you experience is a fatal signal, you should still
-say so explicitly.  Suppose something strange is going on, such as,
-your copy of @value{GDBN} is out of synch, or you have encountered a
-bug in the C library on your system.  (This has happened!)  Your copy
-might crash and ours would not.  If you told us to expect a crash,
-then when ours fails to crash, we would know that the bug was not
-happening for us.  If you had not told us to expect a crash, then we
-would not be able to draw any conclusion from our observations.
-
+say so explicitly.  Suppose something strange is going on, such as, your
+copy of @value{GDBN} is out of synch, or you have encountered a bug in
+the C library on your system.  (This has happened!)  Your copy might
+crash and ours would not.  If you told us to expect a crash, then when
+ours fails to crash, we would know that the bug was not happening for
+us.  If you had not told us to expect a crash, then we would not be able
+to draw any conclusion from our observations.
+
+@ifclear HPPA
 @item
 If you wish to suggest changes to the @value{GDBN} source, send us context
 diffs.  If you even discuss something in the @value{GDBN} source, refer to
@@ -8694,6 +9809,7 @@ it by context, not by line number.
 
 The line numbers in our development sources will not match those in your
 sources.  Your line numbers would convey no useful information to us.
+@end ifclear
 @end itemize
 
 Here are some things that are not necessary:
@@ -8746,135 +9862,18 @@ things without first using the debugger to find the facts.
 @c The readline documentation is distributed with the readline code 
 @c and consists of the two following files:
 @c     rluser.texinfo
-@c     inc-hist.texi
+@c     inc-hist.texinfo
 @c Use -I with makeinfo to point to the appropriate directory,
 @c environment var TEXINPUTS with TeX.
 @include rluser.texinfo
-@include inc-hist.texi
-
-@ifset NOVEL
-@ifset RENAMED
-@node Renamed Commands
-@appendix Renamed Commands
-
-The following commands were renamed in @value{GDBN} 4, in order to make the
-command set as a whole more consistent and easier to use and remember:
-
-@kindex add-syms
-@kindex delete environment
-@kindex info copying
-@kindex info convenience
-@kindex info directories
-@kindex info editing
-@kindex info history
-@kindex info targets
-@kindex info values
-@kindex info version
-@kindex info warranty
-@kindex set addressprint
-@kindex set arrayprint
-@kindex set prettyprint
-@kindex set screen-height
-@kindex set screen-width
-@kindex set unionprint
-@kindex set vtblprint
-@kindex set demangle
-@kindex set asm-demangle
-@kindex set sevenbit-strings
-@kindex set array-max
-@kindex set caution
-@kindex set history write
-@kindex show addressprint
-@kindex show arrayprint
-@kindex show prettyprint
-@kindex show screen-height
-@kindex show screen-width
-@kindex show unionprint
-@kindex show vtblprint
-@kindex show demangle
-@kindex show asm-demangle
-@kindex show sevenbit-strings
-@kindex show array-max
-@kindex show caution
-@kindex show history write
-@kindex unset
-
-@c TEXI2ROFF-KILL
-@ifinfo
-@c END TEXI2ROFF-KILL
-@example
-OLD COMMAND               NEW COMMAND
-@c TEXI2ROFF-KILL
----------------           -------------------------------
-@c END TEXI2ROFF-KILL
-add-syms                  add-symbol-file
-delete environment        unset environment
-info convenience          show convenience
-info copying              show copying
-info directories          show directories
-info editing              show commands
-info history              show values
-info targets              help target
-info values               show values
-info version              show version
-info warranty             show warranty
-set/show addressprint     set/show print address
-set/show array-max        set/show print elements
-set/show arrayprint       set/show print array
-set/show asm-demangle     set/show print asm-demangle
-set/show caution          set/show confirm
-set/show demangle         set/show print demangle
-set/show history write    set/show history save
-set/show prettyprint      set/show print pretty
-set/show screen-height    set/show height
-set/show screen-width     set/show width
-set/show sevenbit-strings set/show print sevenbit-strings
-set/show unionprint       set/show print union
-set/show vtblprint        set/show print vtbl
-
-unset                     [No longer an alias for delete]
-@end example
-@c TEXI2ROFF-KILL
-@end ifinfo
+@include inc-hist.texinfo
 
-@tex
-\vskip \parskip\vskip \baselineskip
-\halign{\tt #\hfil &\qquad#&\tt #\hfil\cr
-{\bf Old Command}         &&{\bf New Command}\cr
-add-syms                  &&add-symbol-file\cr
-delete environment        &&unset environment\cr
-info convenience          &&show convenience\cr
-info copying              &&show copying\cr
-info directories          &&show directories     \cr
-info editing              &&show commands\cr
-info history              &&show values\cr
-info targets              &&help target\cr
-info values               &&show values\cr
-info version              &&show version\cr
-info warranty             &&show warranty\cr
-set{\rm / }show addressprint     &&set{\rm / }show print address\cr
-set{\rm / }show array-max        &&set{\rm / }show print elements\cr
-set{\rm / }show arrayprint       &&set{\rm / }show print array\cr
-set{\rm / }show asm-demangle     &&set{\rm / }show print asm-demangle\cr
-set{\rm / }show caution          &&set{\rm / }show confirm\cr
-set{\rm / }show demangle         &&set{\rm / }show print demangle\cr
-set{\rm / }show history write    &&set{\rm / }show history save\cr
-set{\rm / }show prettyprint      &&set{\rm / }show print pretty\cr
-set{\rm / }show screen-height    &&set{\rm / }show height\cr
-set{\rm / }show screen-width     &&set{\rm / }show width\cr
-set{\rm / }show sevenbit-strings &&set{\rm / }show print sevenbit-strings\cr
-set{\rm / }show unionprint       &&set{\rm / }show print union\cr
-set{\rm / }show vtblprint        &&set{\rm / }show print vtbl\cr
-\cr
-unset                     &&\rm(No longer an alias for delete)\cr
-}
-@end tex
-@c END TEXI2ROFF-KILL
-@end ifset
-@end ifset
 
 @ifclear PRECONFIGURED
+@ifclear HPPA
 @node Formatting Documentation
+@c links whacked to pacify makeinfo
+@c , Installing GDB, Renamed Commands, Top
 @appendix Formatting Documentation
 
 @cindex @value{GDBN} reference card
@@ -8908,22 +9907,22 @@ on-line information and a printed manual.  You can use one of the Info
 formatting commands to create the on-line version of the documentation
 and @TeX{} (or @code{texi2roff}) to typeset the printed version.
 
-@value{GDBN} includes an already formatted copy of the on-line Info version of
-this manual in the @file{gdb} subdirectory.  The main Info file is
-@file{gdb-@r{version-number}/gdb/gdb.info}, and it refers to
+@value{GDBN} includes an already formatted copy of the on-line Info
+version of this manual in the @file{gdb} subdirectory.  The main Info
+file is @file{gdb-@value{GDBVN}/gdb/gdb.info}, and it refers to
 subordinate files matching @samp{gdb.info*} in the same directory.  If
 necessary, you can print out these files, or read them with any editor;
-but they are easier to read using the @code{info} subsystem in @sc{gnu} Emacs
-or the standalone @code{info} program, available as part of the @sc{gnu}
-Texinfo distribution.
+but they are easier to read using the @code{info} subsystem in @sc{gnu}
+Emacs or the standalone @code{info} program, available as part of the
+@sc{gnu} Texinfo distribution.
 
 If you want to format these Info files yourself, you need one of the
 Info formatting programs, such as @code{texinfo-format-buffer} or
 @code{makeinfo}.
 
-If you have @code{makeinfo} installed, and are in the top level @value{GDBN}
-source directory (@file{gdb-@value{GDBVN}}, in the case of version @value{GDBVN}), you can
-make the Info file by typing:
+If you have @code{makeinfo} installed, and are in the top level
+@value{GDBN} source directory (@file{gdb-@value{GDBVN}}, in the case of
+version @value{GDBVN}), you can make the Info file by typing:
 
 @example
 cd gdb
@@ -8952,17 +9951,50 @@ directory.
 If you have @TeX{} and a @sc{dvi} printer program installed, you can
 typeset and print this manual.  First switch to the the @file{gdb}
 subdirectory of the main source directory (for example, to
-@file{gdb-@value{GDBVN}/gdb}) and then type:
+@file{gdb-@value{GDBVN}/gdb}) and type:
 
 @example
 make gdb.dvi
 @end example
 
-@node Installing GDB
+Then give @file{gdb.dvi} to your @sc{dvi} printing program.
+@end ifclear
+
+@node Installing GDB, Index, Using History Interactively, Top
 @appendix Installing @value{GDBN}
 @cindex configuring @value{GDBN}
 @cindex installation
 
+@ifset HPPA
+If you obtain @value{GDBN} (HP WDB 0.75) as part of your HP ANSI C or
+HP ANSI C++ Developer's Kit at HP-UX Release 11.0, you do not have to
+take any special action to build or install @value{GDBN}.
+
+If you obtain @value{GDBN} (HP WDB 0.75) from an HP web site, you may
+download either a @code{swinstall}-able package or a source tree, or
+both.
+
+Most customers will want to install the @value{GDBN} binary that is part
+of the @code{swinstall}-able package.  To do so, use a command of the
+form
+
+@smallexample
+/usr/sbin/swinstall -s @var{package-name} WDB
+@end smallexample
+
+Alternatively, it is possible to build @value{GDBN} from the source
+distribution.  Sophisticated customers who want to modify the debugger
+sources to tailor @value{GDBN} to their their needs may wish to do this.
+The source distribution consists of a @code{tar}'ed source tree rooted
+at @file{gdb-4.16/...}.  The instructions that follow describe how to
+build a @file{gdb} executable from this source tree.  HP believes that
+these instructions apply to the WDB source tree that it distributes.
+However, HP does not explicitly support building a @file{gdb} for any
+non-HP platform from the WDB source tree.  It may work, but HP has not
+tested it for any platforms other than those described in the WDB 0.75
+Release Notes.
+@end ifset
+
 @value{GDBN} comes with a @code{configure} script that automates the process
 of preparing @value{GDBN} for installation; you can then use @code{make} to
 build the @code{gdb} program.
@@ -9075,10 +10107,10 @@ let @value{GDBN} debug child processes whose programs are not readable.
 @menu
 * Separate Objdir::             Compiling @value{GDBN} in another directory
 * Config Names::                Specifying names for hosts and targets
-* configure Options::           Summary of options for configure
+* Configure Options::           Summary of options for configure
 @end menu
 
-@node Separate Objdir
+@node Separate Objdir, Config Names, Installing GDB, Installing GDB
 @section Compiling @value{GDBN} in another directory
 
 If you want to run @value{GDBN} versions for several host or target machines,
@@ -9139,7 +10171,7 @@ directories, you can run @code{make} on them in parallel (for example,
 if they are NFS-mounted on each of the hosts); they will not interfere
 with each other.
 
-@node Config Names
+@node Config Names, Configure Options, Separate Objdir, Installing GDB
 @section Specifying names for hosts and targets
 
 The specifications used for hosts and targets in the @code{configure}
@@ -9163,25 +10195,25 @@ script, if you wish, or you can use it to test your guesses on
 abbreviations---for example:
 
 @smallexample
+% sh config.sub i386-linux
+i386-pc-linux-gnu
+% sh config.sub alpha-linux
+alpha-unknown-linux-gnu
+% sh config.sub hp9k700
+hppa1.1-hp-hpux
 % sh config.sub sun4
 sparc-sun-sunos4.1.1
 % sh config.sub sun3
 m68k-sun-sunos4.1.1
-% sh config.sub decstation
-mips-dec-ultrix4.2
-% sh config.sub hp300bsd
-m68k-hp-bsd
-% sh config.sub i386v
-i386-unknown-sysv
-% sh config.sub i786v
-Invalid configuration `i786v': machine `i786v' not recognized
+% sh config.sub i986v
+Invalid configuration `i986v': machine `i986v' not recognized
 @end smallexample
 
 @noindent
 @code{config.sub} is also distributed in the @value{GDBN} source
 directory (@file{gdb-@value{GDBVN}}, for version @value{GDBVN}).
 
-@node configure Options
+@node Configure Options,  , Config Names, Installing GDB
 @section @code{configure} options
 
 Here is a summary of the @code{configure} options and arguments that
@@ -9192,9 +10224,11 @@ Does,,configure.info}, for a full explanation of @code{configure}.
 @example
 configure @r{[}--help@r{]}
           @r{[}--prefix=@var{dir}@r{]}
+          @r{[}--exec-prefix=@var{dir}@r{]}
           @r{[}--srcdir=@var{dirname}@r{]}
           @r{[}--norecursion@r{]} @r{[}--rm@r{]}
-          @r{[}--target=@var{target}@r{]} @var{host}
+          @r{[}--target=@var{target}@r{]}
+          @var{host}
 @end example
 
 @noindent
@@ -9206,10 +10240,14 @@ You may introduce options with a single @samp{-} rather than
 @item --help
 Display a quick summary of how to invoke @code{configure}.
 
-@item -prefix=@var{dir}
+@item --prefix=@var{dir}
 Configure the source to install programs and files under directory
 @file{@var{dir}}.
 
+@item --exec-prefix=@var{dir}
+Configure the source to install programs under directory
+@file{@var{dir}}.
+
 @c avoid splitting the warning from the explanation:
 @need 2000
 @item --srcdir=@var{dirname}
@@ -9228,16 +10266,6 @@ the working directory in parallel to the source directories below
 Configure only the directory level where @code{configure} is executed; do not
 propagate configuration to subdirectories.
 
-@item --rm
-@emph{Remove} files otherwise built during configuration.
-
-@c This does not work (yet if ever).  FIXME.
-@c @item --parse=@var{lang} @dots{}
-@c Configure the @value{GDBN} expression parser to parse the listed languages.
-@c @samp{all} configures @value{GDBN} for all supported languages.  To get a
-@c list of all supported languages, omit the argument.  Without this
-@c option, @value{GDBN} is configured to parse all supported languages.
-
 @item --target=@var{target}
 Configure @value{GDBN} for cross-debugging programs running on the specified
 @var{target}.  Without this option, @value{GDBN} is configured to debug
@@ -9251,13 +10279,12 @@ Configure @value{GDBN} to run on the specified @var{host}.
 There is no convenient way to generate a list of all available hosts.
 @end table
 
-@noindent
-@code{configure} accepts other options, for compatibility with
-configuring other @sc{gnu} tools recursively; but these are the only
-options that affect @value{GDBN} or its supporting libraries.
+There are many other options available as well, but they are generally
+needed for special purposes only.
 @end ifclear
 
-@node Index
+@node Index,  , Installing GDB, Top
 @unnumbered Index
 
 @printindex cp
This page took 0.164955 seconds and 4 git commands to generate.