2009-06-15  Phil Muldoon  <pmuldoon@redhat.com>

	* doc/gdb.texinfo (Calling): Document
	set-unwind-on-terminating-exception usage.

2009-06-11  Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo (All-Stop): Document new 'set schedule-multiple'
	command.

2009-06-07  Pedro Alves  <pedro@codesourcery.com>

	* gdbint.texinfo (TARGET_HAS_HARDWARE_WATCHPOINTS): Delete all
	references.

2009-06-04  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdbint.texinfo: Rename formal parameters to gdbarch function
	protoypes from "current_gdbarch" to "gdbarch".

2009-05-28  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Basic Python): Change get_parameter to parameter.

2009-05-27  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (GDB/MI Miscellaneous Commands): Document "python"
	feature.
	(GDB/MI Variable Objects): Document -var-set-visualizer.

2009-04-02  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (GDB/MI Miscellaneous Commands): Document "python"
	feature.
	(GDB/MI Variable Objects): Document -var-set-visualizer.

2009-05-27  Tom Tromey  <tromey@redhat.com>
	    Thiago Jung Bauermann  <bauerman@br.ibm.com>
	    Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.texinfo (Objfiles In Python): Reference pretty printing.
	(Pretty Printing): New node.
	(Selecting Pretty-Printers): Likewise.
	(Python API): Update.
	(Output Formats): Document /r format.

2009-05-27  Thiago Jung Bauermann  <bauerman@br.ibm.com>
	    Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Types In Python): New node.
	(Values From Inferior): "type" is now an attribute.
	(Python API): Update.

2009-05-27  Tom Tromey  <tromey@redhat.com>
	    Thiago Jung Bauermann  <bauerman@br.ibm.com>
	    Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.texinfo: Add @syncodeindex for `tp'.
	(Python API): Update.
	(Auto-loading): New node.
	(Objfiles In Python): New node.

2009-05-15  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.texinfo (Threads): Document libthread-db-search-path.
	
2009-05-15  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.texinfo (GDB/MI General Design): Break up into four nodes.

2009-05-12  Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo: Document 'set/show debug gnu-nat'.  Replace 'maint
	show-debug-regs' docs by 'maint set show-debug-regs' and 'maint
	show show-debug-regs' docs.

2009-05-08  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Process Record and Replay): Add description of
	reverse execution.

2009-05-07  Joel Brobecker  <brobecker@adacore.com>

	* gdbint.texinfo (Adding support for debugging core files): New node.
	(Native Debugging): Remove the ``Native core file Support'' section.

2009-05-01  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Process Record and Replay): Improve and clarify.
	Add index entries.

2009-04-30  Hui Zhu  <teawater@gmail.com>
            Michael Snyder  <msnyder@vmware.com>

	* gdb.texinfo: (Process Record and Replay): Add documentation for
	process record and replay.

2009-04-29  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (Macros): Note command-line for `info macro'.  Append
	a new part on command-line defined macros.

2009-04-25  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Machine Code) <disassemble-next-line>: Improve and
	clarify the wording.

2009-04-23  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Data Files): New node.
	(GDB Files): Update menu.

2009-04-23  Joel Brobecker  <brobecker@adacore.com>

	* gdbint.texinfo (Defining Other Architecture Features): Remove
	entry for PROCESS_LINENUMBER_HOOK.

2009-04-22  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.texinfo (GDB/MI Program Execution): Document -exec-jump.

2009-04-22  Hui Zhu  <teawater@gmail.com>

	* gdb.texinfo (disassemble-next-line): Set the default of
	disassemble-next-line to off.

2009-04-21  Joseph Myers  <joseph@codesourcery.com>

	* configure.ac (--with-datarootdir, --with-docdir, --with-pdfdir,
	--with-htmldir): New.
	* configure: Regenerate.
	* Makefile.in (datarootdir, docdir): Define.
	(gdb.dvi, gdb.pdf): Use same -I options as for building gdb.info
	instead of $(SET_TEXINPUTS).
	(gdbint.dvi, gdbint.pdf): Use same -I options as for building
	gdbint.info instead of $(SET_TEXINPUTS).
	(gdbint/index.html): Use same -I options as for building
	gdbint.info.
	(stabs.dvi, stabs.pdf): Use same -I options as for building
	stabs.info instead of $(SET_TEXINPUTS).
	(stabs/index.html): Use same -I options as for building
	stabs.info.
	(annotate.dvi, annotate.pdf): Use same -I options as for building
	annotate.info instead of $(SET_TEXINPUTS).
	(annotate/index.html): Use same -I options as for building
	annotate.info.

2009-04-21  David Daney  <ddaney@caviumnetworks.com>

	* gdb.texinfo (maint show-debug-regs): Remove mention of x86.

2009-04-21  Joseph Myers  <joseph@codesourcery.com>

	* gdb.texinfo (Source Path): Document --with-relocated-sources.

2009-04-18  Carlos O'Donell  <carlos@codesourcery.com>
            Joseph Myers  <joseph@codesourcery.com>

	* Makefile.in (MAKEHTML): Set to makeinfo --html.
	(MAKEHTMLFLAGS): Set to empty.
	(html__strip_dir): Define.
	(HTMLFILES): Define.
	(HTMLFILES_INSTALL): Define.
	(install-html): Copy new automake rule.
	(html): Depend on $(HTMLFILES).
	(gdb_toc.html): Rename to gdb/index.html.
	(gdbint_toc.html): Rename to gdbint/index.html.
	(stabs_toc.html): Rename to stabs/index.html.
	(annotate_toc.html): Rename to annotate/index.html.

2009-04-17  Carlos O'Donell  <carlos@codesourcery.com>

	* Makefile.in: Set pdfdir and htmldir from configure
	substitutions.
	* configure.ac: AC_SUBST datarootdir, docdir, htmldir, pdfdir.
	* configure: Regenerate.

2009-04-16  Joel Brobecker  <brobecker@adacore.com>

	* gdbint.texinfo (Native Debugging): Remove entry for PROC_NAME_FMT.
	This macro is no longer used.

2009-04-15  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Character Sets): Document default character set.

2009-04-14  Pierre Muller  <muller@ics.u-strasbg.fr>

	* gdbint.texinfo: Change server name from sources.redhat.com to
	sourceware.org throughout.

2009-04-09  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Set Breaks): Rewrite a paragraph to avoid a warning
	about a missing dot or coma after @xref.

2009-04-02  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Backtrace): Add a parameter in frame 1 of the first
	example, and add a small explanation about it.
	(Print Settings): Change the documentation of the "set print
	frame-arguments" to reflect the fact that the default is now "scalars".

2009-04-02  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Print Settings): Add kindex for command "set
	print frame-arguments".

2009-03-31  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Ada Tasks): Add documentation about task-specific
	breakpoints.
	(Set Breaks): Add reference to thread-specific and task-specific
	breakpoints.

2009-03-31  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Ada Tasks): Remove the documentation about
	the "Running" state, as this state has been eliminated.
	Now all runnable tasks are shown as "Runnable".

2009-03-30  Stan Shebs  <stan@codesourcery.com>

	* gdb.texinfo (Tracepoints): Describe tracepoints as a
	special case of breakpoints.
	(Enable and Disable Tracepoints): Mention deprecation.
	(Listing Tracepoints): Update description and example.

2009-03-30  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.texinfo (Frames in Python): New node.
	(Python API): Update.

2009-03-29  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.texinfo (Values From Inferior): Change gdb.Value.address
	from a method to an attribute.

2009-03-26  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.texinfo (Values From Inferior): Document is_optimized_out
	attribute.

2009-03-25  Pedro Alves  <pedro@codesourcery.com>

	* observer.texi (thread_exit): Add "silent" parameter.

2009-03-22  Pedro Alves  <pedro@codesourcery.com>

	* observer.texi (about_to_proceed): New.

2009-03-21  Jeremy Bennett  <jeremy.bennett@embecosm.com>

	* gdbint.texinfo (everywhere): Use braces {} in @deftypeXX type
	field throughout to handle types with spaces in them.  Fix typos
	found by aspell.
	(Summary, Requirements, Contributors): New first chapter,
	"Summary" added, old Requirements section moved there, and new
	section, "Contributors" added.
	(Initializing a New Architecture, Register Representation)
	(Frame Interpretation, Inferior Call Setup, Adding a New Target)
	(Porting gdb): These sections extended and updated.
	(Compiler Characteristics): This section (empty) deleted.
	(Defining Other Architecture Features): This section renamed and
	duplicate material removed from (formerly "Target Conditionals").
	Use braces {} in @deftypeXX type field throughout to handle types
	with spaces in them. Typos found by aspell fixed.

	* stack_frame.svg: New file, source of image for gdbint.texinfo.
	* stack_frame.pdf: Version of image for PDF output.
	* stack_frame.png: Version of image for HTML output and for Emacs.
	* stack_frame.txt: Version of image for Info output.
	* stack_frame.eps: Version of image for TeX DVI output.

2009-03-21  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Character Sets): Fix last change.

2009-03-21  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.texinfo (Values From Inferior): Fix optional arguments
	markup.
	(Commands In Python): Adjust argument names of gdb.Command.__init__
	to what the function accepts as keywords.

2008-03-20  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Convenience Vars): Document convenience functions.
	(Functions In Python): New node.
	(Python API): Update.

2009-03-20  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Character Sets): Remove obsolete text.  Document
	set target-wide-charset.
	(Requirements): Mention iconv.

2009-03-17  Hui Zhu  <teawater@gmail.com>

	* gdb.texinfo: Change the introduce of "disassemble-next-line".

2009-03-17  Hui Zhu  <teawater@gmail.com>

	* gdb.texinfo: Add documentation for disassemble-next-line.

2009-03-16  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.texinfo (Commands In Python): Remove tindex entries.

2009-03-15  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (Returning): New description for missing debug info.

2009-03-14  Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo (Remote Configuration): Document query-attached.
	(General Query Packets): Document qAttached.

2009-03-05  Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo (Background Execution): Better describe the set
	target-async command.
	(Maintenance Commands): Delete description of the `maint set/show
	linux-async' and `maint set/show remote-async' commands.

2009-02-18  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.texinfo (GDB/MI Async Records): Add double-spaces
	between sentences.

2009-02-18  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.texinfo (GDB/MI Async Records): Document the
	=library-loaded and =library-unloaded notifications.

2009-02-17  Vladimir Prus  <vladimir@codesourcery.com>

	* observer.texi (test_notification): New observer.

2009-02-14  Vladimir Prus  <vladimir@codesourcery.com>

	* observer.texi: Add parameter 'print_frame' to normal_stop
	observer.

2009-02-07  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Basic Python): Fix change from 2009-02-04.
	(Commands In Python): Fix COMMAND_* constants in last change.  Use
	@kbd for interactive input.  Add cross-references and index
	entries.

2009-02-06  Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo (Signals): Document $_siginfo.
	(Convenience Variables): Mention $_siginfo.
	(Remote Configuration): Document qXfer:siginfo:read,
	qXfer:siginfo:write packets, and the read-siginfo-object,
	write-siginfo-object commands.

2009-02-06  Pedro Alves  <pedro@codesourcery.com>

	* gdbint.texinfo (Values): New chapter.

2009-02-06  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Python API): Add entry for Commands In Python.
	(Commands In Python): New node.

2009-02-05  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Values From Inferior): Document Value.string.

2009-02-05  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Basic Python): Document execute's from_tty
	argument.

2009-02-04  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Basic Python): Document gdb.history.

2009-01-30  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.texinfo (GDB/MI Thread Commands): Document the
	'current-thread-id' field.  Remove the example with zero threads,
	since current GDB won't ever report that if there's inferior.

2009-01-30  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.texinfo (GDB/MI Breakpoint Commands): Document the -d
	option to -break-insert.

2009-01-28  Daniel Jacobowitz  <dan@codesourcery.com>
	    Jerome Guitton  <guitton@adacore.com>

	* gdb.texinfo (Startup): Document --with-system-gdbinit.
	(System-wide configuration): New section.

2009-01-26  Pedro Alves  <pedro@codesourcery.com>

	PR gdb/7580:
	* gdb.texinfo (Maintenance Commands): Document "maint set|show
	internal-error|internal-warning quit|corefile ask|yes|no".

2009-01-26  Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo (Using the `gdbserver' Program): Document
	--remote-debug.

2009-01-23  Doug Evans  <dje@google.com>

	* gdb.texinfo: Add nexti to list of commands that support
	background execution.

2009-01-14  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Define, Hooks): Document prefix command support.

2009-01-14  Joseph Myers  <joseph@codesourcery.com>
            Carlos O'Donell  <carlos@codesourcery.com>

	Fixes for makeinfo --html.

	* annotate.texinfo: Use @copying and @insertcopying.  Use
	@ifnottex in place of @ifinfo.
	* gdb.texinfo: Use @copying and @insertcopying.  Use @ifnottex in
	place of @ifinfo.  Use @ifnotinfo for one index entry.
	* gdbint.texinfo: Use @copying and @insertcopying.  Use @ifnottex
	in place of @ifinfo.
	* stabs.texinfo: Use @copying and @insertcopying.  Use @ifnottex
	in place of @ifinfo.  Include contents at start unconditionally.

2009-01-13  Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo (General Query Packets): Remove @var{} around the
	"spu" literal string.

2009-01-07  Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo (Error in Breakpoints): Delete mention of "The same
	program may be running in another process" errors.
	* gdbint.texinfo (Native Conditionals): Delete
	ONE_PROCESS_WRITETEXT description.

2009-01-07  Joel Brobecker  <brobecker@adacore.com>

	* gdbint.texinfo (Start of New Year Procedure): Add the "coding"
	emacs local variable to be placed at the end of the ChangeLog.
	Add server.c and gdbreplay.c to the list of files where the
	copyright year needs to be updated.

2009-01-06  Sandra Loosemore  <sandra@codesourcery.com>

	* gdb.texinfo (Remote Configuration): Document new
	"set/show tcp auto-retry" and "set/show tcp connect-timeout"
	commands.

2008-12-28  Pedro Alves  <pedro@codesourcery.com>

	* gdbint.texinfo (gdbarch_cannot_fetch_register): Don't mention
	FETCH_INFERIOR_REGISTERS.
	(Native Conditionals): Remove obsolete CHILD_PREPARE_TO_STORE,
	FETCH_INFERIOR_REGISTERS descriptions.  Remove
	gdbarch_get_longjmp_target descrition, since already described in
	Target Conditionals.  Move gdbarch_fp0_regnum description to ...
	(Target Conditionals): ... here.

2008-12-16  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Omissions from Ada): Add missing GDB prompt in
	examples.
	(Additions to Ada): Likewise.  Add the missing opening and closing
	parenthesis of the GDB prompt in one of the examples.

2008-12-14  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Omissions from Ada): Remove incorrect documentation
	about the result of 'Address not being of type System.Address.
	This problem has been fixed a while ago.

2008-12-02  Vladimir Prus  <vladimir@codesourcery.com>

	MI non-stop and multiprocess docs.

        * gdb.texinfo (GDB/MI): New section 'GDB/MI General Design'
        (GDB/MI Output Records): New section 'GDB/MI Frame Information'
        Adjust documentation for *stopped, document =thread-created,
        =thread-exited, =thread-group-created and =thread-group-exited.
        (GDB/MI Thread Commands): Document the 'state' field in
        -thread-info output.
        (GDB/MI Program Execution): Mention --all and --thread-group
        options.
        (GDB/MI Variable Objects): Describe floating and fixed variable
        objects.
        (GDB/MI Miscellaneous Commands): Document -list-thread-groups.

2008-12-02  Vladimir Prus  <vladimir@codesourcery.com>

        * gdb.texinfo (Operating System Information): New appendix.
        (Operating System Auxiliary Information): Document 'info os processes'
        (Remote Configuration): Document 'osdata'
        (General Query Packets): Document qXfer:osdata:read.

2008-11-27  Tristan Gingold  <gingold@adacore.com>

	* gdb.texinfo (Darwin): Document Darwin specific features.

2008-11-25  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdbint.texinfo (Target Conditionals): Extend the
	gdbarch_breakpoint_from_pc description.

2008-11-22  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.texinfo (M68K Features): Fix typo.

2008-11-18  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.texinfo (Symbols): Mention printing containing
	image name in "info symbol".
	(Maint translate-address): Likewise.
	
2008-11-18  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Set Catchpoints): Remove the documentation of
	commands "catch load" and "catch unload".

2008-11-17  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.texinfo (GDB/MI Async Records): Document
        =thread-selected.
	
2008-11-17  Vladimir Prus  <vladimir@codesourcery.com>

        * observer.texi (new_inferior, inferior_exit): New observers.

2008-10-27  Pedro Alves  <pedro@codesourcery.com>

	* gdbint.texinfo (Adding a New Target): Don't mention TDEPFILES,
	.mt files, TM_CLIBS or TM_CDEPS.
	(x86 Watchpoints): Don't mention TDEPFILES.

2008-10-24  Sandra Loosemore  <sandra@codesourcery.com>

	* gdb.texinfo (Remote Protocol): Add new nodes to menu.
	(Overview): Mention notifications and non-stop mode behavior.
	(Packets): Update documentation of ?, vAttach, vCont, and vRun
	with non-stop mode behavior.  Add vStopped description.
	(Stop Reply Packets):  Update list of packets that return
	stop replies.  Mention non-stop behavior.
	(General Query Packets): Document QNonStop packet and associated
	qSupported query response.
	(Interrupts): Clarify multi-threaded behavior.  Mention non-stop
	behavior.
	(Notification Packets): New section.
	(Remote Non-Stop): New section.
	(File-I/O Overview): Mention non-stop behavior.

2008-10-24  Hui Zhu  <teawater@gmail.com>
	    Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo (displaced-stepping): Describe the auto mode
	setting, and say it's the default.  This is now a mainstream
	setting instead of a maintenance setting.

2008-10-23  Pedro Alves  <pedro@codesourcery.com>

	* observer.texi (thread_stop_requested): New.

2008-10-22  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Ada Tasks, Ada Tasks and Core Files): New nodes.
	(Patching): Replace incorrect usage of @samp by @kbd.

2008-10-17  Michael Snyder  <msnyder@vmware.com>

	* gdb.texinfo: Add documentation for reverse execution.

2008-10-16  Thiago Jung Bauermann  <bauerman@br.ibm.com>
	    Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo. (Values From Inferior): New subsubsection.

2008-10-06  Doug Evans  <dje@google.com>

	* gdb.texinfo (set debug dwarf2-die): Document it.

2008-10-01  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (catch) [exception]: Document how to insert
	a breakpoint on user-defined exceptions when the exception
	name is identical to one of the language-defined ones.

2008-09-27  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Macros): Remove text about stringification,
	varargs, and splicing.

2008-09-27  Tom Tromey  <tromey@redhat.com>

	* gdbint.texinfo (Language Support): Remove text about omitting
	support for a language.

2008-09-23  Doug Evans  <dje@google.com>

	* gdb.texinfo (info dcache): Update.

2008-09-22  Sandra Loosemore  <sandra@codesourcery.com>

	* gdb.texinfo (Packets): Add info on thread-id syntax and
	multiprocess extensions.
	<D>: Document multiprocess form of packet.
	<H>: Use thread-id syntax.
	<T>: Likewise.
	<vCont>: Likewise.  Note this is required for multiprocess.
	<vKill>: New packet.
	(Stop Reply Packets) <T>: Use thread-id syntax.
	<W>: Document multiprocess form of reply.
	<X>: Likewise.
	(General Query Packets) <qC>: Use thread-id syntax.
	<qfThreadInfo>: Likewise.
	<qGetTLSAddr>: Likewise.
	<qP>: Likewise.
	<qSupported>: Add "multiprocess" feature.
	<qThreadExtraInfo>: Use thread-id syntax.

2008-09-22  Stan Shebs  <stan@codesourcery.com>

	* gdb.texinfo (Inferiors): New section.

2008-09-12  Pedro Alves  <pedro@codesourcery.com>

	* gdbint.texinfo (Native Debugging): Mention NAT_GENERATED_FILES.

2008-09-11  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdbint.texinfo (Target Conditionals): Remove documentation
	for gdbarch_name_of_malloc.

2008-09-03  Angela Marie Thomas <angela@releasedominatrix.com>

	* gdb.texinfo (Interrupts): Mention TCP interface for
	sending BREAK.

2008-08-26  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdb.texinfo (Commands to Specify Files): Document "remote:"
	argument prefix to "set sysroot".

2008-08-21  Paul N. Hilfinger  <hilfinger@adacore.com>

	* gdb.texinfo (Omissions from Ada): Describe new treatment of True
	and False.

2008-08-20  Vladimir Prus  <vladimir@codesourcery.com>

        * gdb.textinfo (GDB/MI Miscellaneous Commands): Use @table
        for possible features of -list-features.

2008-08-19  Vladimir Prus  <vladimir@codesourcery.com>

        * gdb.texinfo (Background execution): Adjust example
	(GDB/MI Miscellaneous Commands): Document -list-target-features.

2008-08-19  Vladimir Prus  <vladimir@codesourcery.com>

	* doc/gdb.texinfo (PowerPC): Fix typo.
	(PowerPC features): Fix typo.

2008-08-18  Pedro Alves  <pedro@codesourcery.com>

	* observer.texi (thread_ptid_changed): New.

2008-08-18  Luis Machado  <luisgpm@br.ibm.com>

	* doc/gdb.texinfo (PowerPC): Mention Extended FPR's for POWER7.
	(PowerPC features): Mention feature set for VSX registers.

2008-08-13  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Ada Mode Intro): Improve the documentation regarding
	the direct visibility of all names in user-written packages.

2008-08-13  Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo (breakpoint always-inserted) Describe the auto mode
	setting, and make it the default.
	(Non-Stop Mode): Remove "set breakpoints always-inserted 1" from
	non-stop script example.

2008-08-12  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdbint.texinfo (Raw and Virtual Register Representations): Fix
	reference to the "Using Different Register and Memory Data
	Representation" section.

2008-08-12  Sandra Loosemore  <sandra@codesourcery.com>

	* gdb.texinfo (Remote Configuration): Document set remote noack-packet.
	(Remote Protocol): Add Packet Acknowledgment to menu.
	(Overview): Mention +/- can be disabled, and point to new section
	where this is discussed in detail.
	(General Query Packets): Document QStartNoAckMode packet, and
	corresponding qSupported reply.
	(Packet Acknowledgment): New section.

2008-08-11  Sandra Loosemore  <sandra@codesourcery.com>
	    Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo (Threads): Move paragraph about automatic thread
	selection to All-Stop Mode subsection.
	(Thread Stops): Reorganize existing material into subsections.
	Add introductory blurb and menu.
	(Non-Stop Mode): New subsection.
	(Background Execution): New subsection.
	(Maintenance Commands): Add cross-references from async mode
	commands to the new Background Execution section.

2008-08-06  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Extending GDB): New chapter.
	(Sequences): Demoted chapter, now a section under the new
	Extending GDB chapter.
	(Python): New section.

2008-07-31  Stan Shebs  <stan@codesourcery.com>

	* gdbint.texinfo: Remove FUNCTION_EPILOGUE_SIZE.

2008-07-29  Stan Shebs  <stan@codesourcery.com>

	* gdbint.texinfo: General round of cleanup and minor
	clarifications.
	(Breakpoint Handling): Remove mention of BREAKPOINT macro.
	(Longjmp Support): Update description to reflect how it is done
	for targets without using native header.
	(Symbol Handling): Add a little more general explanation.
	(COFF, ELF): Mention stabs encapsulation.
	(DWARF 3): New section.
	(Adding a New Host): Scrub out some obsolete bits.
	(Generic Host Support Files): Mention ser-pipe.c, ser-mingw.c.
	(Host Conditionals): Remove descriptions of NO_STD_REGS,
	HAVE_MMAP, HAVE_TERMIO, INT_MAX etc, LONGEST, HAVE_LONG_DOUBLE,
	PRINTF_HAS_LONG_DOUBLE, SCANF_HAS_LONG_DOUBLE, L_SET, SEEK_CUR,
	SEEK_SET, STOP_SIGNAL, USG.
	(Raw and Virtual Register Representations): Ditto for
	DEPRECATED_REGISTER_RAW_SIZE, DEPRECATED_REGISTER_VIRTUAL_SIZE,
	DEPRECATED_REGISTER_VIRTUAL_TYPE, REGISTER_CONVERT_TO_TYPE.
	(Target Conditionals): Ditto for DEPRECATED_FP_REGNUM,
	DEPRECATED_FRAMELESS_FUNCTION_INVOCATION, DEPRECATED_FRAME_CHAIN,
	DEPRECATED_FRAME_CHAIN_VALID, DEPRECATED_FRAME_INIT_SAVED_REGS,
	DEPRECATED_FRAME_SAVED_PC, DEPRECATED_FUNCTION_START_OFFSET,
	DEPRECATED_REGISTER_VIRTUAL_SIZE,
	DEPRECATED_REGISTER_VIRTUAL_TYPE,
	DEPRECATED_USE_STRUCT_CONVENTION.
	Describe gdbarch_deprecated_fp_regnum.
	Update description of gdbarch_print_insn.
	(Adding a New Target): Scrub out obsolete bits.
	(Obsolete Conditionals): Remove entire section.

2008-07-25  Tom Tromey  <tromey@redhat.com>

	* observer.texi (GDB Observers): Document new observers:
	breakpoint_created, breakpoint_deleted, breakpoint_modified,
	tracepoint_created, tracepoint_deleted, tracepoint_modified,
	architecture_changed.

2008-07-21  Stan Shebs  <stan@codesourcery.com>

	* gdbint.texinfo: Refer to target_so_ops.in_dynsym_resolve_code
	instead of IN_SOLIB_DYNSYM_RESOLVE_CODE.

2008-07-21  Tom Tromey  <tromey@redhat.com>

	* observer.texi (GDB Observers): Remove obsolete comment.
	<executable_changed>: Remove argument.

2008-07-18  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Macros): Update.  Use @code rather than @command.

2008-07-10  Doug Evans  <dje@google.com>

	* doc/gdb.texinfo: Document "set print symbol-loading on|off".

2008-07-10  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (Starting): Document "set disable-randomization".

2008-07-07  Andreas Schwab  <schwab@suse.de>

	* gdb.texinfo (GDB/MI Target Manipulation): Fix last change.

2008-07-06  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.texinfo (GDB/MI Target Manipulation): Add
	example of -target-attach.

2008-06-10  Vladimir Prus  <vladimir@codesourcery.com>

	* observer.texi (target_resumed): New observer.
	* gdb.texinfo (GDB/MI Output Records): Document *running.

2008-06-06  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Completion): Add field name example.

2008-06-06  Marc Khouzam  <marc.khouzam@ericsson.com>

	* gdb.texinfo (GDB/MI Program Context): Added example
	to -exec-arguments

2008-06-05  Nick Roberts  <nickrob@snap.net.nz>

	* annotate.texinfo (Multi-threaded Apps): Add entry for thread-changed
	annotation.

2008-06-05  Vladimir Prus  <vladimir@codesourcery.com>
	    Nathan Sidwell  <nathan@codesourcery.com>
	    Joseph Myers  <joseph@codesourcery.com>

	* configure.ac: Include ../../config/acx.m4.  Use ACX_PKGVERSION
	and ACX_BUGURL.
	* configure: Regenerate.
	* Makefile.in (PKGVERSION, BUGURL_TEXI): Define.
	(GDBvn.texi): Define VERSION_PACKAGE, BUGURL and BUGURL_DEFAULT.
	* gdb.texinfo: Use VERSION_PACKAGE and BUGURL.  Remove
	mailing-list-specific text about bug reporting unless
	BUGURL_DEFAULT.

2008-06-05  Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo (-target-select): Remove reference to target async.
	(Maintenance Commands): Document "maint set/show remote-async".

2008-06-04  Marc Khouzam  <marc.khouzam@ericsson.com>

	* gdb.texinfo (GDB/MI File Transfer Commands): Typo
	in -target-file-get section.

2008-05-22  Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo (vAttach, vRun): Re-remove requirement of the stub
	killing the inferior when it is already debugging a process.

2008-05-21  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Continuing and Stepping): Document the new "fin"
	abbreviation for "finish".

2008-05-21  Nick Roberts  <nickrob@snap.net.nz>

	* annotate.texinfo (Multi-threaded Apps): New node for new annotation.

2008-05-15  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdbint.texinfo (Target Conditionals): Delete entry for
	gdbarch_dwarf_reg_to_regnum.

2008-05-09  Doug Evans  <dje@google.com>

	* gdb.texinfo: Document "find" command, qSearch:memory packet.

2008-05-05  Doug Evans  <dje@google.com>

	* gdb.texinfo (disassemble): Document /m modifier.

2008-05-05  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.texinfo (Maintenance Commands): Clarify that "maint time"
	will not report the time of commands that run the target.

2008-05-03  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.texinfo (GDB/MI Output Records): Add
	missing semicolon.

2008-05-03  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.texinfo (GDB/MI Output Records):
	Document =thread-create and =thread-exited.

2008-05-03  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.texinfo (GDB/MI Development and Front Ends):
	Remove mention of dmi-discuss.

2008-05-03  Pedro Alves  <pedro@codesourcery.com>

	* observer.texi (thread_exit): New.

2008-05-02  Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo (Debugging Output): Document "set/show debug
	displaced".
	(Maintenance Commands): Document "maint set/show
	can-use-displaced-stepping".

2008-05-02  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (ARM): Document set/show arm fallback-mode
	and set/show arm force-mode.

2008-05-02  Andreas Schwab  <schwab@suse.de>

	* gdbint.texinfo (Algorithms): Describe
	target_watchpoint_addr_within_range.

2008-04-30  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdbint.texinfo (Stack Frames): New chapter.
	(Algorithms): Move Frames text to the new chapter.
	(Target Conditionals): Delete SAVE_DUMMY_FRAME_TOS.  Document
	gdbarch_dummy_id instead of gdbarch_unwind_dummy_id.

2008-04-24  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.texinfo (GDB/MI Output Syntax): Clarify that async
	output does not necessary include any tokens.

2008-04-22  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.texinfo (Set SH Calling convention): New @item.
	(Show SH Calling convention): Ditto.

2008-04-22  Markus Deuling  <deuling@de.ibm.com>

	* gdb.texinfo (Fortran Operators): Describe '%' operator.

2008-04-20  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Set Breaks): Mention that multiple location
	breakpoints need line number info.  Add index entries.

2008-04-19  Craig Silverstein  <csilvers@google.com>

	* gdb.texinfo (Requirements): Add an optional requirement on
	zlib.
	* gdbint.texinfo (Debugging File Formats): Add new subsection for
	Compressed DWARF 2.

2008-04-16  Aleksandar Ristovski  <aristovski@qnx.com>

	* gdb.texinfo (GDB/MI Simple Examples): Added 'disp' field to the
	sample output for 'stopped,reason="breakpoint-hit"' message.
	(GDB/MI Program Execution): Likewise.

2008-04-09  Marc Khouzam  <marc.khouzam@ericsson.com>

	* gdb.texinfo (GDB/MI Variable Objects): Add anchor to
	-var-set-format.  Add -f option to -var-evaluate-expression.

2008-04-03  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Breakpoint Menus): Delete. Contents moved inside
	new node "Ambiguous Expressions".  Replace references to this
	node by references to "Ambiguous Expressions" throughout.
	(Ambiguous Expressions): New node.

2008-03-26  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (MIPS Features, PowerPC Features): Add @node.

2008-03-21  Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo (Debugging Output): Document
	"set/show debug lin-lwp-async".
	(Maintenance Commands): Document "maint set/show linux-async".

2008-03-21  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Expressions): Update description of malloced arrays.

2008-03-15  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.texinfo (Thread Commands): Document
	-thread-info.  Remove -thread-list-all-threads.

2008-03-14  Pedro Alves  <pedro@codesourcery.com>
	    Sandra Loosemore  <sandra@codesourcery.com>

	* gdb.texinfo (Library List Format): Update to mention the
	possibility to pass section addresses instead of segment
	addresses.

2008-03-10  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Starting): Document "set exec-wrapper".
	(Server): Document gdbserver --wrapper.

2008-03-03  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Set Watchpoints): Mention watchpoints on
	unreadable memory.  Delete obsolete SPARClite reference.

2008-02-28  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Starting): Mention always-running targets.
	(Target Commands): Add an anchor for load.
	(Connecting): Explain continue instead of run.

2008-02-27  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Debugging Output): Document "set debug timestamp".

2008-02-26  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.texinfo (Set Breaks): Revert description of Enb column of
	breakpoint table.

2008-02-19  Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo (vAttach, vRun): Remove requirement of the stub
	killing the inferior when it is already debugging a process.

2008-02-13  Markus Deuling  <deuling@de.ibm.com>

	* gdbint.texinfo (Build Script): New section. Mention new build script
	gdb_buildall.sh.

2008-02-01  Jim Blandy  <jimb@red-bean.com>

	* gdb.texinfo (Help): Summarize 'info args' correctly.

2008-01-30  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.texinfo: (Decimal Floating Point): Mention pseudo-registers
	available in PowerPC architecture.
	(Embedded Processors): Change node name of PowerPC item in menu.
	(PowerPC): Rename to...
	(PowerPC Embedded): this.
	(Architectures): Add new PowerPC item in menu.
	(PowerPC): New node.

2008-01-30  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Multi-Process Mode for gdbserver): Use @kbd for
	commands.

2008-01-30  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Setting Catchpoints): Mention features
	supported on GNU/Linux.

2008-01-30  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.texinfo (GDB/MI File Commands): Describe new output
	field for MI command -file-list-exec-source-file.

2008-01-29  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Using the `gdbserver' Program): Add security
	warning.  Rearrange into subsections and subsubsections.  Document
	--multi and --debug.  Correct --with-sysroot typo.  Update --attach
	usage.  Make load reference clearer.  Document monitor exit.
	(Remote Configuration): Document set remote exec-file, attach-packet,
	and run-packet.
	(Packets): Document vAttach and vRun.

2008-01-29  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.texinfo (Processes): Mention process command.
 	detach-on-follow -> detach-on-fork.

2008-01-28  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdbint.texinfo (Native Conditionals): Remove
	SHELL_COMMAND_CONCAT and SHELL_FILE.

2008-01-26  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Specify Location): Improve wording.

2008-01-23  Chris Demetriou  <cgd@google.com>

	* gdb.texinfo (Threads): Document new "set print thread-events"
	and "show print thread-events" commands.

2008-01-19  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Specify Location): New section.
	(Delete Breaks, Edit, Set Breaks): Remove description of
	locations.  Instead, add a reference to "Specify Location".
	(Machine Code, Jumping, Thread Stops, Continuing and Stepping)
	(Symbols): Refer to "Specify Location" for the valid forms of
	linespecs and locations.

2008-01-18  Markus Deuling  <deuling@de.ibm.com>

	* gdbint.texinfo (Target Conditionals): Replace the description of
	BITS_BIG_ENDIAN with a description of gdbarch_bits_big_endian.

2008-01-12  Paul Hilfinger  <hilfinger@adacore.com>

	* gdb.texinfo (C Operators): Remove incorrect parenthetical comment
	about &&var, which is rejected by the expression parser.

2008-01-09  Luis Machado  <luisgpm@br.ibm.com>

	* gdb.texinfo (Output): Update documentation on using printf with DFP
	types.

2008-01-07  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.texinfo (C and C++): Add Decimal Floating Point format
	subsubsection.
	(Decimal Floating Point format): New subsubsection.

2008-01-05  Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo (File Options): Remove mention of the attempt to
	open a core file with the -p option.  Don't list -c as a valid
	option to attach to a process.

2008-01-05  Pedro Alves  <pedro@codesourcery.com>

	* gdbint.texinfo (Host Conditionals): Remove mention of
	ALIGN_STACK_ON_ENTRY.

2008-01-05  Joel Brobecker  <brobecker@adacore.com>

	* gdbint.texinfo (Start of New Year Procedure): Add item
	describing how to update the source and documentation copyright
	notices.

2007-12-18  Jim Blandy  <jimb@codesourcery.com>

	* gdb.texinfo (Set Watchpoints): Integrate per-thread
	watchpoint explanation into the main description of the watchpoint
	command; update synopses of 'watch', 'rwatch', and 'awatch'
	commands.

2007-12-18  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.texinfo (Miscellaneous gdb/mi Commands):
	Document 'pending-breakpoints' feature of
	-list-features.

2007-12-17  Luis Machado  <luisgpm@br.ibm.com>

	* gdb.texinfo: Add new parameter's description.

2007-12-16  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Overview): Clarify run-length encoding
	example.  Remove the restriction on "+" and "-" characters.

2007-12-15  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Host I/O Packets): Fix xref syntax.

2007-12-14  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.texinfo (GDB/MI Breakpoint Commands): Document
	the -f option for -break-insert, remove -r option,
	and clarify specification of location.

2007-11-30  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Debugging Programs with Multiple Processes): Correct
	formatting.
	(Remote Debugging): Add File Transfer section.
	(Remote Configuration): Document Host I/O packets.
	(GDB/MI): Add GDB/MI File Transfer Commands section.
	(Host I/O Packets): New section in "Remote Protocol".
	(Packets): Add vFile.

2007-11-17  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Set Breaks, Disabling): Clarify behavior of
	breakpoints with multiple locations.
	(Breakpoint Menus): Improve wording.
	(Output): Fix last change.

2007-11-17  Ulrich Weigand  <uweigand@de.ibm.com>

	* Makefile.in (Makefile): Do not depend on target_makefile_frag.

2007-11-15  Doug Evans  <dje@google.com>

	* gdb.texinfo (Symbols): Update output of "maint info symtabs".

2007-11-15  Vladimir Prus  <vladimir@codesourcery.com>

	* gdbint.texinfo (Native Conditionals): Remove
	mention of CLEAR_SOLIB.

2007-11-11  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Print Settings): Add documentation for "set/show
	print frame-arguments".

2007-11-05  Luis Machado  <luisgpm@br.ibm.com>

	* gdb.texinfo (Output): Update printf command's description.

2007-10-30  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (PowerPC): Document "set powerpc vector-abi" and "set
	powerpc soft-float".

2007-10-24  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Files): Correct formatting.  Mention Expat
	requirement.
	(Requirements for Building GDB): Expand the list of Expat
	uses.
	(Library List Format, Memory Map Format): Mention Expat.
	(Target Descriptions): Update Expat wording.

2007-10-24  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdbint.texinfo (Register and Memory Data, Target Conditionals):
	Document that gdbarch_convert_register_p should return zero for no-op
	conversions.

2007-10-22  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdbint.texi (Compiler Characteristics): Move documentation
	of set_gdbarch_sofun_address_maybe_missing back to ...
	(Target Conditionals): ... here to fix build break.

2007-10-19  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdbint.texi (Target Conditionals): Remove documentation of
	SOFUN_ADDRESS_MAYBE_MISSING, replaced by ...
	(Compiler Characteristics): ... documentation of
	set_gdbarch_sofun_address_maybe_missing.

2007-10-17  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdbint.texinfo (Target Conditionals): Use
	frame_unwind_register_unsigned in examples instead of
	frame_unwind_unsigned_register.

2007-10-15  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Predefined Target Types): Add int128
	and uint128.
	(Standard Target Features): Add PowerPC features.

2007-10-15  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Maintenance Commands): Document "maint print c-tdesc".

2007-10-12  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdbint.texi (Target Conditionals): Remove documentation
	of and references to DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS,
	gdbarch_extract_return_value, and gdbarch_store_return_value.

2007-10-12  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdbint.texi (Target Conditionals): Remove documentation of
	and references to DEPRECATED_REG_STRUCT_HAS_ADDR.

2007-10-11  Kazu Hirata  <kazu@codesourcery.com>

	* gdb.texinfo: Mention that inaccessible-by-default is on by
	default.

2007-10-11  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdbint.texinfo (Target Conditionals): Remove VARIABLES_INSIDE_BLOCK.

2007-09-30  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Setting Watchpoints): Adjust warning text about
	multi-threaded watchpoints.
	* gdbint.texinfo (Watchpoints): Describe how watchpoints are
	checked.  Describe sticky notification.  Expand description
	of steppable and continuable watchpoints.
	(Watchpoints and Threads): New subsection.

2007-09-28  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.texinfo (Setting Breakpoints): Revise
	documentation for pending breakpoints.  Document
	breakpoints with multiple locations.

2007-09-19  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.texinfo (Miscellaneous gdb/mi Commands):
	Document -list-features.

2007-09-15  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Output): Spell out which features of C's printf are
	not supported by GDB's printf.
	(Separate Debug Files): More accurate wording regarding build ID
	and a reference to the ld manual rather than the Fedora wiki.

2007-09-04  Daniel Jacobowitz  <dan@codesourcery.com>
	    Jim Blandy  <jimb@codesourcery.com>

	* gdb.texinfo (Output Formats): Update 'c' description.  Describe 's'.
	(Examining Memory): Update mentions of the 's' format.
	(Automatic Display): Likewise.

2007-09-02  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo: Update the FSF's Back-Cover Text.

2007-09-02  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Separate Debug Files): Cosmetic quoting removal.
	Fixed the ``build ID'' name.  New binaries build instructions for the
	build ID inclusion.  Explain how the commands are specific to the build
	ID vs. debug link.

2007-09-01  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Separate Debug Files): Fix last change.  Add
	indexing for ``build ID'' support.

2007-09-01  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (Separate Debug Files): Included a BUILD ID description.
	Enlisted BUILD ID to the debug file searching example.
	Included a BUILD ID `.note.gnu.build-id' section description.
	Updated/added the debug files splitting instructions for OBJCOPY.

2007-08-31  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.texinfo (Variable Objects): Adjust docs
	for -var-info-expression and document
	-var-info-path-expression.

2007-08-20  Jim Blandy  <jimb@codesourcery.com>

	* gdb.texinfo (Top): Dedicate manual to the memory of Fred Fish.
	(title page): Include the dedication in the printed manual, as a
	separate page after the copyright notice.

	* gdb.texinfo (The F Reply Packet): Avoid confusing texi2html:
	don't break a @var across a line.

2007-07-25  Maciej W. Rozycki  <macro@mips.com>

	* Makefile.in (MAKEHTMLFLAGS): Also search the current directory
	for include files.

2007-07-12  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.texinfo (Server Prefix): New node.  Adapt from existing node
	in annotate.texinfo.
	(Command History): Link to new node.

2007-07-05  Markus Deuling  <deuling@de.ibm.com>

	* gdbint.texinfo (PC_LOAD_SEGMENT): Remove description.

2007-07-05  Eli Zaretskii  <eliz@gnu.org>

	* gdbint.texinfo (Target Conditionals): Fix last change.

2007-07-03  Markus Deuling  <deuling@de.ibm.com>

	* gdb.texinfo: Replace following macros by their appropriate gdbarch
	routines:
	(TARGET_CHAR_SIGNED, CALL_DUMMY_LOCATION, CANNOT_FETCH_REGISTER)
	(CANNOT_STORE_REGISTER, GET_LONGJMP_TARGET, POINTER_TO_ADDRESS)
	(ADDRESS_TO_POINTER, INNER_THAN, FRAME_NUM_ARGS)
	(HAVE_NONSTEPPABLE_WATCHPOINT, TARGET_SHORT_BIT, TARGET_INT_BIT)
	(TARGET_LONG_BIT, TARGET_LONG_LONG_BIT, TARGET_FLOAT_BIT)
	(TARGET_DOUBLE_BIT, TARGET_LONG_DOUBLE_BIT, TARGET_PTR_BIT
	(TARGET_ADDR_BIT, SP_REGNUM, PC_REGNUM, PS_REGNUM, FP0_REGNUM)
	(STAB_REG_TO_REGNUM, ECOFF_REG_TO_REGNUM, DWARF_REG_TO_REGNUM)
	(SDB_REG_TO_REGNUM, DWARF2_REG_TO_REGNUM, BELIEVE_PCC_PROMOTION)
	(CONVERT_REGISTER_P, REGISTER_TO_VALUE, VALUE_TO_REGISTER)
	(POINTER_TO_ADDRESS, ADDRESS_TO_POINTER, EXTRACT_RETURN_VALUE)
	(STORE_RETURN_VALUE, SKIP_PROLOGUE, MEMORY_INSERT_BREAKPOINT)
	(BREAKPOINT_FROM_PC, MEMORY_REMOVE_BREAKPOINT, DECR_PC_AFTER_BREAK)
	(ADDR_BITS_REMOVE, TARGET_PRINT_INSN, SKIP_TRAMPOLINE_CODE)
	(IN_SOLIB_RETURN_TRAMPOLINE, NAME_OF_MALLOC, ADDRESS_CLASS_TYPE_FLAGS)
	(ADDRESS_CLASS_TYPE_FLAGS_TO_NAME, ADDRESS_CLASS_TYPE_FLAGS_P).
	(ADDRESS_CLASS_NAME_to_TYPE_FLAGS, ADJUST_BREAKPOINT_ADDRESS)
	(PRINT_FLOAT_INFO, PRINT_VECTOR_INFO, INTEGER_TO_ADDRESS)
	(SKIP_PERMANENT_BREAKPOINT, TARGET_VIRTUAL_FRAME_POINTER)
	(SOFTWARE_SINGLE_STEP_P)

	(push_dummy_call, stabs_argument_has_addr, unwind_sp, unwind_pc)
	(print_registers_info, push_dummy_code, unwind_dummy_id): Rework

	(REGISTER_CONVERT_TO_TYPE, END_OF_TEXT_DEFAULT, GDB_MULTI_ARCH)
	(GDB_TARGET_IS_HPPA, DEPRECATED_GET_SAVED_REGISTER)
	(SYMBOLS_CAN_START_WITH_DOLLAR, DEPRECATED_INIT_EXTRA_FRAME_INFO)
	(DEPRECATED_INIT_FRAME_PC, DEPRECATED_SIGTRAMP_START)
	(IN_SOLIB_CALL_TRAMPOLINE, NO_HIF_SUPPORT, REGISTER_CONVERTIBLE)
	(DEPRECATED_REGISTER_RAW_SIZE, PARM_BOUNDARY, DEPRECATED_STACK_ALIGN)
	(PROLOGUE_FIRSTLINE_OVERLAP, DEPRECATED_POP_FRAME, STEP_SKIPS_DELAY)
	(TARGET_COMPLEX_BIT, TARGET_DOUBLE_COMPLEX_BIT)
	(OS9K_VARIABLES_INSIDE_BLOCK, KERNEL_U_ADDR, KERNEL_U_ADDR_HPUX)
	(REGISTER_U_ADDR, U_REGS_OFFSET, DEBUG_PTRACE): Remove description.

	(Converting an existing Target Architecture to Multi-arch): Remove
	 section.

	(gdbarch_unwind_pc, gdbarch_unwind_sp): Renew code example.
	(gdbarch_addr_bits_remove): Add code example.

	* gdb.texinfo: Replace REGISTER_NAME by gdbarch_register_name.

2007-07-02  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Remote Configuration): Document library-info-packet.
	Add other missing entries.  Adjust the table size to fit.
	(Stop Reply Packets): Use @itemize instead of @enumerate.  Document
	stop reasons including the new "library" event.
	(General Query Packets): Adjust table widths for qSupported.  Mention
	qXfer:libraries:read reply to qSupported and document the new packet.
	(Library List Format): New section.

2007-07-01  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (Attach): Fixed GDB exit inferior detachment.

2007-06-28  Michael Snyder  <msnyder@svkmacdonelllnx>

	* gdbint.texinfo (Table, Tuple and List Functions) Fix typo.

2007-06-25  Nick Roberts  <nickrob@snap.net.nz>

	* gdbint.texinfo (Register and Memory Data): Break sections
	into nodes and add a menu.

2007-06-21  Maciej W. Rozycki  <macro@mips.com>

	* gdb.texinfo (Examining Memory): Document the new behaviour.

2007-06-21  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.texinfo (Standard Target Features): Document
	m68k features.

2007-06-18  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (General Query Packets): Document qOffsets changes.

2007-06-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Target Description Format): Add version attribute
	for <target>.

2007-06-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (MIPS Features): Document org.gnu.gdb.mips.linux.

2007-06-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (MIPS Features): New subsection.

2007-06-12  Ulrich Weigand  <uweigand@de.ibm.com>
	    Markus Deuling  <deuling@de.ibm.com>

	* gdb.texinfo (General Query Packets): Document qXfer:spu:read
	and qXfer:spu:write packets and mention them under qSupported.

2007-06-12  Ulrich Weigand  <uweigand@de.ibm.com>
	    Markus Deuling  <deuling@de.ibm.com>

	* gdb.texinfo (Architectures): Add new SPU section to document
	Cell Broadband Engine SPU architecture specific commands.

2007-06-09  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.texinfo (GDB/MI Variable Objects): Editorial
	comments.

2007-06-07  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.texinfo (Emacs): Describe GDB under Emacs 22.1.

2007-05-29  Jim Blandy  <jimb@codesourcery.com>

	* gdb.texinfo (Overview): Doc fix.

2007-05-22  Maciej W. Rozycki  <macro@mips.com>

	* gdb.texinfo (Remote Configuration): Document "set/show
	remoteflow".

2007-05-16  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (MIPS): Remove documentation for set mips
	saved-gpreg-size, show mips saved-gpreg-size, and set mips
	stack-arg-size.

2007-05-14  Bob Wilson  <bob.wilson@acm.org>

	* all-cfg.texi (GDBTUI): New.
	* gdb.texinfo (Mode Options): Use GDBTUI variable.
	(TUI, TUI Overview, TUI Keys, TUI Single Key Mode, TUI Commands)
	(TUI Configuration): Edit to improve clarity and fix problems of
	both style and content.

2007-05-11  Ulrich Weigand  <uweigand@de.ibm.com>

	* observer.texi (GDB Observers): New observer "new_objfile".

2007-05-08  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdbint.texinfo (Native Conditionals): Remove USE_PROC_FS.

2007-04-14  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.texinfo (GDB/MI Variable Objects): Document
	frozen variables objects.

2007-04-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Memory): Reference Remote Debugging chapter.
	(Character Sets, Caching Data of Remote Targets): Likewise.
	(Targets): Delete Remote node.  Move its text...
	(Debugging Remote Programs): ...to here.  Delete description
	of the "remote" command.
	(Remote configuration): Delete description of "set remotedevice"
	and "show remotedevice".
	(Embedded Processors): Delete H8/300, H8/500, and SH nodes.

2007-04-11  Bob Wilson  <bob.wilson@acm.org>

	* gdb.texinfo (Contributors, Continuing and Stepping)
	(Fortran Defaults, HPPA, TUI, TUI Commands, Configure Options)
	(General Query Packets, File-I/O Remote Protocol Extension)
	(Protocol Basics, The F Reply Packet, Write)
	(Protocol-specific Representation of Datatypes, Memory Transfer):
	Fix hyphenation, punctuation and grammar problems.
	(Cygwin Native): Likewise.  Also fix misuse of @pxref and use
	'section' instead of 'subsection' in the text.
	(Non-debug DLL Symbols): Avoid 'subsubsection' in the text.
	(i386): Remove period from section name.
	(Installing GDB, Requirements, Running Configure,  Separate Objdir)
	(Config Names, Configure Options): Use @file{configure}.

2007-04-11  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdbint.texinfo (Writing Tests): Mention gdb_test_multiple
	and tab expansion.

2007-04-10  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdbint.texinfo (SOM): Correct location of the SOM reader.

2007-04-02  Bob Wilson  <bob.wilson@acm.org>

	* gdb.texinfo: Consistently capitalize all significant words in
	node names, chapter titles, section titles, and headings.  Update
	cross references to match.
	(Starting and Stopping Trace Experiment): Make node name plural.
	(Breakpoint related warnings): Hyphenate "Breakpoint-related".

2007-03-30  Pedro Alves  <pedro_alves@portugalmail.pt>

	* gdb.texinfo (WinCE): Delete obsolete subsection.

2007-03-30  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (M68K): Remove obsolete ROM monitors.
	* gdbint.texinfo (DWARF 1): Delete section and other dwarfread.c
	references.

2007-03-30  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Startup): Delete references to some alternate
	names for .gdbinit.
	(Thread): Remove LynxOS reference.
	(Tandem ST2000): Delete target-specific documentation.
	* gdbint.texinfo (Symbol Handling): Remove mention of NLM.
	(Target Architecture Definition): Remove mention of GDB_OSABI_NETWARE
	and GDB_OSABI_LYNXOS.

2007-03-29  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdbint.texi (Native Conditionals): Remove PTRACE_ARG3_TYPE.

2007-03-27  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdbint.texinfo (Target Conditionals): Remove mention of
	DEPRECATED_REMOTE_BREAKPOINT, DEPRECATED_BIG_REMOTE_BREAKPOINT,
	and DEPRECATED_LITTLE_REMOTE_BREAKPOINT.

2007-03-27  Brooks Moses  <brooks.moses@codesourcery.com>

	* Makefile.in: Add "pdfdir" installation
	directory, PDFTEX macro, support for "install-pdf" target,
	and rules for making a pdf version of refcard.texi.
	* refcard.tex: Specify paper size for PDF output.

2007-03-26  Bob Wilson  <bob.wilson@acm.org>

	* gdb.texinfo (Omissions from Ada, Additions to Ada): Wrap long lines.

2007-03-26  Bob Wilson  <bob.wilson@acm.org>

	* gdb.texinfo (Invoking GDB): Use @value{GDBP}.
	(Source Path, Character Sets, Macros, Define)
	(GDB/MI Result Records, GDB/MI Simple Examples)
	(GDB/MI Program Execution, GDB/MI File Commands)
	(Maintenance Commands, Packets, File-I/O Overview): Use @value{GDBN}.
	(Bug Reporting): Use @value{GCC}.

2007-03-26  Bob Wilson  <bob.wilson@acm.org>

	* gdb.texinfo (Help): Fix formatting of examples.
	(Variables): Use @ifnotinfo instead of @iftex.
	(Non-debug DLL symbols): Use @ref instead of @pxref.
	(Sparclet File): Use @samp instead of quotes.

2007-03-26  Bob Wilson  <bob.wilson@acm.org>

	* gdb.texinfo (Variables, C): Update cross reference to GCC docs.

2007-03-26  Bob Wilson  <bob.wilson@acm.org>

	* gdb.texinfo (Top): Move TUI and Annotations menu entries to match
	the order of the nodes.
	(C Operators, C Constants, Debugging C): Remove extra menus.
	(Method Names in Commands): Do not specify next/prev/up nodes.

2007-03-26  Bob Wilson  <bob.wilson@acm.org>

	* gdb.texinfo (File Options): Add missing parenthesis.
	(Breakpoints, Special Fortran commands, PowerPC): Fix typos.

2007-02-26  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Monitor commands for gdbserver): New subsection.

2007-02-26  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Standard Target Features): Mention
	case insensitivity.
	(ARM Features): Describe org.gnu.gdb.xscale.iwmmxt.

2007-02-18  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.texinfo (Top): Put Appendix A after numbered sections.
	(Files): Add section name to argument list for pxref.
	(Non-debug DLL symbols): Don't use `see' for pxref.
	(Embedded Processors): Fix typo.
	(GDB/MI Breakpoint Commands): Execution commands generate
	*stopped not ^done.

2007-02-13  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.texinfo (GDB/MI Variable Objects): Describe meanings of
	values for in_scope.  Mention that only root variables can be
	updated.
	(GDB/MI Development and Front Ends): Explain new values may be
	added to existing fields.

2007-02-08  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (-target-disconnect): Use @smallexample.
	(Requirements): Add anchor for Expat.  Update description.
	(Target Descriptions): Mention Expat.
	(Target Description Format): Document new elements.  Use
	@smallexample.
	(Predefined Target Types, Standard Target Features): New sections.
	* gdbint.texinfo (Target Descriptions): New section.

2007-02-07  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Target Description Format): Add section on XInclude.

2006-02-03  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.texinfo (GDB/MI Miscellaneous Commands): Describe the new
	command -enable-timings.

2007-02-02  Markus Deuling  <deuling@de.ibm.com>  (tiny change)

	* gdbint.texinfo (Operation System ABI Variant Handling): Update
	descriptions for new/deleted elements in gdb_osabi.  Add missing
	description for function generic_elf_osabi_sniff_abi_tag_sections.

2007-01-29  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Maintenance Commands): Add documentation for
	the new "maint print target-stack" command.

2007-01-26  Jan Kratochvil <jan.kratochvil@redhat.com>
	    Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo: Describe CHAR array vs. string identification rules.

2007-01-26  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Compilation, Files, Bootstrapping, Bug Reporting):
	Use @value{NGCC} instead of @value{GCC}.

2007-01-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>  (tiny change)

	* agentexpr.texi: Fix typos.
	* annotate.texinfo: Likewise.
	* gdb.texinfo: Likewise.
	* gdbint.texinfo: Likewise.
	* observer.texi: Likewise.
	* stabs.texinfo: Likewise.

2007-01-20  Markus Deuling  <deuling@de.ibm.com>  (tiny change)

	* gdbint.texinfo (Support Libraries): Remove mmalloc
	entry.  Describe readline library.

2007-01-09  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Target Descriptions): New section.
	(General Query Packets): Add QPassSignals anchor.  Mention
	qXfer:features:read under qSupported.  Expand mentions of
	qXfer:memory-map:read and QPassSignals.  Document
	qXfer:features:read.

2007-01-08  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Commands to specify files): Describe
	"set sysroot" and "show sysroot".
	(Using the `gdbserver' program): Lowercase argument
	to @var.  Expand description of setting up GDB on the
	host.

2007-01-05  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Set Catchpoints): Add documentation for the new
	catch exception, catch exception unhandled, and catch assert
	commands.

2007-01-04  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Debugging Output): Document "set debug xml"
	and "show debug xml".

2007-01-04  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdbint.texinfo (Compiler Warnings): Update for -Wall use.

2007-01-01  Joel Brobecker  <brobecker@adacore.com>

	* gdbint.texinfo (Start of New Year Procedure): Add missing item.

2006-12-08  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.texinfo (GDB/MI Variable Objects): Wrap historical
	note in @ignore, to be removed later if nobody complains.

2006-12-04  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.texinfo (GDB/MI Variable Objects): Describe -c option
	of -var-delete.

2006-11-22  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.texinfo (Setting breakpoints): Document
	automatic software/hardware breakpoint usage and
	the "set breakpoint auto-hw" command.

2006-11-21  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.texinfo (Memory Access Checking): New.

2006-11-16  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Remote configuration): Mention
	"pass-signals-packet".
	(General Query Packets): Document QPassSignals.  Fix
	a typo.

2006-11-14  Maxim Grigoriev  <maxim@tensilica.com>

	* gdb.texinfo (Contributors): Add contributors of Xtensa port.

2006-11-14  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Remote configuration): Rewrite documentation for
	packet configuration commands.
	(OS Information): Adjust reference to qXfer:auxv:read.
	(General Query Packets): Remove references to read-aux-vector-packet
	and set remote get-thread-local-storage-address.

2006-11-10  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdbint.texinfo (Target Architecture Definition): Add new
	Initializing a New Architecture section.

2006-10-31  David Taylor  <dtaylor@emc.com>

	* stabs.texinfo (Macro define and undefine): New node describing
	stabs for #define and #undef.

2006-10-27  Andreas Schwab  <schwab@suse.de>

	* gdb.texinfo (Processes): Rename "detach-fork" to "detach fork".

2006-10-21  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Breakpoints, Set Watchpoints): Elaborate and
	clarify on the possible meanings of ``expression'' watched by
	watchpoints.  Add indexing.
	(Prompting, Errors, Invalidation, Annotations for Running)
	(Source Annotations): Fix index entries by adding "annotation" to
	them, to discriminate from index entries that point to the more
	general topic descriptions.

2006-10-17  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdbint.texinfo (Target Vector Definition): Move most
	content into Existing Targets.  Add a menu.
	(Existing Targets): New section, moved from Target Vector
	Definition.  Use @subsection.
	(Managing Execution State): New section.

2006-10-16  Bob Wilson  <bob.wilson@acm.org>

	* gdb.texinfo (ST2000): Use Ctrl- instead of C-.

2006-10-15  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Sample Session, Invocation, Quitting GDB)
	(Command Syntax, Signals, Backtrace, Connecting)
	(Remote configuration, Renesas Boards, Console I/O): Fix last
	change: use Ctrl- instead of C-, except wrt Emacs.
	(File-I/O Examples): Put Ctrl-c in @kbd.
	(Cygwin Native, File-I/O Overview, The Ctrl-C message)
	(Console I/O): Use @samp with Ctrl-.
	(Signals, Set Breaks, Set Watchpoints): Document optional
	arguments to `info signals'  `handle', `info breakpoints', and
	`info watchpoints'.

2006-10-14  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Backtrace): Fix last change.

2006-10-14  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.texinfo (Backtrace): Order correctly and add other cases.

2006-10-10  Bob Wilson  <bob.wilson@acm.org>

	* gdb.texinfo (Command Syntax, Connecting, Remote configuration)
	(Renesas Boards, ST2000, TUI Keys, TUI Single Key Mode)
	(TUI Commands, Emacs, Console I/O): Fix @key and @kbd usage.

2006-09-21  Vladimir Prus  <vladimir@codesourcery.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Packets): Document vFlashErase,
	vFlashWrite and vFlashDone packets.
	(General Query Packets): Document qXfer:memory-map:read.
	Add a new feature for qXfer:memory-map:read.
	(Memory map format): New section.
	(Target Commands): Mention that gdb can write flash.

2006-09-21  Vladimir Prus  <vladimir@codesourcery.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Memory Region Attributes): Mention target-supplied
	memory regions and "mem auto".

2006-09-21  Nathan Sidwell  <nathan@codesourcery.com>

	* gdbint.texinfo (Array Containers): New section.

2006-09-17  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.texinfo (GDB/MI Stack Manipulation): Mention that
	-stack-list-arguments HIGH_FRAME argument can be larger then the
	actual number of frames.

2006-09-07  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.texinfo (GDB/MI Stack Manipulation): Mention that
	-stack-list-locals HIGH_FRAME argument can be larger then the
	actual number of frames.

2006-09-02  Bob Wilson  <bob.wilson@acm.org>

	* gdb.texinfo (Packets, Stop Reply Packets, General Query Packets,
	Register Packet Format, Tracepoint Packets): Fix spelling errors.

2006-09-02  Eli Zaretskii  <eliz@gnu.org>

	* gdbint.texinfo (Overall Structure): New section "Source Tree
	Structure".

2006-08-17  Jim Blandy  <jimb@codesourcery.com>

	* gdb.texinfo (Stop Reply Packets): Note similarity of 'S' and 'T'
	responses.

2006-08-08  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Source Path): Add documentation for new
	substitute-path commands.

2006-08-08  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Installing GDB): Update menu.  Move text to...
	(Running Configure): ...here.
	(Requirements): New node.  Mention expat.

2006-08-08  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.texinfo (Target Commands): Remove
	'set download-write-size' and 'show download-write-size'.

2006-08-01  Daniel Jacobowitz  <dan@codesourcery.com>

	* stabs.texinfo (Member Type Descriptor): Correct example for
	pointer to member types.

2006-07-21  Andrew Stubbs  <andrew.stubbs@st.com>

	* gdb.texinfo (Optional warnings and messages): Add
	'set/show trace-commands'.
	(Command files): Add '-v' to source command.

2006-07-12  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (OS Information): Update qPart reference to
	qXfer.
	(Remote configuration): Likewise.
	(Overview): Move @cindex to the start of a paragraph.  Talk
	about binary data encoding.
	(Packets): Refer to the overview for the details of the X
	packet encoding.
	(General Query Packets): Remove qPart description.  Add qXfer
	description.  Add an anchor to qSupported.  Correct feature
	table title.  Add a new feature for qXfer:auxv:read.
	(Interrupts): Add a missing parenthesis.

2006-07-05  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (KOD): Remove node.
	(GDB/MI Kod Commands): Remove commented out node.

2006-07-01  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (GDB/MI Output Syntax, GDB/MI Simple Examples)
	(GDB/MI Breakpoint Commands, GDB/MI Program Context)
	(GDB/MI Thread Commands, GDB/MI Program Execution)
	(GDB/MI Stack Manipulation, GDB/MI Variable Objects)
	(GDB/MI Data Manipulation, GDB/MI Symbol Query)
	(GDB/MI File Commands, GDB/MI Target Manipulation)
	(GDB/MI Miscellaneous Commands): Change (@value{GDBP})->(gdb),
	since the MI prompt is hard-wired into the code.

2006-07-01  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.texinfo (GDB/MI Compatibility with CLI): Qualify more carefully.
	(GDB/MI Simple Examples): Use @subheading for "A Bad Command".
	(GDB/MI Data Manipulation): Remove description of unimplemented
	display related commands as variable objects perform this function
	and are superior: -display-delete, -display-disable,
	-display-enable, -display-insert and -display-list.  Move
	-environment-cd, -environment-directory, -environment-path
	and -environment-pwd to "Program Context".
	(GDB/MI Program Control): Rename to "Program Execution".  Move
	-exec-arguments -exec-abort to...
	(GDB/MI Program Context): ...here.  New node split from "Data
	 Manipulation".

2006-06-21  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Remote configuration): Document set / show
	remote supported-packets.
	(General Query Packets): Document qSupported packet.

2006-06-10  Sandra Loosemore <sandra@codesourcery.com>

	* gdb.texinfo (File-I/O overview): Copy edit for grammar, spelling,
	and font markup.
	(Protocol basics): Likewise.
	(The F request packet): Likewise.
	(The F reply packet): Likewise.
	(Memory transfer): Move this node to be a subsubsection of
	"Protocol specific representation of datatypes".
	(The Ctrl-C message): More copy editing.
	(Console I/O): Likewise.
	(The isatty call): Delete this node, and merge its content into
	the "isatty" node.  Fixed references elsewhere.
	(The system call): Delete this node, and merge its content into
	the "system" node.  Fixed references elsewhere.
	(open): Reformat to use @table, and add appropriate font markup.
	(close): Likewise.
	(read): Likewise.
	(write): Likewise.
	(lseek): Likewise.
	(rename): Likewise.
	(unlink): Likewise.
	(stat/fstat): Likewise.
	(gettimeofday): Likewise.
	(isatty): Likewise.
	(system): Likewise, plus minor changes to fix confusing wording.
	(Integral datatypes): Fix font markup.
	(Pointer values): Likewise.
	(struct stat): Fix markup to use @table, plus minor copy editing.
	(struct timeval): Fix font markup, plus minor copy editing.
	(Constants): Minor copy editing.
	(Errno values): Add font markup.
	(File-I/O Examples): Likewise.

2006-06-10  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.texinfo (GDB/MI): Remove duplicate acknowledgements.
	(GDB/MI Simple Examples): Move node up one level.  Use real
	examples.
	(GDB/MI Compatibility with CLI): Update.
	(GDB/MI Result Records): Add "connected" and "exit" result
	classes.
	(GDB/MI Stream Records): Clarify target output.
	(GDB/MI Command Description Format): Modify example description.
	(GDB/MI Breakpoint Table Commands): Rename to...
	(GDB/MI Breakpoint Commands): ...this
	(GDB/MI Breakpoint Commands): Add optional thread field.
	(GDB/MI Program Control): Add an introduction.  Move "Program
	termination" examples into exec-run description.
	(GDB/MI File Commands): Mention similar CLI commands.
	(GDB/MI Miscellaneous Commands): Move to end.  Mention "show version"
	is similar to "-gdb-version".

2006-06-09  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Symbols): Fix "(gdb)"=>"(@value{GDBP})".

2006-06-02  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.texinfo (GDB/MI Development and Front Ends): Use
	sourceware.org for mailing lists.
	(GDB/MI File Commands): New node split from Program Control.

2006-06-01  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.texinfo (GDB/MI Development and Front Ends): New node.

2006-05-22  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Cygwin Native): Fix last change.

2006-05-22  Christopher Faylor  <cgf@timesys.com>

	* gdb.texinfo (Cygwin Native): Document set/show cygwin-exceptions.

2006-05-15  Nick Roberts  <nickrob@snap.net.nz>

	* gdbint.texinfo (Algorithms): Correct spelling and punctuation.
	(Releasing GDB, Testsuite): Remove details for including DejaGnu.

2006-05-14  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (General Query Packets): Recommend not starting
	new packets with qC and clarify.

2006-05-13  Gaius Mulley  <gaius@glam.ac.uk>

	* gdb.texinfo (M2 Types): New section.

2006-05-10  Daniel Jacobowitz  <dan@codesourcery.com>

	* agentexpr.texi: Add a copyright and license notice.
	* observer.texi: Likewise, with GPL clause for function prototypes.
	Remove trailing whitespace.

2006-05-05  Jim Blandy  <jimb@codesourcery.com>

	* gdb.texinfo (General Query Packets): Document conventions for
	terminating packet names, and their violations.

2006-05-05  Daniel Jacobowitz  <dan@codesourcery.com>

	* Makefile.in (GDB_DOC_SOURCE_INCLUDES): Update for readline 5.1.
	* gdb.texinfo: Likewise.

2006-05-05  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Remote Configuration): Remove "set remotedebug"
	and "show remotedebug".
	(Debugging Output): Add additional index entries.

2006-04-27  Michael Snyder  <msnyder@redhat.com>

	* gdb.texinfo (delete-fork): Command renamed to "delete fork".

2006-04-22  Andrew Cagney  <cagney@redhat.com>

	* gdb.texinfo (Contributors): Credit frame unwinder contributors.
	* gdbint.texinfo (Algorithms): Fix errors in frame documentation.

2006-04-18  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdbint.texinfo (x86 Watchpoints, Target Conditionals): Update insert
	and remove breakpoint prototypes.
	(Watchpoints): Move description of target_insert_hw_breakpoint and
	target_remove_hw_breakpoint ...
	(Breakpoints): ... to here.  Document target_insert_breakpoint and
	target_remove_breakpoint.

2006-04-17  Jim Blandy  <jimb@codesourcery.com>

	* gdb.texinfo (Packets): Note that 'addr' arguments to s, S, c,
	and C packets are optional.

2006-04-14  Frederic Riss  <frederic.riss@st.com>

	* gdb.texinfo (Specifying source directories): Update the description
	of the source file search to reflect the fact that the source path
	always contains at least $cdir and $cwd.

2006-03-31  Michael Snyder  <msnyder@redhat.com>

	* gdb.texinfo: Update copyright dates.

2006-03-31  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Overview): Add an index entry to "empty response".

2006-03-28  Jim Blandy  <jimb@codesourcery.com>

	* gdbint.texinfo (Prologue Analysis): New section.

2006-03-07  Jim Blandy  <jimb@red-bean.com>

	* gdb.texinfo (Connecting): Document 'target remote pipe'.

	* gdb.texinfo (Target Commands): Update text describing how to
	specify a target.  Refer to the detailed section on remote
	debugging, not the brief mention.

	* gdb.texinfo (Connecting): Organize the different 'target remote'
	connection methods into a table.  Add a 'target remote' index
	entry. (!!!)

2006-02-17  Fred Fish  <fnf@specifix.com>

	* gdb.texinfo (Symbols): Update descriptions of 'whatis' and
	'ptype' commands to reflect the fact that the only significant
	difference between them is that ptype prints the complete type
	description instead of just the name.

2006-02-13  Wu Zhou  <woodzltc@cn.ibm.com>

	* gdbint.texinfo (Watchpoints): Delete
	TARGET_REGION_SIZE_OK_FOR_HW_WATCHPOINT.

2006-02-10  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.texinfo (GDB/MI Breakpoint Table Commands): Add fullname and
	times fields where needed.  Fix typos.  Update general form given
	for output of -break-insert.
	(GDB/MI): Abbreviate some unnecessarily long fullnames.

2006-02-06  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdbint.texinfo (Symbol Handling): Add a section
	on memory management.

2006-02-06  Vladimir Prus  <ghost@cs.msu.su>

	* gdb.texinfo (Breakpoint table commands): Document the fullname
	field in -break-list output.

2006-02-03  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Cygwin Native): Fix typos.  Clarify the types of
	debugging information produced by the various "set debug..."
	options.

2006-02-01  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Files): Remove obsolete bits from the description
	of "symbol-file".

2006-01-25  Jim Blandy  <jimb@redhat.com>

	* gdbint.texinfo (Testsuite): Explain how to run selected tests.

2006-01-24  Jim Blandy  <jimb@redhat.com>

	* gdbint.texinfo (Frames): Document the basics of GDB's register
	unwinding model, and explain the existence of the "sentinel" frame.

2006-01-23  Andrew Stubbs  <andrew.stubbs@st.com>

	* gdb.texinfo (Choosing files): Mention that -directory is used
	for script files.
	(Specifying source directories): Likewise.
	(Command files): Explain how script files are found.

2006-01-21  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Backtrace): Describe how to get backtrace of all
	the threads in a multi-threaded program.
	(Threads): The threadno argument of "thread apply" can be a range
	of numbers.

2006-01-18  Jim Blandy  <jimb@redhat.com>

	* gdbint.texinfo (Coding): Add entry for -Wno-pointer-sign to list
	of warning flags.

2006-01-13  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Sequences): Improve menu annotations.
	(Define): Add index entries for arguments of user-defined
	commands.  Move the description of flow-control commands...
	(Command Files): ...to here.  Document loop_break and
	loop_continue.
	(Define, Command Files): Document `end' and add index entries for
	it.

2006-01-04  Michael Snyder  <msnyder@redhat.com>

	* gdb.texinfo: Add documentation for linux-fork.
	* gdbint.texinfo: Add internal documentation for checkpoints.

2006-01-02  Paul N. Hilfinger  <hilfinger@gnat.com>

	* gdb.texinfo (Omissions from Ada): Document that there is now
	limited aggregate support.

2005-12-28  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Registers): Describe how to refer to SSE and MMX
	registers and the likes.

2005-12-24  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Target Commands, Bug Reporting, File Options)
	(Symbols): Fix usage of "e.g.".
	(Memory Region Attributes): Fix usage of "etc."

	* gdbint.texinfo (libgdb, Symbol Handling, Native Debugging)
	(Coding): Fix usage of "e.g.".

2005-12-23  Eli Zaretskii  <eliz@gnu.org>

	* stabs.texinfo:
	* refcard.tex:
	* gpl.texi:
	* gdbint.texinfo:
	* gdb.texinfo:
	* gdb-cfg.texi:
	* fdl.texi:
	* annotate.texinfo:
	* all-cfg.texi:
	* Makefile.in: Add (C) after Copyright.  Update the FSF
	address.

2005-12-03  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Connecting): Explain that `monitor' is a way to
	extend GDB with commands for external monitor.

2005-12-02  Andrew Stubbs  <andrew.stubbs@st.com>

	* gdb.texinfo (Convenience variables): Add init-if-undefined command.

2005-11-25  Joel Brobecker  <brobecker@adacore.com>

	* gdbint.texinfo (Start of New Year Procedure): New chapter.

2005-11-21  Jim Blandy  <jimb@redhat.com>

	* gdb.texinfo (Tracepoint Packets): Document restrictions on
	placement of 'R' actions in tracepoint action packets; document
	dependence of 'X' and 'M' actions on a preceding 'R' action for
	their registers.

2005-11-19  Jim Blandy  <jimb@redhat.com>

	* gdb.texinfo (Tracepoint Packets): New node.
	(General Query Packets): Add entries for the tracepoint packets,
	referring to the "Tracepoint Packets" node.
	(Tracepoints): Add reference to "Tracepoint Packets".

2005-11-18  Kevin Buettner  <kevinb@redhat.com>

	* gdb.texinfo (set remotebreak): Add anchor.
	(X packet): Likewise.
	(Remote Protocol): Add new section `Interrupts' and new index
	entry `interrupts (remote protocol)'.

2005-11-18  Jim Blandy  <jimb@redhat.com>

	* gdb.texinfo (Packets): Move information out of 'q' and 'Q'
	entries into the General Query Packets section.  Add a
	cross-reference to that section.  Drop description of replies, as
	these are covered in the descriptions of each packet.
	(General Query Packets): Add introductory text.  Explain naming
	conventions, and how the end of a name is recognized.

2005-11-17  Kevin Buettner  <kevinb@redhat.com>

	* gdb.texinfo (Remote configuration): Fix typo in description of
	"set remotebreak" command.

2005-11-16  Jim Blandy  <jimb@redhat.com>

	* gdb.texinfo (Packets, Stop Reply Packets)
	(General Query Packets): Various formatting cleanups.
	- Use @samp for packet contents.
	- Drop summaries from packet @item lines; the same information appears
	  immediately below in the description.
	- Delete paragraph breaks after packet @item commands, so that the
	  description appears directly to the right of the packet prototype
	  in the printed manual, if it fits.
	- Place spaces in packet prototypes between @vars and non-@var
	  letters, and explain that they're just for formatting.
	- Use @dots{} instead of '...'.
	- Fix uses of @code where @var was needed.
	- Replace "deprecated" markers with English text spelling out the
	  packet's status and the preferred alternatives.
	- Remove "(reserved)" markers on 'A' and 'I' packets; it's unclear
	  what this ever meant.
	- Remove "(draft)" markers on 'i' packets; nobody has commented on
	  this for a long time.
	- Remove "(draft)" markers on 'z' and 'Z' packets; these have been
	  implemented several times, and have been in use for years.

2005-11-15  Jim Blandy  <jimb@redhat.com>

	* gdb.texinfo (Packets): Add index entries for 'm' packet
	disclaimers.

	* gdb.texinfo (Packets): Clarify lack of restrictions on behavior
	of stub when processing an 'm' packet.

	* gdb.texinfo (Packets): Mention that packets beginning with
	letters are reserved once, at the top, instead of actually listing
	them all and saying "reserved".

2005-11-15  Andrew Stubbs  <andrew.stubbs@st.com>

	* gdb.texinfo (User-defined commands): Add $argc. Add missing 'end'.
	Change @var{$arg0 to @code{$arg0.

2005-11-14  Wu Zhou  <woodzltc@cn.ibm.com>

	* gdb.texinfo (Fortran): Add some words about Fortran debugging.

2005-11-12  Jim Blandy  <jimb@redhat.com>

	* gdb.texinfo (General Query Packets): Put packets in alphabetical
	order.  Remove extraneous 'z'.

2005-11-07  Andrew Stubbs  <andrew.stubbs@st.com>

	* gdb.texinfo (Choosing files): Add --eval-command.

2005-11-04  Andrew Stubbs  <andrew.stubbs@st.com>

	* gdb.texinfo (Choosing modes): Add --return-child-result.


2005-11-01  Andrew Stubbs  <andrew.stubbs@st.com>

	* gdb.texinfo (Choosing modes): Add --batch-silent.

2005-10-28  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (GDB/MI Variable Objects): Fix @pxref usage under
	"The -var-update Command".

2005-10-03  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Print Settings): Add documentation for set/show
	print array-indexes.

2005-09-17  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Contributors): Thank Andrew Cagney for releases
	6.2 and 6.3.

2005-08-27  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (File Options): Don't document --mapped, it's gone
	since 19-Jan-2004.
	(Files): Likewise.
	(Variables, Symbols): Document the "<incomplete type>" message and
	its reasons.

2005-08-01  Fred Fish  <fnf@specifix.com>

	* gdb.texinfo (SETUP_ARBITRARY_FRAME): Remove obsolete reference.

2005-07-15  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.texinfo (GDB/MI Variable Objects): Describe print-values
	option for -var-list-children and -var-update.
	(GDB/MI Stack Manipulation): Simplify description of
	print-values option for -stack-list-locals.
	(GDB/MI Command Description Format): Clarify.
	(Mode Options): Spelling of superseded.

2005-07-12  Bob Rossi  <bob@brasko.net>

	* gdb.texinfo (GDB/MI Miscellaneous Commands): Fix -inferior-tty-show
	corresponding GDB command comment.

2005-07-06  Bob Rossi  <bob@brasko.net>

	* gdb.texinfo (GDB/MI Miscellaneous Commands): Add -inferior-tty-set
	and -inferior-tty-show.
	(Input/Output): Document "set/show inferior-tty" and tty alias.

2005-07-02  Nathan J. Williams  <nathanw@wasabisystems.com>

	* gdb.texinfo (Packets): Change description of 'D' packet to note
	that GDB does wait for a response.

2005-06-22  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.texinfo (History) Rename "Command History".
	(Command History): Move node "Server Prefix" from section on
	Annotations here.

2005-06-19  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.texinfo (GDB/MI Stack Manipulation):
	Re-instate -stack-info-frame with example.  Say that it gets
	info on selected frame, not current frame.

2005-06-18  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Server): Clarify that `file' should be used before
	connecting to the server.
	(Files): Add an xref to the above description.
	(Output Formats): More detailed description of the `c' format.
	(Memory): List explicitly all the formats supported by `x'.
	(Threads): Add an @cindex entry for "thread apply".
	(Files): Document the possibility of loading unlinked object
	files.  Add more indexing for solib-absolute-prefix and
	--with-sysroot.
	(Machine Code): Document possible problems with locations in
	shared libraries.
	(Backtrace): Document that free-standing environments do not need
	to have a `main' function.

2005-06-18  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.texinfo (GDB/MI Stack Manipulation): Remove reference to
	-stack-info-frame.

2005-06-07  Andrew Cagney  <cagney@gnu.org>

	* gdb.texinfo (Contributors): Note the original multi-arch
	contributors.

2005-06-03  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Registers): Add index entries for the standard
	registers.
	(Frames): Add cross-reference from frame pointer description to
	the Registers node.
	(Annotations Overview): Fix the reference to GDB name.

2005-06-01  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Set Watchpoints): Remove @vindex entry for
	can-use-hw-watchpoints.

2005-05-28  Bob Rossi  <bob@brasko.net>

	* gdb.texinfo (GDB/MI Out-of-band Records): Add bullet enumerating
	the possible reasons why an exec async record would be returned to FE.

2005-05-26  Andrew Cagney  <cagney@gnu.org>

	* gdb.texinfo: Note that Elena Zannoni, Fernando Nasser, and
	Andrew Cagney implemented the original GDB/MI.

2005-05-23  Orjan Friberg  <orjanf@axis.com>

	* gdb.texinfo (CRIS): Update the cris-version and cris-dwarf2-cfi
	documentation.  Add documentation for cris-mode.

2005-05-20  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Numbers): Explain the example and make the wording
	more acurate.

2005-05-17  Daniel Jacobowitz  <dan@codesourcery.com>
	    Dennis Brueni  <dennis@slickedit.com>

	* gdb.texinfo (GDB/MI Breakpoint Table Commands)
	(GDB/MI Data Manipulation, GDB/MI Program Control)
	(GDB/MI Stack Manipulation): Update examples to include the fullname
	attribute in stack frames.

2005-05-12  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Startup): Fix last change.  Treat gdb.ini like we
	do with other non-standard names of init files.

2005-05-11  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Command Files): Move the description of the startup
	from here...
	(Startup): ...to this new subsection of the Invocation chapter.
	Rearrange the description of init files more logically and add a
	cross-reference to "Command Files".  Document the special gdbinit
	name for CISCO 68k.  Expand the description of what GDB does
	during startup.
	(History): Add index entry for HISTSIZE.

2005-05-02  Mark Kettenis  <kettenis@gnu.org>

	* gdb.texinfo (Files): Remove documentation for auto-solib-limit.

2005-05-02  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (SVR4 Process Information, The isatty call)
	(The system call): Don't use foo(N) notation for man pages and
	functions.
	(Compilation, DJGPP Native): Improve wording.

2005-04-27  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Backtrace): Describe backtraces with arguments that
	were optimized away.

2005-04-22  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Remote configuration): Document "set/show
	get-thread-local-storage-address".  Add cross-reference to the
	description of the qGetTLSAddr packet.
	(General Query Packets): Mention "set remote
	get-thread-local-storage-address" and add a reference to its
	description.

2005-04-19  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.texinfo (Backtrace): Describe 'bt full'.

2005-04-17  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.texinfo (Mode Options): Fix typo.
	(GDB/MI): Describe how to invoke GDB/MI.

2005-04-16  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (OS Information): Renamed from Auxiliary Vector; all
	references changed.  Add description of "info udot".
	(Files): Document "set/show stop-on-solib-events".
	(M32R/D): Document "set/show download-path", "set/show
	board-address", "set/show server-address", "upload", "tload".
	Document "sdireset", "sdistatus", "debug_chaos", "use_debug_dma",
	"use_mon_code", "use_ib_break", "use_dbt_break".
	(Maintenance Commands): Improve indexing.
	(Target Commands): Document "set/show hash", "set/show debug
	monitor".
	(SVR4 Process Information): Document "info pidlist" and "info
	meminfo".  Document "set/show procfs-tarce" and "set/show
	procfs-file".  Document "proc-trace-*" and "proc-untrace-*".
	(Symbols, The Print Command with Objective-C): Improve indexing.
	(Objective-C): Add references to "info classes" and "info
	selectors".
	(Debugging Output): Improve wording.  Document "set/show debug
	solib-frv".  Fix "set/show debugvarobj".
	(Set Breaks): Add index entry for "hardware breakpoints".
	(Renesas ICE): Document "e7000", "ftplogin", "ftpload", "drain",
	and "set/show usehardbreakpoints".
	(MIPS Embedded): Document "se/show syn-garbage-limit", "set/show
	monitor-prompt", "set/show monitor-warnings", "pmon".
	(ARM): Document "rdilogfile", "rdilogenable", "set/show
	rdiromatzero", "set/show rdiheartbeat".
	(PowerPC): Document SDS-specific commands "set/show sdstimeout",
	"sds".
	(Embedded Processors): Document the "sim" command.
	(Remote): Document the "remote" command.
	(DJGPP Native): Document the "info serial" command.
	(Threads): Document "maint info sol-threads".
	(Files): Document "nosharedlibrary", "add-symbol-file-from-memory".
	(Set Breaks): Improve indexing.
	(Command Syntax): Add a reference to dont-repeat.
	(Define): Document "dont-repeat".
	(TUI Commands): Document "tabset".
	(WinCE): New subsection.  Document "set/show remotedirectory",
	"set/show remoteupload", "set/show remoteaddhost".

2005-04-15  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Hurd Native): New subsection, documents
	Hurd-specific commands.
	(Maintenance Commands): Add cross-reference to "Debugging Output".
	(Debugging Output): Document "set/show debug lin-lwp".
	(MIPS): Improve documentation of heuristic-fence-post.  Document
	"set/show mips abi", "set/show mips saved-gpreg-size", "set/show
	mips stack-arg-size", "set/show mips mask-address", "set/show mips
	remote-mips64-transfers-32bit-regs", "set/show debug mips".
	(ARM): Document ARM-specific commands.
	(AVR): New section.  Document "info io_registers".
	(CRIS): New section.  Document "set/show cris-version" and
	"set/show cris-dwarf2-cfi".
	(HPPA): New section.  Document "set/show debug hppa" and "maint
	print unwind".
	(Neutrino): New subsection.  Document "set/show debug nto-debug".
	(Super-H): New section.  Document the "regs" command.
	(Debugging Output): Document "set/show debug aix-thread".

2005-04-09  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Print Settings): Document "set/show print
	pascal_static-members", "set print repeats", "show print
	null-stop".  Improve indexing.  Fix documentation of "set print
	union".
	(Pascal): New section.
	(Supported languages): Rename from "Support"; all references
	updated.  Add a menu item for Pascal.
	(Numbers): Document "set radix.
	(Screen Size): Document "set/show pagination".
	(MIPS Embedded): Remove "set processor" documentation.
	(Remote configuration): Document "set/show X/P/Z-packet",
	"set/show read-aux-vector-packet", "set/show remote
	symbol-lookup-packet", "set/show remote verbose-resume-packet",
	"set/show remoteaddresssize", "set/show remotebaud", "set/show
	remotedebug", "set/show remotebreak", "set/show remotedevice",
	"set/show remotelogfile".
	(Auxiliary Vector): Add reference to the description of the
	read-aux-vector-packet setting.
	(Set Watchpoints): Add a cross-reference to "set remote
	hardware-breakpoint-limit".
	(General Query Packets): Add indexing of requests and
	cross-references to related commands in "Remote configuration".
	(File-I/O Overview, The system call): Fix wording and typos.
	(Thread Stops): Add index entries.
	(Continuing and Stepping): Document "show step-mode".
	(i386): New node.  Document "set/show struct-convention".
	(Files): Document "show trust-readonly-sections".
	(Calling): Document "set/show unwindonsignal".
	(Messages/Warnings): Add index entries.
	(Maintenance Commands): Document "set/show watchdog".
	(Annotations Overview): Document "show annotate".
	(Set Watchpoints): Add index entries.
	(Symbols): Fix doc of case-sensitive.
	(ABI): Document "show coerce-float-to-double".
	(Convenience Vars, Help): Improve indexing.
	(Machine Code): Document "show disassembly-flavor".
	(Debugging C plus plus): Document "show overload-resolution".
	(Value History, Signaling): Add index entries.

2005-04-08  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Show): Move @kindex entries to their proper places.
	(Processes): Fix wording.
	(History, List, Logging output, Define, Symbols, Print Settings):
	Improve indexing.

2005-04-03  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Targets): Document "set/show architecture".  Remove
	redundant index entry for "target" command.
	(Backtrace): Add index entries.
	(Symbols, Fortran): Document the "set case-sensitive" command.
	(DJGPP Native): Document "set com1base", "set com1irq", etc.
	(Print Settings): Add index entry for "set demangle-style".
	(Target Commands): Document "set download-write-size".
	(Debugging Output): Document "set exec-done-display".

2005-04-02  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Files): Fix the name and documentation of
	add-shared-symbol-files.  Document its alias assf.  Update the
	list of OSs where GDB supports shared libraries.  Fix markup.
	(Continuing and Stepping): Add reference to @var{location} in the
	text.
	(Dump/Restore Files): Fix reference to @{filename}.
	(Help): Fix wording.
	(Attach): Ditto.
	(Set Watchpoints): Ditto.
	(Backtrace): Remove redundant index entries.  Improve index
	entries.
	(Delete Breaks): Fix wording.
	(Memory): Document the compare-sections command.
	(Memory Region Attributes): Improve wording.
	(Disabling): Improve wording.
	(Fortran): New subsection.  Document the "info common" command.
	(Help): Document aliases "info copying" and "info warranty".
	(Caching Remote Data): New section.  Document the "set/show
	remotecache" and "info dcache" commands.
	(Show): Fix wording of the documentation of the "set
	extension-language" command.
	(Signals): Add index entry for "info handle".
	(Memory Region Attributes): Fix punctuation.
	(Symbols): Change the arg name to "location" and refer to it in
	the text.  Fix wording of "info types" doc.
	(Threads): Fix usage of @enumerate @item's.
	(Listing Tracepoints): Add index entry for "info tp".
	(Set Watchpoints): Add xref to "info break" description.
	(Macros): Add an index entry for "macro exp1".  Document the
	"macro list" command.
	(Maintenance Commands): Document "flushregs", "maint agent",
	"maint check-symtabs", "maint cplus", "maint demangle", "maint
	deprecate", "maint undeprecate", "maint dump-me", "maint packet",
	"maint print architecture", "maint print objfiles", "maint print
	statistics", "maint print type", "maint show-debug-regs", "maint
	space", "maint time", and "maint translate-address".
	(Connecting): Document the "monitor" command.
	(Annotations Overview): Describe the "set annotate" command.

2005-04-01  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Set Watchpoints): Document can-use-hw-watchpoints.
	Rearrange index entries and improve wording about support for
	hardware watchpoints.

2005-03-10  Bob Rossi  <bob@brasko.net>

	* gdb.texinfo: Update copyright

2005-02-09  Theodore A. Roth  <troth@openavr.org>

	* gdb.texinfo (General Query Packets): Fix texinfo compile warning and
	error.

2005-02-03  Kevin Buettner  <kevinb@redhat.com>

	* gdb.texinfo (General Query Packets): Document qGetTLSAddr packet.

2005-01-17  Michael Snyder  <msnyder@redhat.com>

	* gdb.texinfo: Fix spelling, infinte  ->  infinite.

2005-01-08  Mark Kettenis  <kettenis@gnu.org>

	* observer.texi (GDB Observers): Document "solib_loaded".

2005-01-07  Andrew Cagney  <cagney@gnu.org>

	* configure.ac: Rename configure.in, require autoconf 2.59.
	* configure: Re-generate.

	* configure.in: Replace configdirs with multiple references to
	AC_CONFIG_SUBDIRS.
	* configure: Re-generate.

2005-01-04  Andrew Cagney  <cagney@gnu.org>

	* gdbint.texinfo (Versions and Branches): Make the date (YYYYMMDD)
	part of the version number.

2004-12-24  Mark Kettenis  <kettenis@gnu.org>

	* gdbint.texinfo (Algorithms): Remove description of
	TARGET_DISABLE_HW_WATCHPOINTS and TARGET_ENABLE_HW_WATCHPOINTS.

2004-12-07  Jim Blandy  <jimb@redhat.com>

	* gdb.texinfo (General Query Packets): Specify that thread ID's in
	the 'qC' and 'qThreadInfo' packets are unsigned hexidecimal
	numbers.

2004-12-07  Andreas Schwab  <schwab@suse.de>

	* gdb.texinfo (Mode Options): Document -l option.

2004-12-04  Eli Zaretskii  <eliz@gnu.org>

	* gdbint.texinfo (Algorithms): More accurate description of
	STOPPED_BY_WATCHPOINT.  Point out that target_stopped_data_address
	is not needed unless data-read and data-access watchpoints are
	supported.  Add a description of how GDB checks whether the
	inferior stopped because a watchpoint was hit.

2004-11-23  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Files): Add cross-reference to description of
	-readnow command-line switch.

2004-11-10  Randolph Chung  <tausq@debian.org>

	* gdb.texinfo: Document set/show backtrace past-entry commands.
	Rearrange index entries for set/show backtrace past-main.

2004-11-10  Jon Beniston <jon@beniston.com>

	Committed by Andrew Cagney  <cagney@gnu.org>.
	* gdb.texinfo (Remote Serial Protocol): Further describe
	binary transfer escaping mechanism .

2004-11-08  Randolph Chung  <tausq@debian.org>

	* gdb.texinfo (inferior_debugging info): Document "set debug infrun"
	and "show debug infrun".  Add index entries.

2004-10-23  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (SVR4 Process Information): Document subcommands of
	"info proc" that are already implemented.  Add index entries.
	(Working Directory): Add a cross-reference to "info proc" command.
	(Files): Add a tip for decreasing memory used for symtabs from
	shared libraries.
	(Starting): Fix whitespace; make "elaboration" stand out where it
	is first used, and add an index entry for the term.
	(Calling): Expand and elaborate text.  Add "print".  Add the
	description of problems with weak aliases.
	(Core File Generation): New section.

2004-10-12  Andrew Cagney  <cagney@gnu.org>

	* gdbint.texinfo (Versions and Branches): New chapter.
	(Releasing GDB): Delete "Versions and Branches" section.
	(Top): Add "Versions and Branches".

2004-10-08  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Editing, History): Add cross-references to the
	included Readline and History user documentation.  Remove
	references to the symbol have-readline-appendices which is unused
	and undefined.
	(History): Fix indexing.

2004-10-08  Jeff Johnston  <jjohnstn@redhat.com>

	* gdbint.texinfo (target_stopped_data_address): Update to
	new prototype.
	(i386_stopped_data_address): Update prototype and description.
	(i386_stopped_by_watchpoint): New function and description.

2004-10-03  Paul N. Hilfinger  <hilfinger@gnat.com>

	* gdb.texinfo (Filenames): Add Ada suffixes.
	(Ada) New section.

2004-09-27  Andrew Cagney  <cagney@gnu.org>
	    Robert Picco  <Robert.Picco@hp.com>

	* gdb.texinfo (Packets): Document the "p" packet.

2004-09-21  Jason Molenda  (jmolenda@apple.com)

	* gdb.texinfo (Paths and Names of the Source Files): Document the
	meaning of values in the 'desc' field of a SO stab.

2004-09-20  Daniel Jacobowitz  <dan@debian.org>

	* gdb.texinfo (Maintenance Commands): Document "maint set dwarf2
	max-cache-age" and "maint show dwarf2 max-cache-age".

2004-09-16  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Set Breaks): Add index entry for setting
	breakpoints on overloaded C++ functions that are not members of
	any classes.  Add an example and an index entry for setting
	breakpoints on all program functions.
	(Character Sets, Macros, Overlay Commands)
	(Non-debug DLL symbols, GDB/MI Output Syntax)
	(Annotations Overview, Maintenance Commands, File-I/O Overview):
	Use "(@value{GDBP})" instead of a literal "(gdb)".

2004-09-12  Andrew Cagney  <cagney@gnu.org>

	* gdbint.texinfo (Native Debugging): Delete description of
	FILES_INFO_HOOK.

2004-09-11  Paul Hilfinger  <hilfinger@gnat.com>

	* gdbint.texinfo (User Interface): Change local_hex_string_custom
	to hex_string_custom (not historically correct, but more
	understandable, given the current code).

2004-09-03  Andrew Cagney  <cagney@gnu.org>

	* gdbint.texinfo (Native Debugging): Delete SVR4_SHARED_LIBS.

2004-09-01  Jeff Johnston  <jjohnstn@redhat.com>

	* observer.texi (solib_unloaded): New observer.

2004-08-24  Andrew Cagney  <cagney@gnu.org>

	* gdbint.texinfo (Target Architecture Definition): Add missing
	comma.

2004-08-20  Michael Chastain  <mec.gnu@mindspring.com>

	* (Using the Testsuite): build != host is supported,
	but some test scripts do not support build != host.

2004-08-14  Mark Kettenis  <kettenis@gnu.org>

	* gdbint.texinfo (Host Definition): Delete description of
	FCLOSE_PROVIDED and GETENV_PROVIDED.

2004-08-05  Mark Kettenis  <kettenis@chello.nl>

	* gdbint.texinfo (Host Definition): Delete description of
	NO_SYS_FILE.
	(Native Debugging): Delete description of KERNEL_U_ADDR_BSD and
	PTRACE_FP_BUG.

2004-08-05  Andrew Cagney  <cagney@gnu.org>

	* gdbint.texinfo (Target Architecture Definition): Delete
	reference to deprecated_read_fp.

2004-08-02  Andrew Cagney  <cagney@gnu.org>

	* gdbint.texinfo (Target Architecture Definition): Delete
	description of DEPRECATED_REGISTER_BYTES.

2004-07-30  Baurjan Ismagulov  <ibr@ata.cs.hun.edu.tr>

	* gdb.texinfo (Source Path): Document the new behavior of
	searching for the source files.

2004-07-17  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Edit): Fix markup of EDITOR and improve wording.
	(Search, Expressions, Arrays, Variables, Data, Machine Code)
	(Auto Display): Improve indexing.

2004-07-16  Andrew Cagney  <cagney@gnu.org>

	* gdb.texinfo (Mode Options): Delete documentation on "-async" and
	"-noasync".

2004-07-09  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo: Fix @kindex entries so that multiple commands that
	have the same prefix have only their prefix in the index.

2004-07-03  Mark Kettenis  <kettenis@gnu.org>

	* gdb.texinfo (BSD libkvm Interface): New node (section)
	(Native): Add it to the menu.

2004-07-01  Mark Kettenis  <kettenis@gnu.org>

	* gdbint.texinfo (Target Architecture Definition): Remove
	PCC_SOL_BROKEN.

2004-06-24  Mark Kettenis  <kettenis@gnu.org>

	* gdbint.texinfo (Target Architecture Definition): Remove
	SUN_FIXED_LBRAC_BUG.

2004-06-26  Andrew Cagney  <cagney@gnu.org>

	* gdbint.texinfo (Coding): Replace xasprintf with xstrprintf.

2004-06-20  Andrew Cagney  <cagney@gnu.org>

	* gdbint.texinfo (Target Architecture Definition): Deprecate
	USE_STRUCT_CONVENTION.

2004-06-19  Michael Chastain  <mec.gnu@mindspring.com>

	gdb.texinfo (Bug Reporting): Mention session recording,
	with the script command or Emacs.

2004-06-18  Andrew Cagney  <cagney@gnu.org>

	* gdbint.texinfo (Target Architecture Definition): Deprecate
	FUNCTION_START_OFFSET.

2004-06-14  Andrew Cagney  <cagney@gnu.org>

	Based on changes from Karl Berry.
	* gdb.texinfo: Do not use @sc in a direntry.
	* stabs.texinfo: Change @dircateogry to "Software development".
	* gdbint.texinfo, gdb.texinfo, annotate.texinfo: Ditto.

2004-06-13  Andrew Cagney  <cagney@gnu.org>

	* gdbint.texinfo (Target Architecture Definition): Delete
	description of RETURN_VALUE_ON_STACK.

2004-06-09  Andrew Cagney  <cagney@gnu.org>

	* gdbint.texinfo (Native Debugging): Restore "@table @code"
	deleted by previous patch.

2004-06-08  Andrew Cagney  <cagney@gnu.org>

	* gdbint.texinfo (Native Debugging): Delete documentation on
	ATTACH_DETACH.

2004-06-06  Randolph Chung  <tausq@debian.org>

	* gdb.texinfo (push_dummy_call): Use @code{struct value}.

2004-06-06  Randolph Chung  <tausq@debian.org>

	* gdb.texinfo (push_dummy_call): Update argument list to match
	the new push_dummy_call method signature.  Describe the function
	argument.

2004-05-24  Joel Brobecker  <brobecker@gnat.com>

	* gdb.texinfo (Starting): Document new start command.

2004-05-21  Andrew Cagney  <cagney@redhat.com>

	* observer.texi (GDB Observers): Document "inferior_created".

2004-05-08  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	description of DO_DEFERRED_STORES.

	* gdbint.texinfo (Target Architecture Definition): Delete
	references to DEPRECATED_FIX_CALL_DUMMY.

	* gdbint.texinfo (Target Architecture Definition): Delete
	description of DEPRECATED_CALL_DUMMY_WORDS,
	DEPRECATED_SIZEOF_CALL_DUMMY_WORDS, and CALL_DUMMY.

	* gdbint.texinfo (Target Architecture Definition): Delete
	description of DEPRECATED_PUSH_DUMMY_FRAME.

	* gdbint.texinfo (Target Architecture Definition): Delete
	reference to DEPRECATED_CALL_DUMMY_BREAKPOINT_OFFSET.

2004-05-07  Andrew Cagney  <cagney@redhat.com>

	* observer.texi (GDB Observers): Add "Debugging" section.  Include
	cross reference to "set/show debug observer".
	* gdb.texinfo (Debugging Output): Document "set/show debug
	observer".

2004-05-01  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	description of DEPRECATED_PC_IN_SIGTRAMP.

2004-04-30  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	documentation for BELIEVE_PCC_PROMOTION_TYPE, no longer defined.

2004-04-30  Orjan Friberg  <orjanf@axis.com>

	* observer.texi (GDB Observers): Correct spelling.

2004-04-26  Orjan Friberg  <orjanf@axis.com>

	* observer.texi (GDB Observers): Add target_changed event.

2004-04-08  Andrew Cagney  <cagney@redhat.com>

	* observer.texi (GDB Observers): Rework, provide generic observer
	definitions and then a list of observable events.

2004-04-04  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Host Definition): Delete reference to
	NO_SIGINTERRUPT.

2004-04-02  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	reference to DEPRECATED_CALL_DUMMY_LENGTH.

2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>

	* gdb.texinfo (TUI Commands): Document tui reg commands.

2004-03-26  Andrew Cagney  <cagney@redhat.com>

	* gdb.texinfo (TUI): Delete reference to --enable-tui.  Mention
	"gdbtui".
	(Mode Options): Mention "gdbtui".  Use "Text" not "Terminal".
	(Contributors): Mention both Text and Terminal User Interface.

2004-03-23  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Deprecate
	references to SIGTRAMP_START and SIGTRAMP_END.

2004-03-23  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Deprecate
	references to PC_IN_SIGTRAMP.

2004-03-19  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	reference to GDB_TARGET_IS_HPPA.

2004-03-18  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Coding): Update section on gdbarch_data,
	describe pre_init and post_init.

2004-03-09  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.texinfo (Debugging Output): Document values for "set debug
	target".

2004-02-28  Andrew Cagney  <cagney@redhat.com>

	* gdb.texinfo (Contributors): Mention GDB 6.1 release engineer.

2004-02-26  Jeff Johnston  <jjohnstn@redhat.com>

	* gdb.texinfo (breakpoints): Add information about the
	new "set breakpoint pending" and "show breakpoint pending"
	commands.

2004-02-26  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Coding): Document use of gdbarch_obstack_zalloc
	in Per-architecture module data section.

2004-02-25  Roland McGrath  <roland@redhat.com>

	* gdb.texinfo (General Query Packets): Document qPart:... packets.

2004-02-24  Andrew Cagney  <cagney@redhat.com>

	* annotate.texinfo: Wrap fdl.texi include in raise/lower sections.
	* gdb.texinfo, gdbint.texinfo, stabs.texinfo: Ditto.
	* fdl.texi: Import Version 1.2, November 2002.

2004-02-17  Andrew Cagney  <cagney@redhat.com>

	* gdb.texinfo (Mode Options): Note that "mi1" is deprecated.

2004-02-16  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Deprecate
	FRAMELESS_FUNCTION_INVOCATION.

2004-02-16  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Coding): Mention -Wunused-function.

2004-02-14  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	description of DEPRECATED_CALL_DUMMY_STACK_ADJUST.

2004-02-12  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.texinfo: Properly quote the name "C++".
	* gdbint.texinfo: Ditto.
	* stabs.texinfo: Ditto.

2004-02-11  Elena Zannoni  <ezannoni@redhat.com>

	* gdbint.texinfo (Support Libraries): Add doco about obstacks and
	minimal information about libiberty.

2004-02-06  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.texinfo (Auxiliary Vector): Fix thinko with @value{GDBN}.

2004-02-04  Roland McGrath  <roland@redhat.com>

	* gdb.texinfo (Auxiliary Vector): New node (section).
	(Data): Add it to the menu.

2004-02-02  Jeff Johnston  <jjohnstn@redhat.com>

	* gdb.texinfo (Breakpoints): Add information about pending
	breakpoint support.

2004-01-26  Andrew Cagney  <cagney@redhat.com>

	* gdb.texinfo (Overview): Delete references to the cisco protocol
	including the "N" response.

2004-01-26  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Rename
	EXTRACT_STRUCT_VALUE_ADDRESS to
	DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS.

2004-01-24  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (KOD): Document "show os".  Add index entries for
	"set/show os" and "info cisco" commands.

2004-01-21  Eli Zaretskii  <eliz@gnu.org>

	* Makefile.in (install-info): Prepend $(DESTDIR) to $(infodir).

2004-01-19  Michael Chastain  <mec.gnu@mindspring.com>

	* gdbint.texinfo: Delete USE_MMALLOC, NO_MMCHECK, MMCHECK_FORCE,
	MMAP_BASE_ADDRESS, MMAP_INCREMENT.

2004-01-19  Nick Roberts  <nick@nick.uklinux.net>

	* gdb.texinfo (GDB/MI Stack Manipulation): Describe extension to
	-stack-list-locals.
	(GDB/MI Variable Objects): Describe extension to
	-var-list-children.

2004-01-17  Daniel Jacobowitz  <drow@mvista.com>

	* gdbint.texinfo (DECR_PC_AFTER_HW_BREAK): Don't document.

2004-01-17  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	documentation on DEPRECATED_NPC_REGNUM.

2004-01-13  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.texinfo: Update copyright year.  Mention that set
	follow-fork-mode is supported on GNU/Linux.  Remove documentation of
	"set follow-fork-mode ask".

2004-01-13  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo: Update copyright year.
	(Coding): Add -Wunused-label to list of -Werror warnings.

2004-01-08  Jason Molenda  <jmolenda@apple.com>
	    Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo: Update copyright.
	(Objective-C): "methodName" typeo fixed.  Add @code/@var markup
	around names, as appropriate.  Minor syntax cleanup of
	_NSPrintForDebugger explanation.  Two spaces after periods.
	GDBN used instead of lit. "gdb".  Index entries added for
	print-object and _NSPrintForDebugger.  @noindent added in one spot.

2003-11-11  Elena Zannoni  <ezannoni@redhat.com>

	* stabs.texinfo: Add dircategory and direntry commands.
	* annotate.texinfo: Ditto.

2003-11-10  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Replace the
	return_value method's "inval" and "outval" parameters with
	"readbuf" and "writebuf".

2003-10-28  Jim Blandy  <jimb@redhat.com>

	* gdb.texinfo (The F request packet, The F reply packet): Renamed
	from "The `F' request packet" and "The `F' reply packet", to make
	texi2dvi happy.
	(File-I/O remote protocol extension): Update menu entries, too.

2003-10-26  Michael Chastain  <mec@shout.net>

	* gdb.texinfo (Thread Stops): Document the issue with
	premature return from system calls in multi-threaded programs.

2003-10-24  Andrew Cagney  <cagney@redhat.com>

	* annotate.texinfo: Fix "fortunatly"[sic].

2003-10-23  Kei Sakamoto  <sakamoto.kei@renesas.com>

	* gdb.texinfo (Contributors to GDB): Replace "Renesas"
	with "Hitachi" and "Mitsubishi".

2003-10-20  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Document
	gdbarch_return_value.  Add cross references from
	USE_STRUCT_CONVENTION, EXTRACT_RETURN_VALUE, and
	STORE_RETURN_VALUE, and from/to EXTRACT_STRUCT_VALUE_ADDRESS.

2003-10-18  Mark Kettenis  <kettenis@gnu.org>

	* gdbint.texinfo (Target Architecture Definition): Document
	regset_from_core_section.

2003-10-16  Kei Sakamot Sakamoto  <sakamoto.kei@renesas.com>

	* gdb.texinfo (M32R/D): Mention m32rsdi target.

2003-10-15  Kevin Buettner  <kevinb@redhat.com>

	From Anthony Green  <green@redhat.com>:
	* gdb.texinfo (Breakpoints related warnings): Insert into menu.

2003-10-14  Kevin Buettner  <kevinb@redhat.com>

 	* gdb.texinfo (Breakpoint related warnings): New node.
 	* gdbint.texinfo (ADJUST_BREAKPOINT_ADDRESS): Document.

2003-10-13  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.texinfo (Remote Protocol): Document v and vCont.

2003-10-10  Kei Sakamoto  <sakamoto.kei@renesas.com>

	* gdb.texinfo: Replace "Hitachi" and "Mitsubishi" with "Renesas".
	* gdbint.texinfo: Ditto.

2003-10-09  Andrew Cagney  <cagney@redhat.com>

	From 2003-09-18 David Anderson <davea@sgi.com>:
	* gdb.texinfo (GDB/MI Symbol Query): Replace "comamnd" with
	"command".

2003-10-03  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Deprecate
	IBM6000_TARGET.  Mention that it implies an RS/6000 system and not
	just target.

2003-10-02  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Rename
	REGISTER_RAW_SIZE to DEPRECATED_REGISTER_RAW_SIZE.
	* gdb.texinfo (Packets, Stop Reply Packets): Ditto.
	* gdbint.texinfo (Target Architecture Definition): Rename

2003-09-30  Andrew Cagney  <cagney@redhat.com>

	REGISTER_VIRTUAL_SIZE to DEPRECATED_REGISTER_VIRTUAL_SIZE.
	(Target Architecture Definition):

	* gdbint.texinfo (Target Architecture Definition): Rename
	REGISTER_VIRTUAL_TYPE to DEPRECATED_REGISTER_VIRTUAL_TYPE.

2003-09-29  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	documentation for NEED_TEXT_START_END.

	* gdbint.texinfo (Target Architecture Definition): Rename
	NPC_REGNUM to DEPRECATED_NPC_REGNUM.  Add cross reference to
	TARGET_WRITE_PC.

2003-09-22  Michael Chastain  <mec@shout.net>

	* gdbint.texinfo (Testsuite Organization): Change gdb.c++ to gdb.cp.

2003-09-21  Anthony Green  <green@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Fix typos.

2003-09-21  Mark Kettenis  <kettenis@gnu.org>

	* gdbint.texinfo (Target Architecture Definition): Document
	stabs_argument_has_addr.

2003-09-18  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	documentation on REGISTER_NAMES.

2003-09-13  Mark Kettenis  <kettenis@gnu.org>

	* gdbint.texinfo (Target Architecture Definition): Replace
	REG_STRUCT_HAS_ADDR with DEPRECATED_REG_STRUCT_HAS_ADDR.

2003-09-11  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Replace
	STACK_ALIGN with DEPRECATED_STACK_ALIGN.

2003-08-18  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Document
	"frame_red_zone_size".

2003-08-09  Andrew Cagney  <cagney@redhat.com>

	* gdb.texinfo (Backtrace): Replace "set/show backtrace-below-main"
	with "set/show backtrace past-main" and "set/show backtrace
	limit".

2003-08-08  H.J. Lu  <hongjiu.lu@intel.com>

	* Makefile.in (install-info): Support DESTDIR.
	(install-html): Likewise.

2003-08-07  Andrew Cagney  <cagney@redhat.com>

	Patch from Nick Roberts.
	* gdb.texinfo (Using GDB under GNU Emacs): Fix/update key
	bindings.  Remove description of send-gdb-command.

2003-08-07  Andrew Cagney  <cagney@redhat.com>

	* gdb.texinfo (Mode Options): Mention that "mi2" was included in
	GDB 6.0.

2003-08-06  Andrew Cagney  <cagney@redhat.com>

	* gdb.texinfo (Mode Options): Mention that level three is the
	highest available and that level 2 is deprecated.
	(Annotations Overview): Mention annotation levels. Cross reference
	to "Limitations of the Annotation Interface" in annotate.texi.
	(TODO, Value Annotations, Frame Annotations): Delete section.
	(Displays, Breakpoint Info): Delete.

2003-08-04  Andrew Cagney  <cagney@redhat.com>

	* agentexpr.texi: Delete @bye.
	* Makefile.in (STABS_DOC_SOURCE_INCLUDES): Add "fdl.texi"
	(stabs.info): Add $(srcdir) to include search path.
	(html): Depend on "annotate_toc.html", and not "annotate.html".
	* stabs.texinfo: Ditto.  Include "fdl.texi".
	* gdbint.texinfo: Update copyright statement's list of invariant
	sections.

2003-07-28  Andrew Cagney  <cagney@redhat.com>

	* Makefile.in (INFO_DEPS): Add annotate.info.
	(dvi, ps, html, pdf): Add annotate.
	(ANNOTATE_DOC_SOURCE_INCLUDES): New macro.
	(ANNOTATE_DOC_BUILD_INCLUDES): New macro.
	(ANNOTATE_DOC_FILES): New macro.
	(ANNOTATE_TEX_TMPS): New macro.
	(annotate.info, annotate_toc.html): Specify dependencies.
	(annotate.ps, annotate.pdf, annotate.dvi): Ditto.
	* annotate.texinfo: Rename annotate.texi.  Get building.  Add
	"Migrating to GDB/MI" and "Limitations of the Annotation
	Interface" chapters.  Mention why it is not part of the user
	guide.  Update copyright notice.  Include "fdl.texi".

2003-07-26  Stephane Carrez  <stcarrez@nerim.fr>

	* gdb.texinfo (TUI Keys): Document C-x o key to switch active window.

2003-07-24  Daniel Jacobowitz  <drow@mvista.com>

	* gdbint.texinfo (libgdb components): Correct a GDB to GDBN.

2003-07-24  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.texinfo (Server): Mention pidof.

2003-07-22  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Coding): Add -Wformat-nonliteral to -Werror
	list.

2003-06-28  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.texinfo (Logging output): New chapter.

2003-06-24  Joel Brobecker  <brobecker@gnat.com>

	* gdb.texinfo (Unsupported languages): New section.
	(Languages): Add link to new section.

2003-06-22  Andrew Cagney  <cagney@redhat.com>

	* gdb.texinfo (Contributors): Mention 6.0 release engineer.

2003-06-22  Daniel Jacobowitz  <drow@mvista.com>

	* gdbint.texinfo (Coding): Clarify use of gdb_XXX.h headers.

2003-06-22  Daniel Jacobowitz  <drow@mvista.com>

	* Makefile.in (SFILES_INCLUDED): Add agentexpr.texi.
	* agentexpr.texi: Retitle section, and change it to an appendix.
	Comment out texinfo initialization.  Factor a @var{} into two
	pieces to prevent makeinfo warnings.
	* gdb.texinfo: Add Agent Expressions appendix.

2003-06-19  Daniel Jacobowitz  <drow@mvista.com>

	* gdbint.texinfo (Native Conditionals): Remove PREPARE_TO_PROCEED.

2003-06-18  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.texinfo (Remote Debugging): New section "Connecting to a
	remote target".  Document the "detach" and "disconnect" commands.
	(Server, Netware, Debug Session): Reference "Connecting to a
	remote target".
	(GDB/MI Target Manipulation): Document "-target-disconnect".

2003-06-13  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Deprecate
	REMOTE_BREAKPOINT, LITTLE_REMOTE_BREAKPOINT, and
	BIG_REMOTE_BREAKPOINT.  Cross reference BREAKPOINT_FROM_PC.

2003-06-09  Jim Blandy  <jimb@redhat.com>

	* gdb.texinfo (Separate Debug Files): Remove extra semicolon.

2003-06-08  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	documentation on FRAME_ARGS_ADDRESS_CORRECT.

2003-06-08  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Document
	"unwind_sp".  Cross reference "unwind_sp" and TARGET_READ_SP.

2003-06-07  Adam Fedor  <fedor@gnu.org>

	* gdb.texinfo: Add Objective-C documentation.

2003-06-01  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Add "func_addr"
	parameter to "push_dummy_call".  Rename "dummy_addr" to "bp_addr".

2003-05-21  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	references to "extract_address" and "store_address".

2003-05-16  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Replace
	REGISTER_BYTES with DEPRECATED_REGISTER_BYTES.  Fix typo,
	DEPRECATED_REGISTER_SIZE instead of REGISTER_BYTE.

2003-05-14  Theodore A. Roth  <troth@openavr.org>

	* gdbint.texinfo (Breakpoint Handling): Correct a double negative.

2003-05-10  H.J. Lu <hongjiu.lu@intel.com>

	* Makefile.in (gdb-cfg.texi): Replace $$LN_S with $(LN_S).
	(gdb.dvi): Likewise.
	(gdb.pdf): Likewise.
	(links2roff): Likewise.

2003-05-08  Jim Blandy  <jimb@redhat.com>

	* gdb.texinfo (Dump/Restore Files): Update documentation for
	'dump', 'append', and 'restore': note that format argument is
	optional; simplify presentation of the command variants; and be
	more precise about the formats.

2003-05-07  Jim Blandy  <jimb@redhat.com>

	* gdb.texinfo (Symbols): Update documentation: 'maint list
	symtabs' and 'maint list psymtabs' have been renamed 'maint info
	symtabs' and 'maint info psymtabs'.

2003-05-05  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Make
	CALL_DUMMY_WORDS, SIZEOF_CALL_DUMMY_WORDS, CALL_DUMMY_LENGTH,
	FIX_CALL_DUMMY, CALL_DUMMY_BREAKPOINT_OFFSET and
	CALL_DUMMY_BREAKPOINT_OFFSET deprecated.

2003-05-04  Andrew Cagney  <cagney@redhat.com>

	* gdb.texinfo (Maintenance Commands): Document "maint print
	dummy-frames".

2003-05-04  Andrew Cagney  <cagney@redhat.com>

	* gdb.texinfo (GDB/MI Symbol Query): Use @{ and @}.

2003-05-03  J. Brobecker  <brobecker@gnat.com>

	Thierry Schneider  <tpschneider1@yahoo.com>
	* gdb.texinfo (section GDB/MI Symbol Query): Add documentation
	for new MI command.

2003-05-03  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Document
	push_dummy_code.  Add cross references.

2003-05-02  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.texinfo (Character Sets): Update to reflect new behavior of
	set/show charsets commands.

2003-04-28  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Replace
	read_fp, TARGET_READ_FP and FP_REGNUM, with deprecated_read_fp,
	DEPRECATED_TARGET_READ_FP and DEPRECATED_REGNUM.

2003-04-28  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Rename
	"tm_print_insn" to "deprecated_tm_print_insn".

2003-04-09  Jim Blandy  <jimb@redhat.com>

	* gdb.texinfo (Symbols): Document 'maint list symtabs' and 'maint
	list psymtabs'.

2003-04-08  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	references to EXTRA_FRAME_INFO.

2003-04-08  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	PRINT_TYPELESS_INTEGER.

2003-04-02  J. Brobecker  <brobecker@gnat.com>

	* observer.texi (GDB Observers): Adjust the documentation for the
	normal_stop notification to better describe reality. Fix a couple
	of minor typos.

2003-04-02  Bob Rossi  <bob_rossi@cox.net>

	* gdb.texinfo (GDB/MI Program Control): Add
	'-file-list-exec-source-file'

2003-03-31  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	references to CALL_DUMMY_P.

2003-03-30  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Remove
	reference to TARGET_WRITE_SP.

2003-03-27  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Remove
	references to write_sp.

2003-03-27  Andrew Cagney  <cagney@redhat.com>

	* gdb.texinfo (GDB/MI Variable Objects): Replace @include with
	chapter body.  Use @smallexample instead of @example.
	(Annotations): Ditto.
	* Makefile.in (GDB_DOC_SOURCE_INCLUDES): Remove gdbmi.texinfo and
	annotate.texi.

2003-03-26  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Replace
	PUSH_ARGUMENTS with push_dummy_call, add gdbarch, regcache and
	dummy_addr parameters.

2003-03-25  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	reference to CALL_DUMMY_STACK_ADJUST_P.  Rename
	CALL_DUMMY_STACK_ADJUST to DEPRECATED_CALL_DUMMY_STACK_ADJUST.
	Add reference to PUSH_ARGUMENTS.

2003-03-23  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Algorithms, Target Architecture Definition):
	Deprecate FRAME_CHAIN and FRAME_CHAIN_VALID.

2003-03-18  J. Brobecker  <brobecker@gnat.com>

	* gdbint.texinfo (Algorithms): Add new section describing the
	Observer paradigm.
	(Top): Add menu entry to new observer appendix.
	* observer.texi: New file.
	* Makefile.in (GDBINT_DOC_SOURCE_INCLUDES): Add dependency on
	new observer.texi file.

2003-03-17  Andrew Cagney  <cagney@redhat.com>

	* gdb.texinfo (DATE): Delete.  Remove date from titles.  Mention
	that GNU Press update the manual version number.

2003-03-12  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	references to get_saved_register.  Rename GET_SAVED_REGISTER to
	DEPRECATED_GET_SAVED_REGISTER.

2003-03-13  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Replace
	POP_FRAME with DEPRECATED_POP_FRAME.  Update description.

2003-03-12  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Rename
	FRAME_SAVED_PC to DEPRECATED_FRAME_SAVED_PC.

2003-03-10  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.texinfo: Add File-I/O documentation.

2003-03-10  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Cross reference
	FRAME_SAVED_PC to unwind_pc.  Document unwind_pc.

2003-03-07  Andrew Cagney  <cagney@redhat.com>

	* gdb.texinfo (Debugging Output): Mention the "set/show debug
	frame" command.

2003-03-05  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Document
	unwind_dummy_id.  Cross reference unwind_dummy_id and
	SAVE_DUMMY_FRAME_TOS.

2003-03-05  James Ingham <jingham@apple.com>
	    Daniel Jacobowitz  <drow@mvista.com>

	* gdb.texinfo (Configuring the current ABI): Document "set cp-abi"
	and "show cp-abi".

2003-03-03  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Document
	register_type.

2003-03-03  Andrew Cagney  <cagney@redhat.com>

	* stabs.texinfo (Structures): Use @samp and separate @var's
	instead of a single @var containing a comma separated list.
	(Unions): Ditto.

2003-03-02  Daniel Jacobowitz  <drow@mvista.com>

	* Makefile.in (distclean): Remove config.log.

2003-03-01  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Rename
	FRAME_INIT_SAVED_REGS to DEPRECATED_FRAME_INIT_SAVED_REGS.

2003-03-01  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo: Rename INIT_EXTRA_FRAME_INFO to
	DEPRECATED_INIT_EXTRA_FRAME_INFO.

2003-02-23  Raoul Gough  <RaoulGough@yahoo.co.uk>

	* gdb.texinfo (Cygwin Native): Links to Non-debug DLL symbols.
	(Non-debug DLL symbols): New node, describing the minimal symbols
	loaded from DLLs without real debugging symbols.

2003-02-20  Andrew Cagney  <ac131313@redhat.com>

	* gdb.texinfo (Set Breaks): Add cross reference to "set remote
	hardware-breakpoint-limit".
	(Set Watchpoints): Add cross reference to "set remote
	hardware-watchpoint-limit".
	(Remote configuration options): New section.

2003-02-04  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	descrption of IS_TRAPPED_INTERNALVAR.

	From Keith Seitz <keiths@redhat.com>:
	* gdb.texinfo (Interpreters): New chapter.  Refer the command-line
	option "-i"/"--interpreter" to this chapter.  Include index
	entries.

2003-02-04  David Carlton  <carlton@math.stanford.edu>

	* gdb.texinfo (C@t{++}): Recommend DWARF 2, then stabs+.
	(Variables): Recommend stabs+ and DWARF 2.
	(C plus plus expressions): Correct info about
	compiler versions, debug formats.
	(Contributors): Change 'DWARF2' to 'DWARF 2'.
	PR symtab/874.

2003-02-01  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	description of ADDITIONAL_OPTIONS, ADDITIONAL_OPTION_CASES,
	ADDITIONAL_OPTION_HANDLER, and ADDITIONAL_OPTION_HELP, and
	BEFORE_MAIN_LOOP_HOOK, and DBX_PARM_SYMBOL_CLASS along with
	references to nindy and i960.
	* gdb.texinfo (i960): Delete all references to i960 and nindy.

2003-02-01  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	FLOAT_INFO.

2003-01-30  Andrew Cagney  <ac131313@redhat.com>

	* stabs.texinfo (Member Type Descriptor): Clarify description of
	`@'.  Suggested by Ben Hutchings.

2003-01-29  Andrew Cagney  <ac131313@redhat.com>

	* gdb.texinfo (M68K): Delete reference to es1800.

2003-01-29  Andrew Cagney  <ac131313@redhat.com>

	* gdb.texinfo (Maintenance Commands): Document `maint print
	reggroups' and `maint print register-groups'.
	* gdbint.texinfo (Target Architecture Definition): Document
	register_reggroup_p.

2003-01-23  Jim Blandy  <jimb@redhat.com>

	* gdb.texinfo (Separate Debug Files): New section.

2003-01-22  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.texinfo (Maintenance Commands): Add "maint set profile"
	and "maint show profile".

2003-01-16  Michael Chastain  <mec@shout.net>

	* gdb.texinfo (Installing GDB): Warn against
	".../gdb-VERSION/gdb/configure".
	(Separate Objdir): Likewise.

2003-01-15  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	definition of PRINT_REGISTER_HOOK.

2003-01-15  Elena Zannoni  <ezannoni@redhat.com>

	(OpenRISC 1000): Fix formatting of command names.

2003-01-15  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.texinfo (Continuing and Stepping): Add new command
	'advance'. Clarify behavior of 'until'.

2003-01-13  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.texinfo (Files): Document solib-absolute-prefix and
	solib-search-path.

2003-01-09  Michael Chastain  <mec@shout.net>

	* gdbint.texinfo (Configuring @value{GDBN} for Release): Delete.
	(Create a Release): Add new instructions for new @file{src-release}.
	Document existing instructions for @file{Makefile.in} as
	being for @value{GDBN} 5.3.1 or earlier.

2003-01-09  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Mention
	frame_saved_regs_zalloc and frame_extra_info_zalloc as the way to
	allocate memory.

2003-01-04  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.texinfo (Controlling GDB): Add @kindex for
	"show osabi".
	(Backtraces): Add @kindex's for backtrace-below-main.

2003-01-04  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.texinfo (Controlling GDB): Document "set osabi".

2003-01-04  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.texinfo (Backtraces): Document "set backtrace-below-main".
	* gdbint.texinfo (FRAME_CHAIN_VALID): Update documentation.

2003-01-04  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.texinfo (Controlling GDB): Add ABI section.  Document
	"set coerce-float-to-double".
	* gdbint.texinfo (COERCE_FLOAT_TO_DOUBLE): Remove documentation.

2003-01-02  Andrew Cagney  <ac131313@redhat.com>

	* stabs.texinfo: Remove obsolete text.
	* gdbint.texinfo: Ditto.
	* gdb.texinfo: Ditto.

2002-12-22  Mark Kettenis  <kettenis@gnu.org>

	* gdbint.texinfo (Target Architecture Definition): Update
	description of gdbarch_register_osabi.

2002-12-20  Kazu Hirata  <kazu@cs.umass.edu>

	* agentexpr.texi: Fix typos.
	* annotate.texi: Likewise.
	* fdl.texi: Likewise.

2002-12-10  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Algorithms): Replace INIT_FRAME_PC with
	DEPRECATED_INIT_FRAME_PC.

2002-12-01  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	PC_IN_CALL_DUMMY.

2002-11-28  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Host Definition): Delete documentation on
	USE_GENERIC_DUMMY_FRAMES.

2002-11-26  Elena Zannoni  <ezannoni@redhat.com>

	Fix PR gdb/723 and PR gdb/245.
	* Makefile.in (install-info): Run the install-info command as part
	of the post install steps only.
	(uninstall-info): New target.
	(uninstall): New target.

2002-11-22  Elena Zannoni  <ezannoni@redhat.com>

	* Makefile.in (install): Make install do some real work.

2002-11-19  Andrew Cagney  <ac131313@redhat.com>

	Fix POSIX problem reported by Paul Eggert.
	* Makefile.in (GDBvn.texi): Use `sed q' instead of `head -1'.
	Fix PR gdb/527.

2002-10-26  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	definition of DO_REGISTERS_INFO.

2002-10-18  Kevin Buettner  <kevinb@redhat.com>

	* gdbint.texinfo (Address Classes): Fix problems with insertion
	of ``{'' and ``}'' in example.

2002-10-17  Kevin Buettner  <kevinb@redhat.com>

	* gdbint.texinfo (Address Classes): New section.
	(Target Conditionals): Document ADDRESS_CLASS_NAME_TO_TYPE_FLAGS,
	ADDRESS_CLASS_NAME_TO_TYPE_FLAGS_P, ADDRESS_CLASS_TYPE_FLAGS,
	ADDRESS_CLASS_TYPE_FLAGS_P, ADDRESS_CLASS_TYPE_FLAGS_TO_NAME, and
	ADDRESS_CLASS_TYPE_FLAGS_TO_NAME_P.

2002-10-11  Klee Dienes  <kdienes@apple.com>

	* gdb.texinfo (Registers): Mention vector registers as well as
	floating registers in the documentation for 'info registers' and
	'info all-registers'.

2002-10-11  Daniel Jacobowitz  <drow@mvista.com>

	* gdbint.texinfo (CPLUS_MARKER): Remove item.

2002-10-03  Jeff Johnston  <jjohnstn@redhat.com>

	* gdbint.texinfo (Item Output Functions): Add new ui_out_field_fmt_int
	interface definition.

2002-10-03  Marko Mlinar   <markom@opencores.org>

	* gdb.texinfo (Target Commands): Add or1k target specific
	commands.
	* gdb.texinfo (Contributors): Add myself to the contributors list.

2002-10-01  Andrew Cagney  <ac131313@redhat.com>

	* gdb.texinfo (Mode Options): Update --interpreter option.  "mi2"
	and "mi1" instead of "mi1" and "mi0".

2002-09-29  Hans-Peter Nilsson  <hp@bitrange.com>

	* gdb.texinfo (Packets): Fix typos "alligned".
	Correct z3/Z3 description.  Correct z4/Z4 title.

2002-09-27  Andrew Cagney  <ac131313@redhat.com>

	* all-cfg.texi: Use @sc for GDB and GCC.  Update copyright.

2002-09-25  Kevin Buettner  <kevinb@redhat.com>

	* gdb.texinfo: Use GNU/Linux instead of Linux.

2002-09-25  Andrew Cagney  <ac131313@redhat.com>

	* gdb.texinfo (Packets): Replace @samp{} with ``an empty string''.

2002-09-24  Andrew Cagney  <ac131313@redhat.com>

	* gdb.texinfo: Replace @example with @smallexample.

2002-09-20  Kevin Buettner  <kevinb@redhat.com>

	From Eli Zaretskii  <eliz@gnu.org>:
	* gdb.texinfo (Character Sets): Use @smallexample instead of
	@example.  Use GNU/Linux instead of Linux.

2002-09-20  Jim Blandy  <jimb@redhat.com>

	* gdb.texinfo: Add character set documentation.

2002-09-19  Andrew Cagney  <ac131313@redhat.com>

	* gdb.texinfo (Packets): Revise `z' and `Z' packet documentation.
	(Packets): Add cross reference from `b' packet to `z' packets.

2002-09-19  Andrew Cagney  <ac131313@redhat.com>

	* gdb.texinfo (Maintenance Commands): Document ``maint
	internal-error'' and ``maint internal-warning''.

	* gdbint.texinfo (Target Architecture Definition): Revise
	description of STACK_ALIGN.  Add description of FRAME_ALIGN.

2002-09-19  Joel Brobecker  <brobecker@gnat.com>

	* gdbint.texinfo (Target Conditionals): Document the new
	NAME_OF_MALLOC macro.

2002-09-05  Andrew Cagney  <ac131313@redhat.com>

	* gdb.texinfo (Contributors): Mention 5.2 and 5.3 release
	engineer.

2002-09-02  Stephane Carrez  <stcarrez@nerim.fr>

	* gdb.texinfo (TUI Overview): Document status line fields.

2002-09-02  Stephane Carrez  <stcarrez@nerim.fr>

	* gdb.texinfo (TUI Commands): Document info win command.

2002-09-01  Stephane Carrez  <stcarrez@nerim.fr>

	* gdb.texinfo (TUI Overview): Document breakpoint markers.

2002-09-01  Stephane Carrez  <stcarrez@nerim.fr>

	* gdb.texinfo (TUI Single Key Mode): Document new SingleKey mode.
	(TUI Keys): Likewise.

2002-08-25  Andrew Cagney  <ac131313@redhat.com>

	* gdb.texinfo (Examples): Use ``->'' for a packet send and ``<-''
	for a packet receive.

2002-08-25  Andrew Cagney  <ac131313@redhat.com>

	* Makefile.in (clean): Move to end of file.
	(distclean, maintainer-clean, realclean): Ditto.
	(mostlyclean): Move rule to end of file.  Use GDB_TEX_TMPS,
	GDBINT_TEX_TMPS, STABS_TEX_TMPS.
	(gdb.dvi, gdb.pdf): Do not cleanup TeX temp files after texi2dvi.
	(gdbint.dvi, gdbint.pdf, stabs.dvi, stabs.pdf): Ditto.

2002-08-24  Andrew Cagney  <ac131313@redhat.com>

	* Makefile.in (GDBINT_TEX_TMPS): Define.
	(gdbint.dvi, gdbint.pdf): Use
	(GDB_TEX_TMPS): Define.
	(gdb.dvi, gdb.pdf): Use.
	(STABS_TEX_TMPS): Define.
	(stabs.dvi, stabs.pdf): Use.
	(GDB_DOC_SOURCE_INCLUDES): New macros.
	(GDB_DOC_BUILD_INCLUDES, GDB_DOC_FILES): New macros.
	(GDBINT_DOC_FILES_INCLUDES): New macros.
	(GDBINT_DOC_BUILD_INCLUDES): New macros.
	(GDBINT_DOC_FILES, STABS_DOC_SOURCE_INCLUDES): New macros.
	(STABS_DOC_BUILD_INCLUDES, STABS_DOC_FILES): New macros.
	(SFILES_DOC, SFILES_INCLUDED, SFILES_LOCAL): Delete macros.
	(links2roff): Replace SFILES_INCLUDED with
	GDB_DOC_SOURCE_INCLUDES.
	(gdb.dvi, gdb_toc.html, gdb.pdf, gdb.info): Update dependencies.
	(gdb.me, gdb.mm, gdb.ms): Update dependencies.
	(gdbint.dvi, gdbint_toc.html, gdbint.pdf, gdbint.info): Update
	dependencies.
	(stabs.info, stabs_toc.html, stabs.pdf, stabs.dvi): Update
	dependencies.
	(gdbmi.texinfo): Delete rule.
	(inc-hist.texinfo): Delete rule.
	(rluser.texinfo): Delete rule.

2002-08-23  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Update
	STORE_RETURN_VALUE, mention regcache.

2002-08-21  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Document
	print_registers_info.  Note that DO_REGISTERS_INFO is deprecated.

2002-08-19  Andrew Cagney  <ac131313@redhat.com>

	* gdb.texinfo (Remote Protocol): Reformat.  Use cross references.
	Fix minor typos.  Add index entries.

2002-08-18  Andrew Cagney  <ac131313@redhat.com>

	* gdb.texinfo (Data): Add ``Vector Unit'' to menu.

2002-08-15  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Document
	PRINT_VECTOR_INFO.
	* gdb.texinfo (Vector Unit): Document "info vectors" command.

2002-08-13  Andrew Cagney  <ac131313@redhat.com>

	* gdb.texinfo (Maintenance Commands): Document "maint print
	registers", "maint print raw-registers" and "maint print
	cooked-registers".

2002-08-08  Grace Sainsbury  <graces@redhat.com>

	From Mark Salter:
	* gdb.texinfo (Protocol): Document T packet extension to
	allow watchpoint address reporting.

2002-08-03  Andrew Cagney  <ac131313@redhat.com>

	* gdb.texinfo (Dump/Restore Files): Move `[]' to outside of @var.

2002-08-01  Andrew Cagney  <cagney@redhat.com>

	* stabs.texinfo, gdb.texinfo, gdbint.texinfo: Obsolete references
	to CHILL.

2002-08-01  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Coding): Revise section "Include Files".

2002-07-24  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo: Obsolete references to m88k.
	* gdb.texinfo: Ditto.

2002-07-10  Joel Brobecker  <brobecker@gnat.com>

	* gdbint.texinfo (Create a release candiate): Add the location
	where the proper version of autoconf can be retrieved.

2002-07-09  Don Howard  <dhoward@redhat.com>

	* gdb.texinfo (Command Files): Further describe the behavior of
	sourced command files.

2002-06-27  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (User Interface): ISO C rather than ISO-C.
	(Coding): Clarify ISO C version that GDB assumes.

2002-06-26  Tom Tromey  <tromey@redhat.com>

	* gdbint.texinfo (User Interface): Mention add_setshow_cmd and
	add_setshow_cmd_full.

2002-06-25  Don Howard  <dhoward@redhat.com>

	* gdb.texinfo (Memory Region Attributes): Document new behavior
	for 'mem' command.

2002-06-11  Jim Blandy  <jimb@redhat.com>

	* gdb.texinfo (Symbols): Update documentation for `info source'
	command.

	* gdb.texinfo (Macros): Call the command `info macro', not
	`show macro'.

2002-06-09  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Coding): Add section ``Per-architecture module
	data''.

2002-06-09  Mark Kettenis  <kettenis@gnu.org>

	* gdbint.texinfo (Target Architecture Definition): Document
	GDB_OSABI_GO32 and GDB_OSABI_NETWARE.

2002-06-08  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Releasing GDB): Fix typos in @itemize @bullet
	lists.

2002-06-08  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Releasing GDB): Revise the section ``Cut the
	Branch''.

2002-06-01  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Add section
	``Converting an existing Target Architecture to Multi-arch''.

2002-05-30  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Releasing GDB): Rename ``Obsoleting any code''
	to ``Obsoleting code''.  Revise.

2002-05-17  Jim Blandy  <jimb@redhat.com>

	* gdb.texinfo (C Preprocessor Macros): New chapter.
	Include it in the main menu.
	(Contributors): Credit Jim Blandy with macro support.
	(Compilation): Explain how to get macro information into the
	executable.
	(Expressions): Note that preprocessor macros are expanded.

2002-05-14  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.texinfo (Debug Session): Document new `udp:' and `tcp:'
	options for `target remote'.

2002-05-13  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	documentation on NNPC_REGNUM.

2002-05-11  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Document
	REGISTER_TO_VALUE and VALUE_TO_REGISTER and CONVERT_REGISTER_P.
	(Target Architecture Definition): Revise section `Using Different
	Register and Memory Data Representations'.  Add section `Raw and
	Virtual Register Representations'.

2002-05-11  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Mention
	defaults for REGISTER_VIRTUAL_SIZE and REGISTER_RAW_SIZE.
	(Target Architecture Definition): Mention same.  Add references to
	web pages.

2002-05-08  Michael Snyder  <msnyder@redhat.com>

	* stabs.texinfo (Attributes): Document new "vector" attribute.

2002-05-04  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Releasing GDB): Revise `Create a Release'.

2002-05-04  Andrew Cagney  <ac131313@redhat.com>

	* gdb.texinfo: Delete obsolete references to a29k.

2002-04-24  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Replace
	IN_SIGTRAMP with PC_IN_SIGTRAMP.

2002-04-24  David S. Miller  <davem@redhat.com>

	* gdbint.texinfo (REGISTER_IN_WINDOW): Delete definition.

2002-04-21  David S. Miller  <davem@redhat.com>

	* gdbint.texinfo (SKIP_PROLOGUE_FRAMELESS_P): Delete definition.

2002-04-21  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	definition of HAVE_REGISTER_WINDOWS.

2002-04-19  Eli Zaretskii  <eliz@gnu.org>

	* gdbint.texinfo (Releasing GDB, Coding): Fix typos.  Reported by
	"Theodore A. Roth" <troth@verinet.com>.

2002-04-15  Don Howard  <dhoward@redhat.com>

	From Eli Zaretskii <eliz@gnu.org>
	* gdb.texinfo (show max-user-call-depth): Correct formatting.
	Provide a better explaination of this feature.

2002-04-14  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Remove
	FRAME_CHAIN_COMBINE.

2002-04-12  Michael Chastain  <mec@shout.net>

	* gdbint.texinfo (Obsolete Conditionals): Remove reference to
	REG_STACK_SEGMENT.

2002-04-09  Michael Chastain  <mec@shout.net>

	* gdbint.texinfo (Obsolete Conditionals): Remove references to
	PYRAMID_* macros.

2002-04-07  Andrew Cagney  <ac131313@redhat.com>

	* gdb.texinfo (Bug Reporting): Document that the web is the
	prefered way of submitting bug reports.
	(Bug Reporting): Delete the s-mail address as the last resort.

2002-04-05  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	references to TARGET_WRITE_FP and write_fp.

2002-03-27  Michael Snyder  <msnyder@redhat.com>

	* gdb.texinfo: Document new commands dump, append, and restore.

2002-03-27  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Releasing GDB): Revise the section `Before the
	Branch'.

2002-03-18  Andrew Cagney  <ac131313@redhat.com>

	* gdb.texinfo: Change all examples to @smallexample.
	* gdbint.texinfo: Ditto.

2002-03-18  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Releasing GDB): Add section ``Versions and
	Branches''.

2002-03-18  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Releasing GDB): Add the section``Branch Commit
	Policy''.

2002-03-04  Fred Fish  <fnf@redhat.com>

	* gdbint.texinfo: Fix a bunch of typos (alsways, mirrorred,
	expresson, suports, dependant, trhe, perhaphs, situtations,
	explictily, taged, oportunity, unfortunatly).

2002-02-24  Andrew Cagney  <ac131313@redhat.com>

	* Makefile.in (gdb.info): Add explicit path to gdb.texinfo.
	Remove reference to 3.12.

2002-02-23  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo: Include fdl.texi.
	(Top): Add GNU Free Documentation License.
	* Makefile.in (SFILES_INCLUDED): Add gpl.texi.
	(gdbint.dvi, gdbint.pdf, gdbint.info): Add dependency on fdl.texi.
	(gdbint_toc.html): Add dependency on gdb-cfg.texi and fdl.texi.
	(gdbint.info): Add srcdir to include path.
	* gdb.texinfo: Include gpl.texi.
	(Top): Add Copying.
	* gpl.texi: New file.

2002-02-23  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Debugging GDB): Remove references to cygnus.com.

2002-02-19  Pierre Muller  <muller@ics.u-strasbg.fr>

	* gdb.texinfo: Document Cygwin native specific commands.

2002-02-15  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.texinfo: Document gdbserver ``--attach'' command.

2002-02-07  Michael Snyder  <msnyder@redhat.com>

	* gdb.texinfo (overlays): Change @var(_ovly_debug_event)
	to @code(_ovly_debug_event).

2002-02-07  Andrew Cagney  <ac131313@redhat.com>

	* gdb.texinfo (How Overlays Work): Shrink the overlay diagram.

2002-02-06  Michael Snyder  <msnyder@redhat.com>

	* gdb.texinfo (overlays): Mention new magic symbol
	'_ovly_debug_event', which allows GDB to keep better track
	of overlays.

2002-02-03  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Memory Region Attributes): Fix the wording.
	Suggested by Dmitry Sivachenko.

	* (<many nodes>): Fix the spelling and punctuation of "i.e.".

2002-02-01  Michael Snyder  <msnyder@redhat.com>

	* gdb.texinfo (set trust-readonly): Change value{gdbn} to value{GDBN}.

2002-01-30  Michael Snyder  <msnyder@redhat.com>

	* gdb.texinfo: (remote protocol): Gramatical fix-up.
	(set trust-readonly-sections): Document.

2002-01-29  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Releasing GDB): Revise and update.

2002-01-28  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	description of TARGET_BYTE_ORDER_DEFAULT.

2002-01-27  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo: Fix typos and markup.  From Dmitry Sivachenko
	<mitya@cavia.pp.ru>.

2002-01-23  Andrew Cagney  <ac131313@redhat.com>

	* libgdb.texinfo: Delete file.

2002-01-22  Andrew Cagney  <ac131313@redhat.com>

	* gdb.texinfo: Remove makeinfo 3.12 hacks.
	* gdbint.texinfo: Ditto.

Tue Jan 22 11:57:38 2002  Andrew Cagney  <cagney@redhat.com>

	* gdb.texinfo: Fix typo ``Remove' -> ``Remote''.

2002-01-22  Andrew Cagney  <ac131313@redhat.com>

	* Makefile.in: Update copyright.
	(TEXI2DVI): Define.
	(gdb.dvi, gdb.pdf, stabs.dvi, stabs.pdf): Use TEXI2DVI.
	(gdbint.dvi, gdbint.pdf): Use TEXI2DVI.  Add dependency on
	gdb-cfg.texi.
	(TEXINDEX, PDFTEX): Delete makefile variables.

2002-01-22  Andrew Cagney  <ac131313@redhat.com>

	* gdb.texinfo (Protocol): Move section to appendix.

2002-01-21  Andrew Cagney  <ac131313@redhat.com>

	* gdb.texinfo (Remote Debugging): Create a menu.
	(Top): Add ``Remote Debugging'' to menu.

2002-01-21  Andrew Cagney  <ac131313@redhat.com>

	* gdb.texinfo (Remote): Move the sub-section ``The GDB remote
	serial protocol'' from here.
	(Remote Debugging): To here.  New chapter.

2002-01-20  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	description of TARGET_BYTE_ORDER_SELECTABLE_P.

2002-01-20  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Host Definition): Revise.  xm-xyz.h and xyz.mh
	are no longer needed.
	(Porting GDB): Add maintainer note about configure.host.

2002-01-20  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Remove
	definition of IEEE_FLOAT.

2002-01-20  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo: Beautify copyright years; fix a typo.
	(DJGPP Native): Fix overfull hboxes in examples.  From Brian Youmans
	<3diff@gnu.org>

2002-01-19  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Host Definition): Remove references to
	MALLOC_INCOMPATIBLE.

2002-01-17  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Host Definition): Remove references to XDEPFILES
	and xyz-xdep.o.

2002-01-17  Andrew Cagney  <ac131313@redhat.com>

	* gdb.texinfo 	(Maintenance Commands): Add appendix.
	(Set Breaks): Copy ``maint info breakpoint'' doco to
	``Maintenance Commands'' appendix.  Add reference.

2002-01-17  Andrew Cagney  <ac131313@redhat.com>

	* fdl.texi: Remove next/prev from @node.

2002-01-17  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo: @include fdl.texi.  Fixes for overfull hboxes and
	for monstrous @multitable (from Brian Youmans).

	* fdl.texi: New file.

	* Makefile.in (SFILES_INCLUDED): Add fdl.texi.

2002-01-15  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Releasing GDB): New chapter.

2002-01-14  Andrew Cagney  <ac131313@redhat.com>

	* gdb.texinfo (Embedded Processors, Calling program functions):
	Obsolete references to a29k.

2002-01-13  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Coding): Review Cleanups section.  Examples
	examples.  Document that a code-block should do or discard its
	cleanups before exit.

2002-01-11  Michael Snyder  <msnyder@redhat.com>

	* gdb.texinfo (Choosing files): Change @samp to @file.

2002-01-05  Michael Snyder  <msnyder@redhat.com>

	* gdb.texinfo (--pid): Document new command line option (attach).

2002-01-07  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Tracepoints): Clarify that tracepoints need support
	in the stub.

2002-01-04  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Replace
	BIG_ENDIAN with BFD_ENDIAN_BIG.

2002-01-03  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Replace
	value_ptr with struct value pointer.

2002-01-02  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Free Software): Fix wording.

2001-12-31  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Free Software): New section ``Free Software Needs
	Free Documentation''.

2001-12-30  Eli Zaretskii  <eliz@gnu.org>

	* stabs.texinfo:
	* gdb.texinfo:
	* gdbint.texinfo:
	* libgdb.texinfo:
	* annotate.texi: Fix the application of GFDL in the Copyright notice.

2001-12-29  Michael Snyder  <msnyder@redhat.com>

	* gdb.texinfo (maint info sections): Fix typo.

2001-12-26  Michael Snyder  <msnyder@redhat.com>

	* gdb.texinfo (maint info sections): Document.

	* gdb.texinfo (info proc): Comment out documentation for
	'info proc' sub-options that are currently not implemented.

2001-12-20  Jim Blandy  <jimb@redhat.com>

	* gdbint.texinfo (TARGET_CHAR_SIGNED): Document.

2001-12-15  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Replace
	LITTLE_ENDIAN with BFD_ENDIAN_LITTLE.

2001-12-01  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Host Definition): Delete documentation on
	HOST_BYTE_ORDER.

2001-11-30  Jim Blandy  <jimb@redhat.com>

	* gdb.texinfo (Overlays): New chapter, documenting GDB's
	overlay support.  Add to top-level menu.

2001-11-26  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Command Syntax): Document C-o binding.

2001-07-26  Christopher Faylor  <cgf@redhat.com>

	* gdb.texinfo (Options): Eliminate attempt to explain .gdbinit/gdb.ini
	use since it is described in the referenced section.

	From Eli Zaretskii <eliz@gnu.org>
	* gdb.texinfo (Command Files): Reword to make gdb.ini requirement
	clearer when using DJGPP.

2001-11-24  Christopher Faylor  <cgf@redhat.com>

	* gdb.texinfo (File Options): Change description of -nx and gdb.ini to
	specifically refer to MS-DOS.
	(command files): Mention gdb.ini is only used on MS-DOS.

2001-11-21  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Invoking GDB): Document --args.
	(Mode Options): Likewise.

2001-11-21  Jim Blandy  <jimb@redhat.com>

	* gdbint.texinfo (TARGET_RANGE_PROFITABLE_FOR_HW_WATCHPOINT):
 	Delete documentation; this macro has been removed from the
 	sources.

2001-11-13  Jim Blandy  <jimb@redhat.com>

	* gdbint.texinfo (COERCE_FLOAT_TO_DOUBLE): Clarify.

2001-11-06  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.texinfo (gdbarch_in_function_epilogue_p): Add documentation.

2001-11-05  Michael Snyder  <msnyder@redhat.com>

	* gdb.texinfo (info functions): Document use of backslash to
	quote regexp chars in function names such as "operator*()".

2001-11-01  Fred Fish  <fnf@redhat.com>

	* gdbint.texinfo (SOLIB_ADD): Document additional new
	"readsyms" arg.

2001-10-30  Don Howard  <dhoward@redhat.com>

	* gdb.texinfo: (Command Files) Added documentation for the
	behavior of gdb with input redirected from a file.

2001-10-28  Fred Fish  <fnf@redhat.com>

	* gdb.texinfo (auto-solib-add): Change docs to match
	implementation change.
	(auto-solib-limit): Add docs for new variable.

2001-10-15  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Function
	value_as_pointer renamed to value_as_address.

2001-10-15  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Default
	POINTER_TO_ADDRESS functions assume unsigned addresses.
	(INTEGER_TO_ADDRESS): Document.  Derive pragmatics section from a
	posting by Jim Blandy.

2001-10-12  Jim Blandy  <jimb@redhat.com>

	* Makefile.in (MAKEHTMLFLAGS): Remove -glossary; the most recent
	version of texi2html (1.64) doesn't support this flag any more.

2001-09-08  Mark Kettenis  <kettenis@gnu.org>

	* gdbint.texinfo (Host Definition): Remove description of
	MEM_FNS_DECLARED.

	* gdbint.texinfo (Host Definition): Remove description of R_OK.

	* gdbint.texinfo (Host Definition): Remove description of
	HAVE_SIGSETMASK.

2001-09-04  Elena Zannoni  <ezannoni@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Add
	explanation of TARGET_PRINT_INSN macro.

2001-08-30  Jim Blandy  <jimb@redhat.com>

	* gdb.texinfo (`add-symbol-file'): Correct synopsis.
	Explain what it means to load relocatable files.

2001-08-28  Jim Blandy  <jimb@redhat.com>

	* gdbint.texinfo: Bring the HTML `top' menu into sync with the
	info `top' menu.

Wed Aug 15 10:47:28 2001  Christopher Faylor <cgf@cygnus.com>

	* gdbint.texinfo: Add a cautionary note about macro use.

2001-08-02  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.texinfo: Explain omitting the hostname in the
	`target remote' command.

2001-07-30  Daniel Jacobowitz  <drow@mvista.com>

	* gdbint.texinfo: Remove extraneous START-INFO-DIR-ENTRY
	and END-INFO-DIR-ENTRY.

2001-07-28  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* gdb.texinfo (TUI Configuration): Rename tui configuration variables.

2001-07-25  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (libgdb): Rewrite.

2001-07-26  Eli Zaretskii  <eliz@gnu.org>

	* Makefile.in (gdbgui.dvi, gdb-gui, gdbgui.info): Targets deleted.

2001-07-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* gdb.texinfo (TUI): New chapter, document the TUI.
	(Mode Options): Document the -tui option.

2001-07-23  Mark Kettenis  <kettenis@gnu.org>

	* gdbint.texinfo (Host Definition): Remove description of
	NEED_POSIX_SETPGID.

2001-07-23  Eli Zaretskii  <eliz@gnu.org>

	* gdb.tex (DJGPP Native): New node, with descriptions of
	DJGPP-specific commands.

2001-07-19  John R. Moore  <jmoore@redhat.com>

	* gdbint.texinfo: Three misspellings.

2001-07-06  Andrew Cagney  <ac131313@redhat.com>

	* Makefile.in (refcard.dvi): Rewrite to avoid problems with empty
	`test` expressions on bash.  Problem reported by Colin Walters.

2001-07-04  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (User Interface): Update ui-out documentation to
	refelect recent UI/MI updates.

2001-07-04  Andrew Cagney  <ac131313@redhat.com>

	* gdb.texinfo (Mode Options): Mention the mi0 and mi1
	interpreters.

2001-06-15  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): GDBARCH is a C
	structure and not macros.
	(Host Definition): Document that much of this chapter is obsolete.
	(Target Architecture Definition): Update list of files that make
	up a target architecture.
	(Coding): Update.

2001-06-28  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Update
	EXTRACT_STRUCT_VALUE_ADDRESS and EXTRACT_STRUCT_VALUE_ADDRESS_P.
	The latter has been changed to a true predicate.

2001-06-17  Eli Zaretskii  <eliz@gnu.org>

	* annotate.texi: Add @noindent where needed.  From Dmitry
	Sivachenko <dima@Chg.RU>.
	* gdb.texinfo: Indexing fix.  From Dmitry Sivachenko.

2001-06-16  Andrew Cagney  <ac131313@redhat.com>

	* gdb.texinfo (Protocol): Fix typo.  Extra parenthesis.

2001-06-14  Andrew Cagney  <ac131313@redhat.com>

	* gdb.texinfo (Remote Protocol): Document that the ``!'' packet
	returns ``OK''.  Document that the ``R'' packet does not reply.

2001-06-13  Michael Snyder  <msnyder@redhat.com>

	* gdb.texinfo (Protocol): Add doc for new packet "qSymbol:".

2001-06-13  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Signals): Clarify the default setting of signal
	handling.

2001-05-14  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (CLEAR_DEFERRED_STORES): Delete stray @item
	(FRAME_ARGS_ADDRESS_CORRECT): Ditto.

2001-05-12  Andrew Cagney  <ac131313@redhat.com>

	* Makefile.in (GDBvn.texi): Set GDBVN from ../version.in.

2001-05-10  Eli Zaretskii  <eliz@gnu.org>

	* gdbint.texinfo (Clean Design and Portable Implementation):
	Renamed from "Clean Design".
	(Clean Design and Portable Implementation): Document portable
	methods of handling file names, and the associated macros.

2001-04-02  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Tracepoint Actions): Mention the "info scope"
	command and provide a cross-reference to its description.
	(Symbols): Note that "info scope" is useful for trace experiments.

2001-04-01  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Symbols): Document "info scope".
	(Tracepoints): New chapter.
	(Contributors): Update for v5.1.
	<All nodes>: Change "C++" to "C@t{++}".

	* gdbint.texinfo (User Interface): A new section about ui_out
	functions, based on text written by Fernando Nasser.

	* stabs.texinfo: Change Permissions to GFDL.  Update Copyright.

2001-03-26  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo: Change Permissions to GFDL.  Update Copyright.

	* gdbint.texinfo: Change Permissions to GFDL.  Update Copyright.

	* gdbgui.texinfo: Change Permissions to GFDL.  Update Copyright.
	Replace "GDB" with "@value{GDBN}".  Fix markup.

	* annotate.texi: Change Permissions to GFDL.  Update Copyright.

	* gdb.texinfo (Output Formats): Mention "info symbol" and provide
	a cross-reference to its description.
	(Symbols): Document "info symbol".

2001-03-21  Eli Zaretskii  <eliz@gnu.org>

	* gdbint.texinfo (Algorithms): New section "Watchpoints" and new
	subsection "x86 Watchpoints".
	(Target Architecture Definition): Document the macros
	I386_USE_GENERIC_WATCHPOINTS and TARGET_HAS_HARDWARE_WATCHPOINTS.
	(Native Debugging): Document I386_USE_GENERIC_WATCHPOINTS.

2001-03-20  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Update
	definition of SOFTWARE_SINGLE_STEP_P to include empty parameter
	list.

2001-03-06  Kevin Buettner  <kevinb@redhat.com>

	* Makefile.in, all-cfg.texi, annotate.texi, gdb.texinfo,
	gdbint.texinfo, refcard.tex: Update/correct copyright notices.

2001-02-21  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Signals): Document "ignore", "noignore", and "all".

2001-02-11  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Environment): Document that `path' does not change
	the value of PATH in GDB's own environment (it did in the past,
	but that was changed on March 15, 1994).  Reported by Doug Evans
	<dje@transmeta.com>.

	* gdbint.texinfo: Fix up @itemize lists so that @item is alone on
	its line.  Fix markup of commands and macros.  Add an Index node
	and index entries.

2001-01-23  J.T. Conklin  <jtc@redback.com>

	* gdb.texinfo (Memory region attributes): New manual section.

2001-01-04  Nicholas Duffek  <nsd@redhat.com>

	* gdbint.texinfo (POP_FRAME): Document use by return_command.

2000-12-25  Eli Zaretskii  <eliz@gnu.org>

	* refcard.tex: Version and copyright fixed.  From Phil Edwards
	<pedwards@disaster.jaj.com>.

Thu Nov 30 16:57:19 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdbint.texinfo (ECOFF_REG_TO_REGNUM, DWARF_REG_TO_REGNUM,
 	DWARF2_REG_TO_REGNUM): Document.

Mon Nov 20 21:29:35 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdbint.texinfo (Coding): Update current value of
 	--enable-build-warnings.  Mention --enable-gdb-build-warnings.

2000-11-19  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Continuing and Stepping):  Fixed markup and typos,
	as suggested by Dmitry Sivachenko <dima@Chg.RU>.

2000-11-10  Christopher Faylor <cgf@cygnus.com>

	* gdb.texinfo: Document new 'set step-mode' command.

2000-10-16  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Contributors, MIPS Embedded): Minor spelling
	changes from Dmitry Sivachenko <dima@Chg.RU>.

2000-09-26  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Hooks): Document the new post-hook functionality.
	From Steven Johnson <sbjohnson@ozemail.com.au>.

2000-08-10  Mark Kettenis  <kettenis@gnu.org>

	* gdbint.texinfo (Overall Structure): Spelling fix.

2000-08-10  Eli Zaretskii  <eliz@gnu.org>

	* gdbint.texinfo (Target Architecture Definition): Document that
	REGISTER_CONVERT_TO_VIRTUAL should only be called on a register
	for which REGISTER_CONVERTIBLE returns a zero value.

2000-07-08  Christopher Faylor <cgf@cygnus.com>

	* Makefile.in (install-info): Find files to install in either the
	build or source directories (adapted from Makefile.am).

2000-07-07  Nicholas Duffek  <nsd@redhat.com>

	* stabs.texinfo: Fix spelling errors.
	(String Field): FILE-NUMBER starts from 0, not 1.

2000-07-05  Eli Zaretskii <eliz@gnu.org>

	* refcard.tex: Remove \centerline from the blurb.  Patch from
	Brian Youmans.

2000-06-25  Eli Zaretskii <eliz@gnu.org>

	* Makefile.in (install-info): Support installation from outside of
	the source directory.  Reported by Mark Harig
	<markh@frazier.landmark.com>.

2000-06-20  J.T. Conklin  <jtc@redback.com>

	* gdb.texinfo: Fix typo, $bpnum is set to last breakpoint number.

Fri May 26 15:55:33 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* Makefile.in (pdf, gdbint.pdf, gdb.pdf, stabs.pdf): New targets.
  	Generate using pdftex.
	(PDFTEX): Define.
 	(STAGESTUFF, maintainer-clean realclean): Add *.pdf.
	(gdb.texinfo, gdbint.texinfo, stabs.texinfo): When TeX insert the
 	@contents at the start.

2000-05-24  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo: Remove duplicate @syncodeindex.  From Brian
	Youmans.

Wed May 24 21:27:58 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	From Brian Youmans:
	* gdb.texinfo: Fix ``et al.''.

Tue May 23 22:57:41 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* Makefile.in (refcard.dvi): Remove quotes around REFEDITS in for
 	loop.

2000-05-19  Jimmy Guo  <guo@cup.hp.com>

	* configure: Regenerate.

2000-05-17  Eli Zaretskii  <eliz@gnu.org>

	* Makefile.in (install-info): Run install-info on installed Info
	files.

Fri May 12 20:18:04 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.texinfo: Add Stan Shebs, et.al. as authors.  Mention
 	Andrew Cagney.

2000-05-09  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo: Proofreading changes from Brian Youmans.

2000-05-01  Nick Duffek  <nsd@cygnus.com>

	* gdb.texinfo (Command Files): Mention -x, use @enumerate for
	startup sequence, minor edits.

2000-05-01  Eli Zaretskii  <eliz@gnu.org>

	* annotate.texi: Remove "@syncodeindex fn cp", it causes grief in
	TeX.

	* gdb.texinfo: Add "@syncodeindex fn cp".  Convert all entries
	"@kindex f" into "@kindex f (foo)", otherwise we get index entries
	like `n' and `s' which look weird.  Convert some of the @kindex to
	@vindex, when they refer to variables, not commands.

Sat Apr 29 17:01:04 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdbint.texinfo (Hints): Do not use @value{GDBN in @nodes.

2000-04-23  Eli Zaretskii  <eliz@gnu.org>

	* Makefile.in (GDBMI_DIR): New variable.
	(SET_TEXINPUTS): Add $(GDBMI_DIR).
	(SFILES_DOC): Add $(GDBMI_DIR)/gdbmi.texinfo.
	(gdbmi.texinfo): New target, for texi2roff.
	(gdb.me, gdb.ms, gdb.mm): Depend on gdbmi.texinfo.
	(gdb.info, gdb_toc.html): Add "-I ${GDBMI_DIR}".

	* gdb.texinfo (Top): Add GDB/MI to the main menu and @include
	gdbmi.texinfo.
	(Mode Options): Add xref to GDB/MI docs and remove a FIXME
	comment.

2000-04-17  Elena Zannoni  <ezannoni@kwikemart.cygnus.com>

	* gdb.texinfo (Files): Update description of add-symbol-file
 	command.

2000-04-17  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Porting GDB): Don't use @value in the node name, it
	prevents the build (and is generally a Bad Idea).

2000-04-17  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Protocol): Prevent makeinfo from complaining about
	a comma inside @var.
	(Command Files): Index markup changes from Dmitry Sivachenko
	<dima@Chg.RU>.

2000-04-16  Eli Zaretskii  <eliz@gnu.org>

	* Makefile.in (LN_S): Define.
	(gdb-cfg.texi, gdb.dvi, links2roff, inc-hist.texinfo): Don't
	invoke "ln -s" unless it is known to work.

	* configure.in (AC_PROG_LN_S): Add.

2000-04-14  Jim Blandy  <jimb@redhat.com>

	* gdbint.texinfo (Pointers Are Not Always Addresses): New manual
	section.
	(Target Conditionals): Document ADDRESS_TO_POINTER,
	POINTER_TO_ADDRESS.

2000-04-11  Daniel Berlin  <dan@cgsoftware.com>

	* gdbint.texinfo: Replaced GDB with @value{GDBN}, @include
	gdb-cfg.texi to get the value.

2000-04-10  Jim Blandy  <jimb@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Fix
	cross-references.

2000-04-08  Jim Blandy  <jimb@redhat.com>

	* gdbint.texinfo (Using Different Register and Memory Data
	Representations): New section.
	(REGISTER_CONVERTIBLE, REGISTER_RAW_SIZE, REGISTER_VIRTUAL_SIZE,
 	REGISTER_VIRTUAL_TYPE, REGISTER_CONVERT_TO_VIRTUAL,
 	REGISTER_CONVERT_TO_RAW): Document.

Mon Apr  3 19:16:32 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.texinfo (Protocol): Deprecate the sequence-id.  Add cindex
 	for acknowledgments.

Tue Mar 28 18:28:45 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.texinfo (Protocol): Replace ``qfThreadExtraInfo'' with
 	qThreadExtraInfo.

2000-03-28  J.T. Conklin  <jtc@redback.com>

	* gdb.texinfo: Clarify which remote debug protocol commands are
	required and which are optional.

Tue Mar 28 16:06:22 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.texinfo: Revert remainder of Fri Mar 24 18:06:34 2000 Andrew
 	Cagney <cagney@b1.cygnus.com>.  Move @chapter and @node entries
 	back to annotate.texi, rluser.texinfo and inc-hist.texinfo.
	* annotate.texi: Update.

2000-03-28  Stan Shebs  <shebs@apple.com>

	* gdb.texinfo: Update dates, bump to Eighth Edition (note
	expectation of additional changes before release), update
	ISBN, add copy of top-level menu for @ifhtml, remove explicit
	node links, rephrase and/or shorten lines to fix formatting
	problem in both regular and @smallbook formats.
	* annotate.texi: Shorten lines in example, use smallexample
	consistently everywhere.
	* Makefile.in: Add comment about texinfo 4.0 html generation.
	(SFILES_INCLUDED): Add annotate.texi.

2000-03-27  Daniel Berlin  <dan@cgsoftware.com>

	* gdb.texinfo (Debugging Output): Added new section, documenting
	the "set/show debug" commands.

Fri Mar 24 18:06:34 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* annotate.texi (Annotations): When GDBN omit @chapter and @node
 	entry.

	* gdb.texinfo: Check for @ifinfo instead of @ifnottex.
	(rluser.texinfo, inc-hist.texinfo, annotate.texi): Add local
 	@chapter and @node entries.

	* gdb.texinfo: Link all top-level nodes.

Fri Mar 24 17:56:48 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* Makefile.in (install-info): Create $(infodir) before installing
 	files.

2000-03-23  Fernando Nasser  <fnasser@totem.to.cygnus.com>

	From David Whedon <dwhedon@gordian.com>
	* gdbint.texinfo : Added paragraphs about command deprecation.

2000-03-22  Daniel Berlin  <dan@cgsoftware.com>

      * gdb.texinfo: Add documentation for the apropos command.

2000-03-20  Michael Snyder  <msnyder@cleaver.cygnus.com>

	* gdb.texinfo: Add new queries ThreadInfo and ThreadExtraInfo.

2000-03-20  Michael Snyder  <msnyder@cleaver.cygnus.com>

	* gdb.texinfo: Add white space to prevent overprinting in
	two places.

2000-03-17  Stan Shebs  <shebs@apple.com>

	* gdb.texinfo: Many minor changes from Dmitry Sivachenko
	<dima@Chg.RU>, also clarification of allowed content for
	string constants.

2000-03-16  Eli Zaretskii <eliz@gnu.org>

	* gdb.texinfo (main menu): Add Annotations.
	(File Options): Add @cindex entries for each command-line option.
	Document --epoch, --annotate, --async, --interpreter, --write,
	--statistics, and --version.

	* annotate.texi: Convert to a chapter.  Use @value{GDBN} instead
	of GDB.

2000-02-23  Jim Blandy  <jimb@redhat.com>

	* gdbint.texinfo (FUNCTION_START_OFFSET): Document.

2000-02-22  Jim Blandy  <jimb@redhat.com>

	* gdbint.texinfo: Document COERCE_FLOAT_TO_DOUBLE --- the new form.

2000-02-15  Jason Molenda  (jsm@bugshack.cygnus.com)

	* Makefile.in (diststuff): New target.

2000-02-15  Kevin Buettner  <kevinb@redhat.com>

	* agentexpr.texi: Fix wording regarding Intel's IA-64
	architecture.  [From Jim Wilson.]

2000-01-16  Tom Tromey  <tromey@cygnus.com>

	* gdb.texinfo (Breakpoints): Mention breakpoint ranges.
	(Delete Breaks): Mention range arguments.
	(Disabling): Likewise.

2000-01-05  Dmitry Sivachenko <dima@Chg.RU>

	* gdb.texinfo:  Wrap "ASCII" in @sc{}; clarify a few sentences.

Wed Dec  8 19:53:08 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdbint.texinfo (FRAME_CHAIN_VALID): Add the generic frame-chain
 	valid functions.

1999-11-05  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.texinfo: Clarify regular expressions used in rbreak.

1999-10-15  Kevin Buettner  <kevinb@cygnus.com>

	* gdbint.texinfo (MEMORY_INSERT_BREAKPOINT,
	MEMORY_REMOVE_BREAKPOINT):  Document.

Thu Oct 14 21:17:17 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.texinfo (remote): Document how GDB ignores the qOffsets BSS
 	offset re-using the DATA offset instead.

1999-10-11  Jim Kingdon  <kingdon@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Add PARM_BOUNDARY.

1999-10-05  Stan Shebs  <shebs@andros.cygnus.com>

	From Dmitry Sivachenko <demon@gpad.ac.ru>:
	* gdb.texinfo: Use GDBP and GDBN everywhere, fix a couple other
	typos.

	* gdb.texinfo: Various minor wording and formatting improvements,
	mentions of additional command-line options.

1999-09-30  Fred Fish  <fnf@cygnus.com>

	* gdb.texinfo:  Document additional forms of specifying section
	names and addresses for the add-symbol-file command.

1999-09-14  Michael Snyder  <msnyder@cleaver.cygnus.com>

	* gdbint.texinfo: Fix typo, add the word "have".

1999-09-14  Jim Blandy  <jimb@cris.red-bean.com>

	* gdbint.texinfo (Target Architecture Definition): Document the
	SKIP_PERMANENT_BREAKPOINT macro.

1999-09-07  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.texinfo: Fiks speling errers.

	* gdb.texinfo: Fix uses of @multitable.

	From Eli Zaretskii  <eliz@gnu.org>:
	* gdb.texinfo: Include details specific to DOS host, clarify
 	some confusing language, fix @ref/@xref/@pxref usages, add
	comments about using with optimization, add more indexing,
	fix info about disassembly-flavor.

Tue Sep  7 09:11:24 1999  Kevin Buettner  <kevinb@cygnus.com>

	* gdbint.texinfo (IN_SOLIB_DYNSYM_RESOLVE_CODE,
	SKIP_SOLIB_RESOLVER): Define.

Fri Sep  3 18:05:14 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.texinfo (Protocol): Review.  Add tables describing ``q'' and
 	``g'' packets.

1999-08-30  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.texinfo: Create a new "Configurations" chapter with
 	platform-specific info, inline remote.texi and move sections of it
 	into the new chapter, move bits about info proc, heuristic search,
	and register stack into the new chapter.
	* remote.texi: Remove, now part of gdb.texinfo.
	* Makefile.in (SFILES_INCLUDED): Remove ref to remote.texi.

1999-08-27  Jason Molenda  (jsm@bugshack.cygnus.com)

	* gdbint.texinfo (GDB_TARGET_IS_SUN3, GDB_TARGET_IS_SUN386,
	GDB_TARGET_IS_MACH386): These kludges have gone away.

Wed Aug 25 10:47:03 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdbint.texinfo (Target Architecture Definition): Mention
 	TDEPLIBS.

1999-08-20  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.texinfo: Remove remaining "HPPA" conditionals, rewrite
	surrounding text to fit HP-UX bits into general info.
	(HPPA-cfg.texi): Remove, no longer useful.

	* gdb.texinfo: Remove explicit links from @node lines, remove
	HP-added "Detailed Node Listing" from main menu which confuses
	things.

	From Dmitry Sivachenko <dima@Chg.RU>:
	* gdb.texinfo: Use @value{GDBN} instead of plain GDB, fix grouping
 	in description of `set environment'.

1999-08-17  Stan Shebs  <shebs@andros.cygnus.com>

	* gdbint.texinfo: Update coding standard to allow pure ANSI/ISO C.

1999-08-12  Ben Elliston  <bje@cygnus.com>

	* gdbint.texinfo (Breakpoint Handling): Add missing words.

1999-08-10  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Set Watchpoints): Explain some subtleties about
 	watch, awatch, and rwatch.  Explain why the latter two cannot be
 	set as software watchpoints.  Document that watchpoints for local
 	variables are deleted when the debuggee terminates.

Wed Aug 11 13:18:14 1999  Andrew Cagney  <cagney@amy.cygnus.com>

	* remote.texi (Protocol): Further clarification of the "qRcmd"
 	packet.  Allow E.. response packet.  "qRcmd" packet is no longer
 	reserved.

1999-08-10  Elena Zannoni  <ezannoni@kwikemart.cygnus.com>

	* Makefile.in: Rename inc-hist.texi to inc-hist.texinfo.
	* gdb.texinfo: Ditto.

1999-08-06  Tom Tromey  <tromey@cygnus.com>

	* gdb.texinfo (KOD): New node.

Fri Aug  6 17:05:48 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* remote.texi (Rcmd): Fix minor formatting typos.

Thu Aug  5 17:57:41 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* remote.texi (protocol qRcmd): Allow ``OK'' and ``O...'' response
 	packets.

1999-07-14  Jim Blandy  <jimb@zwingli.cygnus.com>

	* gdbint.texinfo (PREPARE_TO_PROCEED, ADDR_BITS_REMOVE): Doc
	fixes.

Tue Jun 29 11:43:55 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdbint.texinfo (SAVE_DUMMY_FRAME_TOS): Define.

Fri Jun 25 11:47:06 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* remote.texi (Communication Protocol): ``v'' is in use. Fix
 	numerous formatting errors.  Clarify ``i''.  Mark ``i'', ``Z'',
 	``z'' and ``qRcmd'' as draft instead of reserved.  Identify
 	packets that are not supported on all hosts. Expand examples.
  	Spell check.

1999-06-24  Jason Molenda  (jsm@bugshack.cygnus.com)

	* Makefile.in: Recognize html, install-html.  Add targets
	to build HTML versions of documentation via texi2html.

Thu Jun 24 15:59:03 1999  Stan Shebs  <shebs@andros.cygnus.com>

	* gdbint.texinfo (Testsuite): New chapter, information about the
 	testsuite.

Fri Jun 25 02:40:34 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* remote.texi (Communication Protocol): Rewrite.

Thu Jun 24 16:59:54 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* stabs.texinfo: Fix uses of xref.

Thu Jun 17 17:23:25 1999  Stan Shebs  <shebs@andros.cygnus.com>

	* gdbint.texinfo: Add an anti-printf exhortation, and update the
	info about patch submission.

Mon Jun  7 15:49:40 1999  Stan Shebs  <shebs@andros.cygnus.com>

	From Per Bothner  <bothner@cygnus.com>:
	* gdb.texinfo: Document Chill support.

Fri Jun  4 16:58:22 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdbint.texinfo (SP_REGNUM, FP_REGNUM, PC_REGNUM): Add reference
 	to corresponding TARGET_READ_reg TARGET_WRITE_reg macros.
  	Document that the value should be greater-than or equal-to zero.
  	(NO_STD_REGS): Document. Deprecate.

Tue Jun  1 15:04:15 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdbint.texinfo (TARGET_COMPLEX_BIT, TARGET_DOUBLE_COMPLEX_BIT):
 	Document that these are not used.

Thu May 27 09:28:15 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdbint.texinfo (EXTRACT_STRUCT_VALUE_ADDRESS_P): Document.

Mon May 24 10:07:39 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdbint.texinfo (FRAME_NUM_ARGS): Update definition.  Parameter
 	numargs was dropped.

Thu May 20 12:26:59 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdbint.texinfo (FRAMELESS_FUNCTION_INVOCATION): Update.

Tue Apr 27 19:14:20 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdbint.texinfo (SKIP_PROLOGUE, SKIP_PROLOGUE_FRAMELESS_P):
 	Update.

Thu Apr 22 13:07:37 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdbint.texinfo (USE_GENERIC_DUMMY_FRAMES): Document.
	(GET_SAVED_REGISTER): Update, not just the a29k uses this.

Wed Apr 21 13:59:01 1999  Dave Brolley  <brolley@cygnus.com>

	* gdbint.texinfo: Fix typos: $ -> @.

Tue Apr 20 11:59:38 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdbint.texinfo (REGISTER_NAMES, BREAKPOINT, BIG_BREAKPOINT,
 	LITTLE_BREAKPOINT, LITTLE_REMOTE_BREAKPOINT,
 	BIG_REMOTE_BREAKPOINT): Deprecate in favor of REGISTER_NAME and
 	BREAKPOINT_FROM_PC.

Mon Apr 12 16:00:44 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdbint.texinfo (CALL_DUMMY_STACK_ADJUST_P,
 	CALL_DUMMY_STACK_ADJUST): Document.

Thu Apr  8 17:23:15 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdbint.texinfo (CALL_DUMMY_P, CALL_DUMMY_WORDS,
 	SIZEOF_CALL_DUMMY_WORDS, CALL_DUMMY): Define.

1999-04-02  Stan Shebs  <shebs@andros.cygnus.com>

	* gdbint.texinfo (MAINTENANCE_CMDS): Remove ref, since it no
	longer exists.

Tue Mar  9 19:25:11 1999  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.texinfo, remote.texi, all-cfg.texi, HPPA-cfg.texi: Remove
 	nearly all @ifset/@ifclear conditionals; nobody uses them, and
 	they make the manual source incomprehensible.
	* h8-cfg.texi: Remove, hasn't been used in years.

Thu Feb 11 18:00:59 1999  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.texinfo: Update the credits.

Mon Feb  8 17:33:57 1999  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.texinfo: Fix mistakes noticed in printout of last
	draft, add Alpha to discussion of heuristic fence post.

Fri Feb  5 17:20:00 1999  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.texinfo, remote.texi: Many changes; update to Seventh
 	Edition, merge some HP changes into mainline, describe some
 	previously undocumented features, describe more of the target
 	commands available, eliminate obsolete section on renamed
 	commands.
	* all-cfg.texi, HPPA-cfg.texi: Remove some obsolete conditionals.

Wed Jan 20 17:47:45 1999  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.texinfo: Make many HPPA conditionals unconditional,
	including catchpoint description, since now on for all configs.
	* all-cfg.texi: @clear HPPA, since is mainly for very HP-specific
	specializations.

Thu Jan 14 17:10:12 1999  Stan Shebs  <shebs@andros.cygnus.com>

	* Makefile.in (GDBvn.texi): Fix match expression to work with
	current format of VERSION in gdb/Makefile.in.
	* gdb.texinfo: Fix node ref to match new readline.

Wed Jan 13 10:38:40 1999  Edith Epstein  <eepstein@sophia.cygnus.com>

	* gdb.texinfo: Changes made as part of a project to merge in
	  changes made by HP. Documentation makes extensive use of
	  @ifclear HPPA and @ifset HPPA. The HP manual omits doumentation
	  on remote debugging. There are differences in documentation
 	  (HP vs.  non-HP) on C++ support (aCC vs. gnu gcc++). Also,
	  the HP manual discusses catchpoints, hardware watchpoints, and
	  some HPUX specific limitations for shared library support.

	  There are also a number of @node changes.

1999-01-12  Jason Molenda  (jsm@bugshack.cygnus.com)

	* gdbint.texinfo (Formatting): Disambiguate a sentence.
	(C Usage): Same.

Wed Jan  6 11:55:34 1999  David Taylor  <taylor@texas.cygnus.com>

	The following changes were made by Edith Epstein
 	<eepstein@cygnus.com> as part of a project to merge in changes
 	made by HP.

	* HPPA-cfg.texi: new file.

	* all-cfg.texi: set HPPA for HP PA-RISC targets.

	* refcard.tex: change documentation about catch.
	  removed info catch.

Mon Jan  4 18:29:18 1999  Stan Shebs  <shebs@andros.cygnus.com>

	* gdbint.texinfo: Expand on GDB's coding standards,
	specify the use of arg names with prototypes.

1998-12-14  J.T. Conklin  <jtc@redbacknetworks.com>

	* gdb.texinfo: Fix tipo.

Sun Dec 13 10:27:59 1998  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdbint.texinfo: Document TARGET_BYTE_ORDER_DEFAULT and
 	TARGET_BYTE_ORDER_SELECTABLE_P.

Thu Dec 10 16:07:09 1998  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdbint.texinfo (FRAME_FIND_SAVED_REGS): Document.

1998-12-09  Jim Blandy  <jimb@zwingli.cygnus.com>

	* agentexpr.texi: New file.

Wed Dec  9 21:13:57 1998  Andrew Cagney  <cagney@chook>

	* gdbint.texinfo (REGISTER_NAME): Replace REGISTER_NAMES.

1998-12-03  J.T. Conklin  <jtc@redbacknetworks.com>

	* remote.texi: Changed wording that implied that the GDB remote
	protocol caches register values instead of GDB itself.

Tue Dec  1 17:45:43 1998  Stan Shebs  <shebs@andros.cygnus.com>

	* gdbint.texinfo: Add some info about symbol readers.
	(CHILL_PRODUCER, etc): Comment out descriptions, not useful.
	(IN_SOLIB_CALL_TRAMPOLINE): Rename info from IN_SOLIB_TRAMPOLINE.
	(IN_SOLIB_RETURN_TRAMPOLINE): Describe.
	(KERNEL_DEBUGGING, MIPSEL): No info about these, remove.

Mon Nov 30 11:32:21 1998  Andrew Cagney  <cagney@chook>

	* gdbint.texinfo (FRAME_CHAIN_VALID_ALTERNATE):

Sat Nov 28 13:45:53 1998  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdbint.texinfo (INNER_THAN): Update, now takes parameters.

Fri Nov 27 12:39:45 1998  Andrew Cagney  <cagney@chook>

	* gdbint.texinfo (NO_SINGLE_STEP): Replace with
 	SOFTWARE_SINGLE_STEP_P and SOFTWARE_SINGLE_STEP.

Wed Oct 14 10:02:40 1998  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdbint.texinfo: Fix minor typos.

Wed Sep 30 18:03:19 1998  Stan Shebs  <shebs@andros.cygnus.com>

	* gdbint.texinfo: Complete overhaul.  Group descriptions more
	logically, add more info on generic algorithms, remove much
	obsolete and/or wrong material.

Fri Jul 24 17:51:38 1998  Ian Lance Taylor  <ian@cygnus.com>

	* stabs.texinfo (Method Type Descriptor): Expand and correct.

Mon May  4 10:37:12 1998  Brian Youmans (3diff@gnu.org)

	* refcard.tex:  Copyright, address updates.

Tue Apr 21 18:09:56 1998  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.texinfo (EDITION, DATE): Update and change to use ordinals
	for the edition instead of confusing GDB-version-like numbers.

Mon Apr 13 14:05:00 1998  Fred Fish  <fnf@cygnus.com>

	* gdb.texinfo (hbreak, watch): Fix typo, "date" -> "data".

Thu Apr  2 16:52:44 1998  Jason Molenda  (crash@bugshack.cygnus.com)

	* LRS: Reformat a bit to keep text under 80 columns.

Thu Apr  2 16:10:36 1998  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.texinfo: Add some credits, mention bug monitor.
	* remote.texi: Mention mips monitor targets.
	* gdbint.texinfo: Describe SP_REGNUM, STEP_SKIPS_DELAY.

Mon Feb  2 17:13:03 1998  Stan Shebs  <shebs@andros.cygnus.com>

	* gdbint.texinfo: Remove obsolete mentions of pinsn.c and opcode.h
 	files, finish sorting of host vs target vs native macros, describe
 	some more of them.

Tue Jan 13 16:44:50 1998  Fred Fish  <fnf@cygnus.com>

	* gdbint.texinfo (Host Conditionals): Document change from
	using NO_MMALLOC to it's inverse, USE_MMALLOC.

Mon Nov 24 13:55:21 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdbint.texinfo (Host Conditionals): Document
 	PRINTF_HAS_LONG_DOUBLE, SCANF_HAS_LONG_DOUBLE, HAVE_LONG_DOUBLE.

Fri Jul  4 14:52:31 1997  Ian Lance Taylor  <ian@cygnus.com>

	* gdbint.texinfo (Host Conditionals): Add CRLF_SOURCE_LINES.
	Document LSEEK_NOT_LINEAR.

Tue Mar 25 14:44:09 1997  Ian Lance Taylor  <ian@cygnus.com>

	* stabs.texinfo (Stab Section Basics): Make it clear that only
	some versions of the GNU linker remove the leading N_UNDF symbol.

Thu Feb 27 17:45:19 1997  Ian Lance Taylor  <ian@cygnus.com>

	* stabs.texinfo (String Field): Document type number pairs here,
	instead of in the Sun specific section.
	(Include Files): The GNU linker supports the N_BINCL
	optimization.  Clarify the N_BINCL value, and what it is used
	for.
	(Procedures): Document N_FUN with an empty string to mark the end
	of a function.
	(Typedefs): Mention that Sun compilers may use N_GSYM for a type.
	(Sun Differences): Remove this node, as the information is now
	elsewhere in the main document.
	(Stab Section Basics): Mention that the GNU linker may optimize
	stabs and remove the leading N_UNDF symbol.

Mon Dec  9 12:23:32 1996  Roland Pesch  <roland@wrs.com>

	* gdb.texinfo, refcard.tex: Restore author credit

Wed Oct  2 22:01:36 1996  Fred Fish  <fnf@fishfood.ninemoons.com>

	* gdbint.texinfo (SIGTRAMP_START, SIGTRAMP_END): Update
	documentation to account for START and END macros taking
	one arg.

Thu Aug 22 17:59:03 1996  Fred Fish  <fnf@cygnus.com>

	From: Eberhard Mattes <mattes@azu.informatik.uni-stuttgart.de>
	* gdb.texinfo (Frames): Fix typo.

Tue Jul 23 10:06:20 1996  Fred Fish  <fnf@cygnus.com>

	* gdbint.texinfo (NO_SINGLE_STEP): Document that single_step takes
	a target_signal as arg type, not a pid.

Fri Jul 12 11:10:05 1996  Stu Grossman  (grossman@critters.cygnus.com)

	* gdb.texinfo:  Document `set assembly-language'.

Thu Jul 11 13:50:28 1996  Stan Shebs  <shebs@andros.cygnus.com>

	* remote.texi: Update list of stubs in the GDB distribution.

Fri Jul  5 15:38:54 1996  Fred Fish  <fnf@cygnus.com>

	* gdbint.texinfo (NO_MMCHECK): Renamed from NO_MMALLOC_CHECK.
  	Also document that some systems can use mmalloc but must define
 	this if their C runtime allocates memory that is later freed.
	(MMCHECK_FORCE): Document new macro.

Fri Jun 28 22:17:10 1996  Dawn Perchik  <dawn@cygnus.com>

	* remote.texi: Add documentation for target Sparclet.

Mon Jun 24 18:12:22 1996  Jason Molenda  (crash@godzilla.cygnus.co.jp)

	* Makefile.in (srcdir, VPATH, prefix, infodir, INSTALL,
	INSTALL_PROGRAM, INSTALL_DATA): Use autoconf set values.
	* configure.in: Rewritten for autoconf.
	* configure: New.

Mon Jun 17 10:43:41 1996  Fred Fish  <fnf@cygnus.com>

	* Makefile.in (DVIPS): New define, set to dvips.
	(dvi): Add stabs.dvi.
	(ps): New target.
	(all-doc): Depend on info, dvi, and ps targets.
	(STAGESTUFF): Add *.ps and *.dvi files.
	(clean-info, clean-dvi): Remove.
	(mostlyclean): Does not depend upon clean-info or clean-dvi,
	rules completely rewritten.
	(maintainer-clean): Remove clean-info and clean-dvi
	dependencies and put their actions in the rules.
	(gdb.ps): New target
	(gdb.dvi, gdbgui.dvi, gdbint.dvi, stabs.dvi): Remove
	intermediate TeX files, whether they have 2 or 3 character
	extensions.
	(gdbint.ps): Add target and rules.
	(gdb-internals): Delete unused target.
	(Makefile): Depends upon config.status also.

Sat Mar 30 15:46:58 1996  Fred Fish  <fnf@cygnus.com>

	* gdbint.texinfo (CC_HAS_LONG_LONG): Clarify when/how this is
	set.

Sat Mar 16 15:10:20 1996  Fred Fish  <fnf@cygnus.com>

	From Peter Schauer <Peter.Schauer@Regent.E-Technik.TU-Muenchen.DE>
	* gdb.texinfo (Expressions): Fix erroneous array constant example.

Sat Mar 16 13:28:45 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.texinfo: Add missing "@bullet" to some "@itemize" commands.

Sat Feb 10 03:28:36 1996  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.texinfo (Print settings):  Document
	`set/show print static-members' commands.

Wed Jan 10 14:16:37 1996  Fred Fish  <fnf@cygnus.com>

	* gdbint.texinfo (Native): Document name change, coredep.c to
	core-aout.c.

Wed Dec 13 12:35:28 1995  Ian Lance Taylor  <ian@cygnus.com>

	* stabs.texinfo (Include Files): Document the values the SunOS4
	linker creates for N_BINCL/N_EINCL/N_EXCL stabs.

Fri Dec  8 21:08:44 1995  Fred Fish  <fnf@cygnus.com>

	* gdbint.texinfo (Releases): Change gdb.tar.Z to gdb.tar.gz.
	Fix typo.

Fri Dec  1 11:07:50 1995  Fred Fish  <fnf@cygnus.com>

	* gdbint.texinfo (Releases): Make "gdb.tar.gz" rather than
	"gdb.tar.Z".

Wed Sep 20 13:14:10 1995  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.in (maintainer-clean): New target, synonym for
	realclean.

Thu Aug  3 10:45:37 1995  Fred Fish  <fnf@cygnus.com>

	* Update all FSF addresses except those in COPYING* files.

Wed Jul 19 18:43:03 1995  Stan Shebs  <shebs@andros.cygnus.com>

	From Richard Earnshaw (rearnsha@armltd.co.uk):
	* gdb.texinfo (convenience variables): Document $_exitcode.
	(quit): Document optional expression to use as exit code.

Thu Jun 22 21:27:33 1995  Victoria Mixon  <victoria@cygnus.com>

	* gdb.texinfo, remote.texi: Brought up to date with various
	GDB changes.

Tue Jun 20 14:35:38 1995  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.texinfo: Update dates and versions, fix comments about
	hardware watchpoints in future releases and about the
	sharedlibrary command.

Mon May  8 09:30:36 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo: Remove node `XCOFF differences'.  Describe value of
	C_FUN stab.  Other cleanups.

Wed Apr 19 07:02:19 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* remote.texi (Bootstrapping): Clarify that flush_i_cache is only
	for the sparc stub.

Tue Apr 11 11:41:49 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* annotate.texi: Clarify which addresses have differing formats
	depending on the language and which do not.

Tue Mar 28 16:56:22 1995  J.T. Conklin  <jtc@rtl.cygnus.com>

	* remote.texi (NetWare): Changed example to use BOARD= instead of
	  NODE= argument to reflect correspoding change to gdbserve.nlm.

Fri Mar 17 06:47:02 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Negative Type Numbers): Mention the fact that
	GDB, as well as AIX dbx, supports the size type attribute.

Thu Mar 16 12:11:32 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Negative Type Numbers): Document types -31 to -34.

Mon Mar 13 16:49:13 1995  Per Bothner  <bothner@kalessin.cygnus.com>

	* gdb.texinfo (Define):  Document $arg0... arguments to commands,
	and new 'if' and 'while' commands.

Fri Feb 17 15:24:35 1995  Per Bothner  <bothner@kalessin.cygnus.com>

	* gdb.texinfo (Artificial arrays):  Note use of coerce-to-array-type.

Wed Feb 15 11:59:18 1995  J.T. Conklin  <jtc@rtl.cygnus.com>

	* all-cfg.texi: New flag, GDBSERVE, for NetWare's gdbserve.nlm.
	* remote.texi (NetWare): New node, how to use gdbserve.nlm on
	  NetWare targets.  Mostly stolen from the Server node.

Fri Feb 10 20:20:08 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.texinfo (Setting): Talk about the language of a source file
	versus the working language.  The old documentation did not match
	what GDB did.

Wed Feb  1 20:26:36 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Source Files): Document N_SO used to mark the end
	of a source file.

Mon Jan 23 14:23:37 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.texinfo (Processes): New node.

Tue Jan 17 14:09:03 1995  Ian Lance Taylor  <ian@sanguine.cygnus.com>

	* remote.texi: Update documentation of set/show mipsfpu.

Fri Jan  6 17:17:28 1995  Stan Shebs  <shebs@andros.cygnus.com>

	* gdbgui.texinfo: New file, manual for GUI (gdbtk) users.
	* Makefile.in (gdbgui.dvi, gdbgui.info): New actions.

Sun Sep  4 16:47:21 1994  Stan Shebs  (shebs@andros.cygnus.com)

	* gdbint.texinfo: Removed mentions of some incorrectly placed and
	obsolete conditionals, described some others.

Mon Aug  1 15:42:39 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdbint.texinfo: Remove references to BROKEN_LARGE_ALLOCA and
	SET_STACK_LIMIT_HUGE; they were removed from GDB 14 May 1994.

Mon Aug  1 15:12:02 1994  Stan Shebs  (shebs@andros.cygnus.com)

	* gdbint.texinfo: Put regex conditionals in their own table.

Tue Jul 26 18:32:52 1994  Stan Shebs  (shebs@andros.cygnus.com)

	* gdbint.texinfo: Removed mentions of many obsolete conditionals,
	described or fixed the descriptions of many others.

Sun Jul 17 14:14:03 1994  Stan Shebs  (shebs@andros.cygnus.com)

	* gdb.texinfo: Add some more credits.
	* gdbint.texinfo: Capitalize GDB consistently, describe some
	macros and remove some.

Thu Jul 14 18:43:17 1994  Stan Shebs  (shebs@andros.cygnus.com)

	* gdbint.texinfo: Removed mentions of many incorrectly placed and
	obsolete conditionals, described some others.

Tue Jul 12 12:23:15 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.texinfo (help targets):  Changed to `help target', which
	is the correct gdb command.

Wed Jun 22 18:00:51 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* annotate.texi (TODO): New node, for keeping track of annotations
	suggested but not yet implemented.

Wed Jun  1 16:10:45 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Statics): Value of xcoff C_BSTAT points to
	another symbol, it is not the address itself.

Thu May  5 20:23:36 1994  Stan Shebs  (shebs@andros.cygnus.com)

	* stabs.texinfo (Stab Section Basics): Add comment about alignment
	of stabs-in-coff sections.

Wed May  4 06:26:11 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* annotate.texi: Change edition to 0.5 and date to May 1994.
	Add index.
	(Frames): New node, for frame annotation.
	(Displays): New node, for display annotation.

	* remote.texi (MIPS Remote): Say that set timeout doesn't apply
	when waiting for your program to stop.

Fri Apr 29 18:24:46 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* annotate.texi (Breakpoint Info): Document annotation of header
	fields and record annotation.

Thu Apr 28 07:44:28 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* annotate.texi: New file, to document annotations.

Thu Apr 21 14:20:51 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* Makefile.in (clean): Don't remove GDBvn.texi (apparently on Jan
	16 I meant to make this change but did not).  Do remove gdb-cfg.texi.

Wed Apr 20 11:22:48 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Stab Section Basics): Say what is in .stab
	section, and say n_strx field is compilation unit relative.
	* stabs.texinfo: Don't use @code for a.out when it is the name of
	an object file format.

Wed Apr 13 20:29:54 1994  Jim Kingdon  (kingdon@deneb.cygnus.com)

	* gdb.texinfo: Refer to file names, not path names, per rms
	convention.
	(Arguments): Fix typo.

Thu Mar 24 08:09:12 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Global Variables): Talk about stabs in files
	where variables are referenced, but not defined.

Wed Mar 23 07:16:36 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo: Move stuff on @ and # type descriptors from node
	Cplusplus to new nodes Member Type Descriptor and Method Type
	Descriptor.  Re-write stuff for #.

Wed Mar 16 08:20:19 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.texinfo (Print Settings): Don't document "set print
	fast-symbolic-addr off".  The bug which it worked around was fixed
	on 25 Feb 94 in coffread.c, so I'm nuking the command.

	* stabs.texinfo (Alternate Entry Points): New node, rewritten from
	N_ENTRY node.

	* stabs.texinfo (Type Descriptors): Add 'Y' type descriptor.

Tue Mar 15 08:43:02 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdbint.texinfo (Host Conditionals, Target Conditionals): Remove
	references to ieee-float.c.

Fri Mar 11 08:09:40 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.texinfo (Set Breaks): Update documentation for tbreak to
	match what the code actually does.

Wed Mar  9 19:43:05 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Symbol Descriptors): Add OS9000 symbol descriptor s.

Tue Mar  1 17:04:43 1994  Jim Kingdon  (kingdon@deneb.cygnus.com)

	* stabs.texinfo (Type Descriptors): Add OS9000 type descriptors c,
	i, and b.

Wed Feb 23 10:44:18 1994  Jim Kingdon  (kingdon@rtl.cygnus.com)

	* stabs.texinfo: Document N_RBRAC as function relative for COFF as
	well as for ELF and SOM.  Unify the descriptions of ELF and SOM
	as "stabs in sections" rather than just saying "ELF and SOM".
	Also make that stuff apply to COFF.

Fri Feb 18 08:25:58 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.texinfo (Formatting Documentation): Change GhostScript to
	Ghostscript.

Fri Feb  4 06:31:31 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.texinfo (Continuing and Stepping): When talking about "step"
	versus functions without line numbers, also mention stepping into
	them as well as "step" when you are in them.  Tell the user how to
	deal with the situation.  Add comment about "debugging information".

Thu Feb  3 11:39:59 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Enumerations): Document restriction on where
	enumeration types can appear and still win with GDB.

Wed Feb  2 11:29:17 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Negative Type Numbers): Document format for type
	-16.

Thu Jan 27 16:53:56 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.texinfo (Selection, Frame Info): Update information about
	arbitrary frame specficiations.

Wed Jan 26 15:31:57 1994  Roland H. Pesch  (pesch@fowanton.cygnus.com)

	* gdb.texinfo, remote.texi: general editing pass prior to Net release

Tue Jan 25 12:12:04 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (String Field): Discuss continuing stabs with ?.

Wed Jan 19 06:39:24 1994  David J. Mackenzie  (djm@thepub.cygnus.com)

	* stabs.texinfo (Non-Stab Symbol Types): Mention N_SET* | N_EXT.

Sun Jan 16 12:43:32 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo: Re-do stuff about C_BSTAT and move from XCOFF
	Differences node to Statics node.
	(Statics): Discuss XCOFF use of V symbol descriptor.

	* Makefile.in: Remove refcard.dvi and GDBvn.texi in realclean,
	not clean.

Wed Jan 12 21:29:54 1994  John Gilmore  (gnu@cygnus.com)

	* gdb.texinfo (Print Settings): Document `set print
	fast-symbolic-addr' and improve the doc for some other
	`set print's.

Mon Jan  3 17:23:07 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (String Field): Talk about defining several type
	numbers at once.
	Fix lint regarding changing node ELF Transformations to
	ELF and SOM Transformations.

Fri Dec 31 00:42:43 1993  John Gilmore  (gnu@cygnus.com)

	* stabs.texinfo:  Insert Peter Kessler's name as inventor (I think).

Tue Dec 28 09:30:40 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Cross-References): `::' is for nested types only
	within <>.
	(Structures): Document static members.

Mon Dec 27 13:55:04 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo: Document S type attribute.

Sun Dec 26 20:46:36 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* stabs.texinfo: Add notes about stabs-in-som where appropriate.

Fri Dec  3 19:13:19 1993  John Gilmore  (gnu@cygnus.com)

	* gdbint.texinfo:  Fix a few typos.

Sun Nov 28 18:06:25 1993  Roland H. Pesch  (pesch@fowanton.cygnus.com)

	* gdb.texinfo, remote.texi: formatting improvements

	* gdb.texinfo (New Features): mention threads.
	(Summary, C): fix xrefs in newly contributed text.
	(Threads): index entries, clarifications, example
	(passim): minor typos fixed, phrasing improvements

	* remote.texi (Bootstrapping): rephrase text on ^C and add index
	entries; (Server): explain use of gdbserver w/real-time systems,
	add example of conflicting TCP port; (MIPS Remote) break up
	running text into table, highlighting commands, and add example.

Wed Nov 24 14:15:56 1993  Roland H. Pesch  (pesch@fowanton.cygnus.com)

	* refcard.tex: avoid bad linebreaks even when REFEDITS=psrc.sed

Fri Nov 12 16:10:58 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Nested Symbols): New node.
	(String Field, Symbol Descriptors, Cross-References): Refer to it.

Thu Nov 11 13:26:45 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Stabs in ELF): Clarify how Bbss.bss work with respect
	to picking which Bbss.bss symbol to use, and (because there seems to
	be no good way of doing it) re-write some of the text to make it
	sound like Bbss.bss isn't such a great idea after all (as currently
	designed).

	* gdb.texinfo (C): In addition to saying people have to use g++ for
	good results, say they have to use stabs.  Specifically say cfront
	doesn't work well.
	(Summary): Merge in information on Modula-2, Pascal, and Chill from
	the gdb README.  Add xrefs to places where the support for the various
	languages is described in detail.

Mon Nov  8 11:47:34 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo: Clean up stuff about visibility and virtual
	characters.

	* stabs.texinfo (N_M2C): Cite Sun doc.

Fri Nov  5 16:27:27 1993  Roland H. Pesch  (pesch@fowanton.cygnus.com)

	* gdb.texinfo: updates re threads.
	* remote.texinfo: avoid index entries starting with digits.

Tue Nov  2 09:08:37 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Enumerations): Talk about large, negative and
	octal values.  Clean up cross reference to type attributes.
	(String Field): Say that GDB 4.11 supports size attribute.

Sun Oct 31 13:31:10 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* remote.texi (VxWorks Remote): Clarify that rebuilding VxWorks kernel
	is a mandatory step.  Make the stuff about that more concise.

Wed Oct 27 00:25:46 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Class Names): New node.

	* gdb.texinfo (Command Files): Explain order of init file reading.

	* remote.texi (Bootstrapping): Talk about getting the serial driver
	to deal with ^C sent by gdb to stop the remote system.

Mon Oct 25 03:25:41 1993  Tom Lord  (lord@cygnus.com)

	* libgdb.texinfo (I/O): incorporated better phrasing from rich.

	* libgdb.texinfo (Defining Commands): made the DOC arg
	to gdb_define_app_command a char * instead of char **
	per a suggestion from kingdon.

	* libgdb.texinfo: total rewrite from a different starting
	premise.

Wed Oct 20 18:07:44 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Local Variable Parameters): Re-write paragraph on
	floats passed as doubles (to improve clarity).

Tue Oct 19 14:21:18 1993  Roland H. Pesch  (pesch@fowanton.cygnus.com)

	* gdb.texinfo (Source Path): index entries for $cwd, $pdir

	* a4rc.sed: update to work with Andreas Vogel papersize params

	* refcard.tex: use Andreas Vogel simplifications of papersize
	params; remove useless version info; update copyright date.

Tue Oct 19 10:46:22 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.texinfo (Symbols): Add class NAME to doc for ptype.

Tue Oct 12 09:11:45 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.texinfo (Files): Say what address the load command loads it at.

	* stabs.texinfo (Common Blocks): Minor cleanups.

	* stabs.texinfo: Update ld stabs in elf relocation to reflect the fact
	that Sun has backed away from the linker kludge and thus the relevant
	issue is changes to the SunPRO tools, not the Solaris linker.

	* stabs.texinfo (Traditional Integer Types): Clean up description
	of octal bounds a little bit.  Document extra leading zeroes.

Thu Oct  7 16:15:37 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.texinfo (Signaling): Update for symbolic symbol names
	and add a section explaining the difference between the GDB
	signal command and the shell kill utility.

Wed Oct  6 13:23:01 1993  Tom Lord  (lord@rtl.cygnus.com)

	* libgdb.texinfo: added `@' to braces that were unescaped.

Mon Oct  4 10:42:18 1993  Tom Lord  (lord@rtl.cygnus.com)

	* libgdb.texinfo: new file.  Spec for the gdb library.

Sun Oct  3 15:26:56 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Include Files): Fix typo (start -> end).

Thu Sep 30 18:24:56 1993  Roland H. Pesch  (pesch@fowanton.cygnus.com)

	* gdb.texinfo, remote.texi: assorted small improvements, mostly
	from Melissa at FSF's editing pass.

Thu Sep 30 11:54:38 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.texinfo: Remove stuff about ar and 14 character filenames.
	I believe this was fixed by the 13 Sep 89 change to print_frame_info.
	Also, modern versions of ar like BSD 4.4 or SVR4 don't have this bug.

Wed Sep 22 21:22:11 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* remote.texi (Bootstrapping): Discuss 386 call gates.

Sat Sep 18 17:10:44 1993  Jim Kingdon  (kingdon@poseidon.cygnus.com)

	* stabs.texinfo (Based Variables): New node.

Thu Sep 16 17:48:55 1993  Jim Kingdon  (kingdon@cirdan.cygnus.com)

	* stabs.texinfo (Negative Type Numbers): Re-write discussions of
	names, sizes, and formats to suggest how not to lose.

Sat Sep 11 09:35:11 1993  Jim Kingdon  (kingdon@poseidon.cygnus.com)

	* stabs.texinfo (Methods): Fix typo.

Fri Sep 10 06:34:20 1993  David J. Mackenzie  (djm@thepub.cygnus.com)

	* gdb.texinfo: Fix a few typos.

Wed Sep  8 09:11:52 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.texinfo: Clarify how well it works with Fortran.

	* stabs.texinfo (Stabs In ELF, Statics, ELF Transformations):
	More on relocating stabs in ELF files.

Tue Sep  7 13:45:02 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Stabs In ELF): Talk about N_FUN value.

Mon Sep  6 19:23:18 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Local Variable Parameters): Talk about nameless
	parameters on VAX.

Fri Sep  3 17:06:08 1993  Roland H. Pesch  (pesch@fowanton.cygnus.com)

	* gdb.texinfo: @up/@down -> @raisesections/@lowersections

Fri Sep  3 12:04:15 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo: Make info author notice match the TeX author notice.

Tue Aug 31 13:21:06 1993  David J. Mackenzie  (djm@thepub.cygnus.com)

	* stabs.texinfo: Initial-caps all words in node names and
	non-trivial words in section names.

Mon Aug 30 11:13:16 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo: Many minor cleanups.

	* stabs.texinfo: Remove @deffn except from Expanded Reference node.

Sat Aug 28 12:08:09 1993  David J. MacKenzie  (djm@edison.eng.umd.edu)

	* stabs.texinfo: Remove full description of big example.
	It's not really helpful; just use pieces of it where appropriate.
	Add more Texinfo formatting directives (@samp, etc.).
	Use @deffn to define stab types.
	Eliminate some wordiness.  Break up some nodes.
	Add an (alphabetized) index of symbol types.
	Use consistent capitalization style in node and section names.

Thu Aug 26 06:36:31 1993  Fred Fish  (fnf@deneb.cygnus.com)

	* gdb.texinfo:  Change typo "Two two" to "The two".

Sun Aug 22 12:15:18 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (XCOFF-differences): Remove references to
	non-existent types N_DECL and N_RPSYM.

	* stabs.texinfo (String Field): Say that type attributes bug is
	fixed in GDB 4.10, since it is.

	* stabs.texinfo: Clean up djm cleanups, and more cleanups of my own.

Sat Aug 21 04:32:28 1993  David MacKenzie  (djm@cygnus.com)

	* stabs.texinfo: Formatting cleanups.

Fri Aug 20 20:49:53 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo: When explaining the n_type of a stab, standardize
	how we do it ('#' as a comment indicator, "36 is N_FUN" as text,
	no tabs, use @r).
	(Global Variables): Clean up.

Tue Aug 17 15:57:27 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Stack Variables): Re-write.

Mon Aug 16 21:20:08 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Stabs-in-elf): Talk about getting the start
	addresses of a source file.  Also revise formatting.
	Change "object module" or "object file" to "source file".
	Various: Miscellaneous cleanups.

Thu Aug 12 15:11:51 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo: Point to mangling info in gcc's gpcompare.texi.

Tue Aug 10 16:57:49 1993  Stan Shebs  (shebs@rtl.cygnus.com)

	* gdbint.texinfo: Removed many nonsensical machine-collected
	host and target conditionals, described some of the remainder.

Tue Aug 10 13:28:30 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdbint.texinfo (Getting Started): Use @itemize, not @table.

	* gdbint.texinfo (Top): Add name to @top line, and re-write the
	paragraph which follows.

	* gdbint.texinfo (Host): Use @code not @samp for Makefile
	variables.  Looks better and avoids overful hbox.

Fri Jul 30 18:26:21 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Procedures): Improve stuff on nested functions.

Thu Jul 29 15:10:58 1993  Roland H. Pesch  (pesch@fowanton.cygnus.com)

	* remote.texi: (MIPS Remote) clearer doc for set/show timeout,
	retransmit-timeout

Thu Jul 29 13:16:09 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdbint.texinfo: Update statement about `some ancient Unix
	systems, like Ultrix 4.0' to Ultrix 4.2.

Wed Jul 28 15:26:53 1993  Roland H. Pesch  (pesch@el_bosque.cygnus.com)

	* h8-cfg.texi, all-cfg.texi: new flag GDBSERVER

	* Makefile.in: depend on remote.texi rather than gdbinv-s.texi

	* remote.texi: (Server) New node on gdbserver.  (Remote Serial,
	ST2000 Remote, MIPS Remote): mention `host:port' syntax for TCP.

	* remote.texi: new name for former gdbinv-s.texi

	* gdb.texinfo: use remote.texi rather than gdbinv-s.texi

Wed Jul 28 08:26:24 1993  Ian Lance Taylor  (ian@cygnus.com)

	* gdbinv-s.texi: Documented timeout and retransmit-timeout
	variables for MIPS remote debugging protocol.

Mon Jul 26 13:00:09 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Negative Type Numbers): FORTRAN LOGICAL fix.

Tue Jul 20 16:30:41 1993  Jim Kingdon  (kingdon@deneb.cygnus.com)

	* Makefile.in (refcard.dvi): Use srcdir where necessary.

Mon Jul 19 12:02:50 1993  Roland H. Pesch  (pesch@cygnus.com)

	* gdb.texinfo: repair conditional bugs in text markup

Fri Jul 16 18:57:50 1993  Roland H. Pesch  (pesch@fowanton.cygnus.com)

	* gdb.texinfo, all-cfg.texi, h8-cfg.texi: introduce MOD2 switch
	to select Modula-2 material.

Thu Jul 15 13:15:01 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo: Cleanups regarding statics.

	* gdbinv-s.texi (Bootstrapping): Document exceptionHandler.
	(Debug Session): Mention exceptionHandler.  Add xref to Bootstrapping.

Mon Jul 12 13:37:02 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo: N_MAIN is sometimes used for C.

Fri Jul  9 09:47:02 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdbint.texinfo (Host, Target Conditionals): Remove TM_FILE_OVERRIDE.

Tue Jul  6 12:41:28 1993  John Gilmore  (gnu@cygnus.com)

	* gdbint.texinfo (Target Conditionals): Remove NO_TYPEDEFS,
	removed from the code by Kingdon.

Tue Jul  6 12:24:34 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.texinfo (Break Commands): Remove stuff about flushing terminal
	input when evaluating breakpoint conditions; the bug has been fixed.

	* gdb.texinfo (Continuing and Stepping): Argument to "continue"
	sets the ignore count to N-1, not to N.

Thu Jul  1 14:57:42 1993  Roland H. Pesch  (pesch@fowanton.cygnus.com)

	* refcard.tex (\hoffset): correct longstanding error to match
	  intended offset; avoids cutting off edge on some printers

Wed Jun 30 18:23:06 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Parameters): Say that order of stabs is significant.

Fri Jun 25 21:34:52 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Common Blocks): Say what Sun FORTRAN does.

Fri Jun 25 16:15:10 1993  Roland H. Pesch  (pesch@fowanton.cygnus.com)

	* Makefile.in: (REFEDITS) new var to control whether PS or CM
	fonts and whether US or A4 paper for GDB refcard; (refcard.dvi)
	collect sed edits if any, apply to refcard before formatting;
	(refcard.ps) stop implying PS fonts if PS output requested;
	(lrefcard.ps) delete extra target for variant PS fonts

	* refcard.tex: parametrize papersize dependent info, collect
	  in easily replaced spot

	* a4rc.sed: new file, edits to refcard for A4 paper

Fri Jun 25 14:21:46 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Negative Type Numbers): Type -16 is 4 bytes.

Wed Jun 23 15:02:50 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Negative Type Numbers): Minor character cleanups.

Tue Jun 22 16:31:52 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo: Express disapproval of 'D' symbol descriptor
	politely rather than rudely.

Fri Jun 18 19:42:09 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo: Document common blocks.

Fri Jun 18 12:12:57 1993  Fred Fish  (fnf@cygnus.com)

	* stabs.texinfo:  Add some basic info about stabs-in-elf.

Fri Jun 18 13:57:09 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Top): Minor cleanup.

Mon Jun 14 16:16:51 1993  david d `zoo' zuhn  (zoo at rtl.cygnus.com)

	* Makefile.in (install-info): remove parentdir support

Tue Jun 15 18:11:39 1993  Roland H. Pesch  (pesch@fowanton.cygnus.com)

	* gdb.texinfo (Copying): delete this node and references to it;
	RMS says this manual need not carry GPL. (passim): Improvements
	from last round at FSF, largely due to Ian Taylor review, and
	minor formatting improvements.

	* gdbinv-s.texi (passim): Improvements from last round at FSF,
	largely due to Ian Taylor review. (Debug Session): minor edits to
	new text.

Sun Jun 13 12:52:39 1993  Jim Kingdon  (kingdon@cygnus.com)

	* Makefile.in (realclean): Remove info and dvi files too.

Sat Jun 12 16:09:22 1993  Jim Kingdon  (kingdon@cygnus.com)

	* {all,h8}-config.texi: Rename to *-cfg.texi for 14 char filenames.
	* Makefile.in: Change accordingly.  gdb-config.texi -> gdb-cfg.texi.
	* gdb.texinfo: Change accordingly.

	* stabs.texinfo: Clean up N_{L,R}BRAC.  Discuss what addresses of
	N_{L,R}BRAC,N_SLINE are relative to.

Fri Jun 11 15:15:55 1993  Jim Kingdon  (kingdon@cygnus.com)

	* Makefile.in (GDBvn.texi): Update atomically.

Wed Jun  9 10:58:16 1993  Jim Kingdon  (kingdon@cygnus.com)

	* gdbinv-s.texi (Debug Session): Document exceptionHook.

Tue Jun  8 13:42:04 1993  Jim Kingdon  (kingdon@cygnus.com)

	* gdb.texinfo (Print Settings): Move all stuff relating to symbolic
	addresses together.  Also motivate the set print symbol-filename
	command and suggest other solutions.

Tue Jun  1 22:46:43 1993  Fred Fish  (fnf@cygnus.com)

	* gdb.texinfo (set print elements):  Note that the number of
	elements is set to unlimited by "set print elements 0".

Mon May 31 08:06:55 1993  Jim Kingdon  (kingdon@cygnus.com)

	* stabs.texinfo (Builtin Type Descriptors): Try to clarify what
	NF_LDOUBLE means.
	(Stab Types): Include Solaris stab types.
	(Procedures): Document Solaris extensions.

Thu May 27 06:20:42 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.texinfo:  Add `set print symbol-filename' doc.

Wed May 26 00:26:42 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Arrays): Talk about type definition vs. type
	information.

	* stabs.texinfo (Builtin Type Descriptors): Talk about omitting
	the trailing semicolon.

Tue May 25 14:49:42 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Line Numbers, Source Files): Re-write these two nodes
	and merge in other parts of the document addressing these subjects.
	gdbint.texinfo (XCOFF): Remove info which is now in stabs.texinfo.

	* stabs.texinfo (Subranges, Arrays): Try to explain about the semicolon
	at the end of a range type.

	* stabs.texinfo (Subranges): "A offset" and "T offset" are not
	AIX extensions.

Mon May 24 09:00:33 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Stabs Format):  Misc fixes.

Sat May 22 10:40:56 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Constants):  Allow an `e' constant to be non-enum.
	(Traditional builtin types): Document convex convention for long long.
	(Negative builtin types): Discuss type names, and misc fixes.

Fri May 21 11:20:31 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Builtin Type Descriptors): Document the floating
	point types used with @samp{R} type descriptor.
	(Symbol Descriptors): Describe how to handle conflict between
	different meanings of @samp{P} symbol descriptor.

Thu May 20 13:35:10 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo: Remove node Quick Reference and put its children
	directly under the main menu.

	* stabs.texinfo: Many more changes to bring it into line with
	AIX documentation and reality.  I think it now has all the
	information from the AIX documentation, except that I burned
	out when I got to variant records (Pascal and Modula-2) and
	all the COBOL types.  Oh well, we can add them later when we're
	worrying more about those languages.

	* stabs.texinfo (Automatic variables): Talk about what it means
	to omit the symbol descriptor.

Tue May 18 17:59:18 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Parameters): Add "(sometimes)" when describing
	gcc2 behavior with promoted args.

Fri May 14 21:35:29 1993  Roland H. Pesch  (pesch@fowanton.cygnus.com)

	* gdb.texinfo: include readline appendices in info version of manual

Fri May  7 11:56:18 1993  Roland H. Pesch  (pesch@fowanton.cygnus.com)

	* gdbinv-s.texi (Remote Serial): describe new ^C behavior in
	target remote.

	* gdb.texinfo (Machine Code): more index entries for disassemble

Fri May  7 10:12:30 1993  Fred Fish  (fnf@cygnus.com)

	* Clarify the intended use of the gdb-testers and gdb-patches
	mailing lists, and shrink gzip comment.

Thu May  6 16:39:50 1993  Roland H. Pesch  (pesch@fowanton.cygnus.com)

	* gdb.texinfo (Shell Commands): do not mention SHELL env var in
	DOSHOST configuration of manual.

	* gdb.texinfo (MIPS Stack): new node.

	* all-config.texi (MIPS) new switch.

	* gdbinv-s.texi (Nindy Options) Remove two instances of future
	tense; (MIPS Remote) new node.

	* gdb.texinfo (passim) rephrases to work around makeinfo @value
	bug; (Environment) less passive, other small cleanups in text about
	.cshrc/.bashrc; (Invoking GDB) new MIPS Remote menu entry;
	(Remote) new MIPS Remote menu entry.

Thu Apr 29 09:36:25 1993  Jim Kingdon  (kingdon@cygnus.com)

	* stabs.texinfo: Many changes to include information from the
	AIX documentation.

	* gdb.texinfo (Environment): Mention pitfall with .cshrc.

Tue Apr 27 14:02:57 1993  Jim Kingdon  (kingdon@cygnus.com)

	* gdbint.texinfo (new node Debugging GDB, elsewhere):
	Move a bunch of information from ../README.
	(Getting Started): New node.

Fri Apr 23 17:21:13 1993  Roland H. Pesch  (pesch@fowanton.cygnus.com)

	* gdbinv-s.texi, gdb.texinfo: include Hitachi SH target

	* gdb.texinfo: advance manual revision dates to present

	* gdbinv-s.texi, gdb.texinfo, all-config.texi, h8-config.texi:
	stop using silly Roman numerals in @set variable names

Fri Apr 23 07:30:01 1993  Jim Kingdon  (kingdon@cygnus.com)

	* stabs.texinfo (Parameters): Keep trying to get this right.

Wed Apr 21 15:18:47 1993  Jim Kingdon  (kingdon@cygnus.com)

	* stabs.texinfo (Parameters): More on "local parameters".

Mon Apr 19 08:00:51 1993  Jim Kingdon  (kingdon@cygnus.com)

	* stabs.texinfo (Parameters): Re-do "local parameters" section.

Sun Apr 18 09:47:45 1993  Jim Kingdon  (kingdon@cygnus.com)

	* stabs.texinfo (Symbol descriptors): Re-do using @table and @xref.
	(Parameters): Rewrite.
	(xcoff-differences, Sun-differences): Minor changes.

Thu Apr 15 02:35:24 1993  John Gilmore  (gnu@cacophony.cygnus.com)

	* stabs.texinfo:  Minor cleanup.

Wed Apr 14 17:31:00 1993  Jim Kingdon  (kingdon@cygnus.com)

	* gdbint.texinfo: Minor xcoff stuff.

Wed Apr  7 14:11:07 1993  Fred Fish  (fnf@cygnus.com)

	* gdbint.texinfo:  Update for new config directory structure.
	Add info about internal type data structures.

Mon Apr  5 09:06:30 1993  Ian Lance Taylor  (ian@cygnus.com)

	* Makefile.in (SFILES_INCLUDED): gdb-config.texi is no longer in
	$(srcdir).
	(gdb-config.texi): Depend on file in $(srcdir).

Fri Apr  2 16:55:13 1993  Jim Kingdon  (kingdon@cygnus.com)

	* stabs.texinfo: Fixes about N_SO.

Fri Mar 26 18:00:35 1993  Roland H. Pesch  (pesch@fowanton.cygnus.com)

	* gdb.texinfo: include list of nonstandard init file names

	* *-config.texi: new switch GENERIC for text that applies *only*
	to (usual) multiple-target version of manual

	* gdb.texinfo, gdbinv-s.texi: Update conditional markup to correct
	h8 config

	* gdb.texinfo: depend on latest fixed makeinfo, use conditionals
	in menus (rather than conditionally selected multiple alternative
	menus).

	* Makefile.in: define and use DOC_CONFIG var to select
	configuration for GDB user manual.

	* gdb-config.texi: delete from repository, generate from Makefile.

	* all-config.texi: normal `generic' configuration file, formerly
	stored as gdb-config.texi

Wed Mar 24 14:03:19 1993  david d `zoo' zuhn  (zoo at poseidon.cygnus.com)

	* Makefile.in: add dvi target to build all .dvi files

Tue Mar 23 16:03:24 1993  Roland H. Pesch  (pesch@fowanton.cygnus.com)

	* gdb.texinfo, gdvinv-s.texinfo: formatting improvements.

Fri Mar 19 21:46:50 1993  John Gilmore  (gnu@cygnus.com)

	* gdbint.texinfo:  Doc NO_MMALLOC and NO_MMALLOC_CHECK as
	host conditionals.
	* stabs.texinfo:  More array fixes inspired by Jim's.

Fri Mar 19 10:23:34 1993  Jim Kingdon  (kingdon@cygnus.com)

	* stabs.texinfo: Fixes re arrays and continuations.

	* gdbint.texinfo: Add XCOFF node.

Mon Mar  8 15:52:18 1993  John Gilmore  (gnu@cygnus.com)

	* gdb.texinfo:  Add `set print max-symbolic-offset' doc.

Sun Feb 21 17:09:38 1993  Per Bothner  (bothner@rtl.cygnus.com)

	* stabs.texinfo:  Fix for array types to mention lower bounds.

Thu Feb 18 01:19:49 1993  John Gilmore  (gnu@cygnus.com)

	* gdbint.texinfo:  Update PTRACE_ARG3_TYPE doc, pull PT_*.

Wed Feb 17 08:15:24 1993  John Gilmore  (gnu@cygnus.com)

	* gdbint.texinfo:  Remove SET_STACK_LIMIT_HUGE from target defines.

Thu Feb 11 10:38:40 1993  John Gilmore  (gnu@cygnus.com)

	* gdbint.texinfo:  Fix thinko (NM_FILE => NAT_FILE).  Found
	by Michael Ben-Gershon <mybg@CS.HUJI.AC.IL>.

Wed Feb 10 23:59:19 1993  John Gilmore  (gnu@cygnus.com)

	* gdbint.texinfo:  Eliminate IBM6000_HOST, document IBM6000_TARGET.

Tue Feb  9 18:26:21 1993  Roland H. Pesch  (pesch@fowanton.cygnus.com)

	* gdb.texinfo, gdbinv-s.texi: misc updates

Sat Feb  6 10:25:47 1993  John Gilmore  (gnu@cygnus.com)

	* gdbint.texinfo:  Brief documentation for longjmp support,
	from an email msg by Stu.

Fri Feb  5 14:10:15 1993  John Gilmore  (gnu@cygnus.com)

	* stabs.texinfo:  Fix description of floating point "range"
	types (which really define basic types).  Reported by Jim Meehan,
	<meehan@src.dec.com>.

	* gdbint.texinfo:  Remove COFF_NO_LONG_FILE_NAMES define, now gone.

Thu Feb  4 13:56:46 1993  Ian Lance Taylor  (ian@cygnus.com)

	* gdbint.texinfo: Slightly expand section on supporting a new
	object file format.

Thu Feb  4 01:49:04 1993  John Gilmore  (gnu@cygnus.com)

	* Makefile.in (refcard.ps, lrefcard.ps):  Remove psref.tex
	intermediate file.

Tue Feb  2 12:18:06 1993  Roland H. Pesch  (pesch@fowanton.cygnus.com)

	* gdb.texinfo, gdbinv-s.texi: miscellaneous stylistic cleanups

Mon Feb  1 15:35:47 1993  Roland H. Pesch  (pesch@fowanton.cygnus.com)

	* gdbinv-s.texi: z8000 simulator target name is just "sim"

	* gdbinv-s.texi:  Mention that Z8000 simulator can simulate Z8001
	as well as Z8002.

Sat Nov 28 06:51:35 1992  John Gilmore  (gnu@cygnus.com)

	* gdbint.texinfo:  Add sections on clean design and on how to send
	in changes.

Mon Nov  9 23:57:02 1992  John Gilmore  (gnu@cygnus.com)

	* gdbint.texinfo:  Add how to declare the result of make_cleanup.

Mon Oct 26 11:09:47 1992  John Gilmore  (gnu@cygnus.com)

	* gdb.texinfo:  Fix typo, reported by Karl Berry.

Fri Oct 23 00:41:21 1992  John Gilmore  (gnu@cygnus.com)

	* gdb.texinfo:  Add opcodes dir to GDB distribution description.

Sat Oct 10 18:04:58 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* gdbint.texinfo: fixed a stray email address (needs @@),
	added @table @code to node "Native Conditionals"

Tue Sep 22 00:34:15 1992  John Gilmore  (gnu@cygnus.com)

	* gdbint.texinfo:  Describe coding style of GDB.

Mon Sep 21 19:32:16 1992  John Gilmore  (gnu@cygnus.com)

	* stabs.texinfo:  Minor wording changes.

Tue Sep 15 02:57:09 1992  John Gilmore  (gnu@cygnus.com)

	* gdbint.texinfo:  Improve release doc slightly.

Fri Sep 11 01:34:25 1992  John Gilmore  (gnu@sphagnum.cygnus.com)

	* gdbint.texinfo:  Improve doc of GDB config macros.

Wed Sep  9 16:52:06 1992  John Gilmore  (gnu@cygnus.com)

	* stabs.texinfo:  Remove Bothner's changes for C++ nested types.
	These will be reinserted when examined.

Mon Aug 24 01:17:55 1992  John Gilmore  (gnu@cygnus.com)

	* gdbint.texinfo:  Make a start at documenting all the #if macros
	in GDB.  At least list them all, and start separating them into
	host-specific and target-specific.

Tue Aug 18 15:59:13 1992  Roland H. Pesch  (pesch@fowanton.cygnus.com)

	* gdbinv-s.m4.in: refrain from using @cartouche for just a few
	examples (not consistent w others).
	gdb.texinfo: issue disclaimer paragraph on cmdline options only
	for generic vn of doc

Tue Aug 18 14:53:27 1992  Ian Lance Taylor  (ian@cygnus.com)

	* Makefile.in: always create installation directories.

Tue Aug 18 14:11:50 1992  Roland H. Pesch  (pesch@fowanton.cygnus.com)

	* gdb.texinfo: in h8 config, do not describe searching commands.

Mon Aug 17 18:07:59 1992  Roland H. Pesch  (pesch@fowanton.cygnus.com)

	* gdb.texinfo, none.m4, h8.m4, gdbinv-s.m4.in: improve H8/300
	  conditionals; introduce a few generic switches that may be
	  useful for other cross-dev or dos-hosted configs.

	* gdb.texinfo: fix typo in "info reg" description

Sun Aug 16 01:16:18 1992  John Gilmore  (gnu@cygnus.com)

	* stabs.texinfo:  Minor updates from running TeX over it.
	* Makefile.in (stabs.dvi, stabs.ps):  Add.

Sat Aug 15 20:52:24 1992  Per Bothner  (bothner@rtl.cygnus.com)

	* stabs.texinfo:  Stabs documentation, written by Julia Menapace.
	First pass at converting it to texinfo.

Sat Aug 15 03:14:59 1992  John Gilmore  (gnu@cygnus.com)

	* gdb.texinfo, refcard.tex:  Document mult args on `info reg'.
	* Makefile.in (refcard.ps, lrefcard.ps):  Add missing $(srdir).

Fri Aug 14 21:08:47 1992  John Gilmore  (gnu@cygnus.com)

	* gdbint.texinfo:  Add section on partial symbol tables.

Sat Jun 20 16:31:10 1992  John Gilmore  (gnu at cygnus.com)

	* gdb.texinfo:  document `set remotedebug' and `set
	rstack_high_address'.

Thu May 14 17:09:48 1992  Roland H. Pesch  (pesch@fowanton.cygnus.com)

	* gdb.texinfo: slight expansion of new text on reading info files
	* gdbinv-s.m4.in: correct and expand info on cross-debugging
	H8/300 from DOS.

Tue May 12 12:22:47 1992  John Gilmore  (gnu at cygnus.com)

	* gdb.texinfo:  `info user' => `show user'.  Noticed by David Taylor.

Mon May 11 19:06:27 1992  John Gilmore  (gnu at cygnus.com)

	* gdb.texinfo:  Say how to read the `info' files.

Tue May  5 12:11:38 1992  K. Richard Pixley  (rich@cygnus.com)

	* Makefile.in: gm4 -> m4.

Fri Apr 10 17:50:43 1992  John Gilmore  (gnu at rtl.cygnus.com)

	* gdb.texinfo:  Update for GDB-4.5.  Move `Formatting
	Documentation' ahead of `Installing GDB' to match README.
	Update shared library doc, -readnow and -mapped, and directory
	structure (add glob and mmalloc).  Update configure doc.

Tue Mar 24 23:28:38 1992  K. Richard Pixley  (rich@cygnus.com)

	* Makefile.in: remove $(srcdir) from gdb.info rule.

Sat Mar  7 18:44:50 1992  K. Richard Pixley  (rich@rtl.cygnus.com)

	* Makefile.in: commented out gdb-all.texinfo rule.  This is
	  temporary.

Wed Feb 26 18:04:40 1992  K. Richard Pixley  (rich@cygnus.com)

	* Makefile.in, configure.in: removed traces of namesubdir,
	  -subdirs, $(subdir), $(unsubdir), some rcs triggers.  Forced
	  copyrights to '92, changed some from Cygnus to FSF.

Fri Dec 13 09:47:31 1991  John Gilmore  (gnu at cygnus.com)

	* gdb.texinfo:  Improve how we ask for bug reports.

Tue Dec 10 04:07:21 1991  K. Richard Pixley  (rich at rtl.cygnus.com)

	* Makefile.in: infodir belongs in datadir.

Fri Dec  6 23:57:34 1991  K. Richard Pixley  (rich at rtl.cygnus.com)

	* Makefile.in: remove spaces following hyphens, bsd make can't
	  cope.  install using INSTALL_DATA.  added clean-info.  added
	  standards.text support.

Thu Dec  5 22:46:12 1991  K. Richard Pixley  (rich at rtl.cygnus.com)

	* Makefile.in: idestdir and ddestdir go away.  Added copyrights
	  and shift gpl to v2.  Added ChangeLog if it didn't exist. docdir
	  and mandir now keyed off datadir by default.


Local Variables:
mode: change-log
left-margin: 8
fill-column: 74
version-control: never
End:
