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

	* gdb.texinfo, refcard.tex: Update copyright year range.

2019-12-15  Christian Biesinger  <cbiesinger@google.com>

	* gdb.texinfo (Maintenance Commands): Update documentation for
	maint set worker-threads to say the default is 0.

2019-12-14  Andrew Burgess  <andrew.burgess@embecosm.com>

	* python.texi (Symbols In Python): Remove duplicate description of
	gdb.lookup_global_symbol.

2019-12-11  Simon Marchi  <simon.marchi@efficios.com>

	* gdb.texinfo (Writing JIT Debug Info Readers): Fix typo.

2019-12-11  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* gdb.texinfo (Command Options): Use -p and -pretty in the example,
	as -r is ambiguous.  Update the print - TAB TAB completion result.
	(Data): Document new option -raw-values.  Use -p and -pretty in the
	 example, as -r is ambiguous.
	(Print Settings): Document set print raw values.
	(Pretty-Printer Commands): Document interaction between enabled
	pretty printers and -raw-values/-raw-frame-arguments.

2019-12-10  Tom Tromey  <tom@tromey.com>

	* python.texi (gdb.prompt): Use correct quotes in example.
	Shorten sample text.

2019-12-04  Andrew Burgess  <andrew.burgess@embecosm.com>

	* doc/gdb.texinfo (GDB/MI Symbol Query): Add documentation of
	-max-results to some -symbol-info-* commands.

2019-12-04  Andrew Burgess  <andrew.burgess@embecosm.com>

	* doc/gdb.texinfo (GDB/MI Symbol Query): Document new MI command
	-symbol-info-module-functions and -symbol-info-module-variables.

2019-12-01  Tom Tromey  <tom@tromey.com>

	* gdb.texinfo (TUI Configuration): Mention TUI border styles.
	(Output Styling): Document new settings.

2019-12-01  Tom Tromey  <tom@tromey.com>

	* gdb.texinfo (TUI Configuration): Document new setting.

2019-11-30  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* gdb.texinfo (Define): Indicate that user-defined prefix can
	be used in 'define' command.  Document 'define-prefix' command.

2019-11-27  Andrew Burgess  <andrew.burgess@embecosm.com>

	* doc/gdb.texinfo (GDB/MI Symbol Query): Document new MI command
	-symbol-info-modules.

2019-11-27  Andrew Burgess  <andrew.burgess@embecosm.com>

	* doc/gdb.texinfo (GDB/MI Symbol Query): Document new MI command
	-symbol-info-functions, -symbol-info-types, and
	-symbol-info-variables.

2019-11-26  Tom Tromey  <tom@tromey.com>

	* gdb.texinfo (Maintenance Commands): Document new maint
	commands.

2019-11-25  Luis Machado  <luis.machado@linaro.org>

	* gdb.texinfo (Debugging Output): Document set debug
	remote-packet-max-chars.

2019-11-14  Tom de Vries  <tdevries@suse.de>

	* gdb.texinfo: Fix typos.
	* python.texi: Same.
	* stabs.texinfo: Same.

2019-11-12  Tom Tromey  <tom@tromey.com>

	* gdb.texinfo (Maintenance Commands): Document new command.

2019-11-11  Tom Tromey  <tom@tromey.com>

	* gdb.texinfo (TUI Keys): Document readline function names.

2019-11-11  Tom Tromey  <tom@tromey.com>

	* gdb.texinfo (Editing): Document operate-and-get-next.

2019-11-11  Tom Tromey  <tromey@adacore.com>

	* gdb.texinfo (Host I/O Packets): Fix typo in "vFile:pwrite".

2019-11-10  Andrew Burgess  <andrew.burgess@embecosm.com>

	* python.texi (Symbols In Python): Add documentation for
	gdb.lookup_static_symbols.

2019-11-10  Andrew Burgess  <andrew.burgess@embecosm.com>

	* python.texi (Symbols In Python): Extend documentation for
	gdb.lookup_static_symbol.

2019-10-31  Andrew Burgess  <andrew.burgess@embecosm.com>

	* gdb.texinfo (Symbols): Document new 'info module variables' and
	'info module functions' commands.

2019-10-31  Andrew Burgess  <andrew.burgess@embecosm.com>

	* gdb.texinfo (Symbols): Document new 'info modules' command.

2019-10-31  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* gdb.texinfo (Convenience Funs): Document the new
	$_gdb_setting_str, $_gdb_maint_setting and $_gdb_maint_setting_str
	convenience functions.

2019-10-29  Christian Biesinger  <cbiesinger@google.com>

	* Makefile.in: Also set SYSTEM_GDBINIT_DIR for the info manual
	generation.
	* gdb.texinfo (many sections): Document new --with-system-gdbinit-dir
	option.

2019-10-23  Tom Tromey  <tom@tromey.com>

	* Makefile.in (READLINE_DIR): Update.

2019-10-23  Christian Biesinger  <cbiesinger@google.com>

	* python.texi (Threads In Python): Add a note for how to get the
	list of threads.

2019-10-07  Tom de Vries  <tdevries@suse.de>

	* gdb.texinfo: Fix typo.
	* guile.texi: Same.
	* python.texi: Same.

2019-10-03  Bernhard Heckel  <bernhard.heckel@intel.com>

	* doc/gdb.texinfo (Fortran Operators): Describe scope operator.

2019-10-02  Tom Tromey  <tromey@adacore.com>

	* gdb.texinfo (Set Catchpoints, Convenience Vars): Document
	$_ada_exception.

2019-09-20  Ulrich Weigand  <uweigand@de.ibm.com>

	* doc/gdb.texinfo (Remote Configuration): Remove documentation for
	qXfer:spu:read and qXfer:spu:write.
	(General Query Packets): Likewise.
	(Cell Broadband Engine SPU architecture): Remove subsection.

2019-09-18  Tom Tromey  <tom@tromey.com>

	* gdb.texinfo (Editing): Document readline application name.
	(TUI Single Key Mode): Document TUI SingleKey keymap name.

2019-09-17  Andrew Burgess  <andrew.burgess@embecosm.com>

	* gdb.texinfo (Source Path): Additional text to better describe
	how the source path directory list is used when searching for
	source files.

2019-09-12  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* gdb.texinfo (Ada Tasks): Tell the task name is printed, update
	examples.

2019-09-10  Tom Tromey  <tromey@adacore.com>

	* gdb.texinfo (Index Files): Update Ada text.

2019-08-27  Andrew Burgess  <andrew.burgess@embecosm.com>

	* gdb.texinfo (Symbols): Add information about the -n flag to
	"info variables" and "info functions".

2019-08-25  Yoshinori Sato <ysato@users.sourceforge.jp>

        * gdb.texinfo (Standard Target Features): Add RX Features sub-section.

2019-08-16  Alan Hayward  <alan.hayward@arm.com>

	* gdb.texinfo (AArch64 Pointer Authentication)
	(GDB/MI Breakpoint Information) (Frame Information): Document
	addr_field.

2019-08-12  Tom Tromey  <tom@tromey.com>

	* gdb.texinfo (Configure Options): Document minimum version of
	readline.

2019-08-09  Alan Hayward  <alan.hayward@arm.com>

        * gdb.texinfo (AArch64 Pointer Authentication): Fix typo.

2019-08-07  Alan Hayward  <alan.hayward@arm.com>

	* gdb.texinfo (AArch64 Pointer Authentication): New subsection.

2019-08-05  Christian Biesinger  <cbiesinger@google.com>

	* python.texi (Blocks In Python): Document dictionary access on blocks.

2019-08-03  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

        * gdb.texinfo (Symbols): Document new args -dirname and -basename
        of "info sources" command.

2019-07-30  Christian Biesinger  <cbiesinger@google.com>

	* python.texi (Symbols In Python): Document new function
	gdb.lookup_static_symbol.

2019-07-29  Christian Biesinger  <cbiesinger@google.com>

	* python.texi (Objfiles In Python): Document new functions
	  Objfile.lookup_{global,static}_symbol.

2019-07-29  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* gdb.texinfo (Backtrace): Document the new '-frame-info'
	backtrace option.  Reference 'set print frame-info'.
	(Print Settings): Document 'set|show print frame-info'.
	Document new 'presence' value for 'set print frame-arguments.

2019-07-22  Andrew Burgess  <andrew.burgess@embecosm.com>

	* gdb.texinfo (Symbols): Add information about -q flag to "info
	types".

2019-07-20  Kevin Buettner  <kevinb@redhat.com>

	* python.texi (python command): Revise example to match
	command behavior.

2019-07-09  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (C++ Exception GDB/MI Catchpoint Commands): Adjust
	examples to show type=catchpoint instead of type=breakpoint and an
	address.

2019-07-03  Pedro Alves  <palves@redhat.com>
	    Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* gdb.texinfo (Command Settings): New node documenting the general
	concept of settings, how to change them, and the new "with"
	command.
	(Maintenance Commands): Document "maint with".

2019-07-03  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Maintenance Commands): Document "maint set/show
	test-settings" instead of "maint test-settings set/show".

2019-06-18  Simon Marchi  <simon.marchi@efficios.com>

	* gdb.texinfo (Invoking GDB): Remove sentence about how GDB
	deals with a file that has the same name as the specified pid to
	attach to.  Add example using -p option.
	(gdb man): Remove same sentence as in previous item.

2019-06-15  Andrew Burgess  <andrew.burgess@embecosm.com>

	* gdb.texinfo (GDB/MI Catchpoint Commands): Add menu entry to new
	node.
	(C++ Exception GDB/MI Catchpoint Commands): New node to describe
	new MI commands.

2019-06-13  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Command Completion): Mention command options too.
	(Command Options): New node.
	(Threads): Add anchors.  Extend descriptions of the "taas" and
	"tfaas" commands.
	(Backtrace): Describe new options of the "backtrace" command.  Add
	anchors.
	(Frame Apply): Describe new options of the "frame apply" and
	"faas" commands.  Add anchors.
	(Data): Describe new options of the "print" command.  Add anchors.
	(Compiling and Injecting Code): Mention options of the "compile
	print" command.
	(Maintenance Commands): Mention "maint test-options" subcommands
	and the "maint show test-options-completion-result" command.

2019-06-13  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Print Settings): Document "set/show print
	raw-frame-arguments" instead of "set/show print raw
	frame-arguments".

2019-06-13  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Maintenance Commands): Document "maint
	test-settings" commands.

2019-06-06  Amos Bird  <amosbird@gmail.com>

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

2019-06-04  Christian Biesinger  <cbiesinger@google.com>

	* python.texi: Document new gdb.Type.objfile property.

2019-06-03  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* gdb.texinfo (Help): Document the new -v apropos flag.
	(Output Styling): Document the style name styling done by "show style".
	Document the new title and highlight styles.

2019-05-31  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* gdb.texinfo (Shell Commands): Document pipe command.
	(Logging Output): Add a reference to pipe command.
	(Convenience Variables): Document $_shell_exitcode and
	$_shell_exitstatus.

2019-05-29  Tom Tromey  <tromey@adacore.com>

	* gdb.texinfo (Continuing and Stepping): Document new
	commands.

2019-05-22  Alan Hayward  <alan.hayward@arm.com>

	* gdb.texinfo (Shell Commands): Add debugredirect.

2019-05-22  Jan Vrany  <jan.vrany@fit.cvut.cz>

	* gdb.texinfo: Minor formatting fixes.

2019-01-28  Jan Vrany  <jan.vrany@fit.cvut.cz>

	* gdb.texinfo (Miscellaneous GDB/MI Commands): Document new
	MI command -complete.

2019-05-14  Tom de Vries  <tdevries@suse.de>

	* gdb.texinfo (Automatic symbol index cache): Add concept and command
	index entries.

2019-05-14  Tom de Vries  <tdevries@suse.de>

	* gdb.texinfo (Maintenance Commands): Remove superfluous
	quoting on command index entry for "maint info selftests".

2019-05-10  Tom Tromey  <tromey@adacore.com>

	* python.texi (Pretty Printing API): Mention lazy computation for
	"children".

2019-05-10  Tom Tromey  <tromey@adacore.com>

	* gdb.texinfo (Set Catchpoints): Add text for parameter to "catch
	exception" and "catch handlers".  Move "catch exception unhandled"
	text.  Use @var for "catch load" and "catch unload"

2019-05-08  Tom Tromey  <tromey@adacore.com>

	* gdb.texinfo (Symbols): Document change to ptype/o.

2019-05-03  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Separate Debug Files): Document how the
	subdirectory of the global debug directory is computed on
	MS-Windows/MS-DOS.

2019-04-29  Andrew Burgess  <andrew.burgess@embecosm.com>

	* gdb.texinfo (Print Settings): Document 'print max-depth'.
	* guile.texi (Guile Pretty Printing API): Document that 'print
	max-depth' can effect the display of a values children.
	* python.texi (Pretty Printing API): Likewise.
	(Values From Inferior): Document max_depth keyword.

2019-04-27  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* gdb.texinfo (Calling): Document the new
	set|show may-call-functions.

2019-04-22  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Reverse Execution): Mention and xref process record
	and replay.  Mention remote and system emulators.
	(Process Record and Replay): List supported architectures.
	Mention that "record btrace" is only supported on Intel
	processors.

2019-04-17  Alan Hayward  <alan.hayward@arm.com>

	* gdb.texinfo (Other Command-Line Arguments for gdbserver)
	(Monitor Commands for gdbserver)
	(gdbserver man): Add debug-file option.

2019-04-08  Kevin Buettner  <kevinb@redhat.com>

	* python.texi (Inferiors In Python): Rename
	Inferior.thread_from_thread_handle to Inferior.thread_from_handle.
	Add note about the former being deprecated.

2019-04-08  Kevin Buettner  <kevinb@redhat.com>

	* python.texi (Threads In Python): Add description for method
	InferiorThread.handle.

2019-04-07  Tom Tromey  <tom@tromey.com>

	* Makefile.in (all): Depend on "info".

2019-04-01  Andrew Burgess  <andrew.burgess@embecosm.com>

	* gdb.texinfo (Convenience Funs): Document '$_creal' and
	'$_cimag'.

2019-03-30  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Convenience Vars): Document $_gdb_major and
	$_gdb_minor.

2019-03-26  Andrew Burgess  <andrew.burgess@embecosm.com>

	* python.texi (Pretty Printing API): Document use of None for the
	display_hint.

2019-03-22  Alan Hayward  <alan.hayward@arm.com>
	    Jiong Wang  <jiong.wang@arm.com>

	* gdb.texinfo (AArch64 Features): Describe pauth feature.

2019-03-20  Tom Tromey  <tromey@adacore.com>

	* python.texi (Selecting Pretty-Printers): Use @defvar for
	gdb.pretty_printers.

2019-03-14  Simon Marchi  <simon.marchi@efficios.com>

	* gdb.texinfo (GDB/MI Development and Front Ends): Fix closing
	of table, "@end @table" -> "@end table".

2019-03-14  Tom Tromey  <tromey@adacore.com>

	* gdb.texinfo (Output Styling): Document "set style source" and
	"show style source".

2019-03-13  Simon Marchi  <simon.marchi@ericsson.com>

	* gdb.texinfo (Mode Options): Mention mi3.
	(Interpreters): Likewise.
	(GDB/MI Development and Front Ends): Add entry for MI 3 in
	version table.  Document -fix-multi-location-breakpoint-output.
	(GDB/MI Breakpoint Information): Document format of breakpoint
	location output.

2019-03-05  Simon Marchi  <simon.marchi@efficios.com>

	* python.texi (Values From Inferior): Change synopsys of the
	second form of Value.__init__.

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

	* gdb.texinfo (Output Styling): Fix typos.  Document the default
	foreground colors of the available styles.

2019-02-27  Kevin Buettner  <kevinb@redhat.com>

	* gdb.texinfo (Configure Options): Document minimum python
	version.

2019-02-26  Kevin Buettner  <kevinb@redhat.com>

	* python.texi (Values From Inferior): Document second form
	of Value.__init__.

2019-02-23  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo: Update copyright year ranges.
	* refcard.tex: Likewise.

2019-02-21  Alan Hayward  <alan.hayward@arm.com>

	* gdb.texinfo: Update style defaults.

2019-02-21  Tom Tromey  <tromey@adacore.com>

	* gdb.texinfo (Remote Configuration): Remove trailing "." from
	@item.

2019-01-16  Simon Marchi  <simon.marchi@ericsson.com>

	* gdb.texinfo (GDB/MI Development and Front Ends): Add table of
	MI versions.  Update text around it.

2019-01-14  Pedro Franco de Carvalho  <pedromfc@linux.ibm.com>

	* gdb.texinfo (PowerPC Features): Document the alias
	pseudo-registers for the org.gnu.gdb.power.altivec feature.

2019-01-09  Simon Marchi  <simon.marchi@ericsson.com>

	* gdb.texinfo (Print Settings): Remove mention of specific
	demangle-style values, just refer to the in-process help.

2018-12-28  Tom Tromey  <tom@tromey.com>

	* gdb.texinfo (Output Styling): New node.

2018-12-13  John Baldwin  <jhb@FreeBSD.org>

	* gdb.texinfo (Set Catchpoints): Add an anchor for 'catch syscall'.
	(Native): Add a FreeBSD subsection.
	(FreeBSD): Document use of system call aliases for compatibility
	system calls.

2018-11-21  Andrew Burgess  <andrew.burgess@embecosm.com>

	* gdb.texinfo (Standard Target Features): Add RISC-V Features
	sub-section.

2018-11-20  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* gdb.texinfo (Examining the Symbol Table): Document language choice
	for 'info types|functions|variables' commands.
	(Setting Breakpoints): Document language choice to print
	the functions in which a breakpoint is set.

2018-11-09  Pedro Franco de Carvalho  <pedromfc@linux.ibm.com>

	* gdb.texinfo (PowerPC Features): Document the altivec and fpu
	requirements for the org.gnu.gdb.power.vsx feature.

2018-11-01  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Ada Tasks): Update the "info task 2" example
	output to match the current implementation.

2018-10-27  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* gdb.texinfo (Information About a Frame): Document changes
	to 'info args' and 'info locals'.
	(Examining the Symbol Table): Document changes to 'info functions'
	and 'info variables'.

2018-10-26  Pedro Franco de Carvalho  <pedromfc@linux.ibm.com>

	* gdb.texinfo (PowerPC Features): Describe new features
	"org.gnu.gdb.power.htm.spr", "org.gnu.gdb.power.htm.core",
	"org.gnu.gdb.power.htm.fpu", "org.gnu.gdb.power.htm.altivec",
	"org.gnu.gdb.power.htm.vsx", "org.gnu.gdb.power.htm.ppr",
	"org.gnu.gdb.power.htm.dscr", "org.gnu.gdb.power.htm.tar".

2018-10-26  Pedro Franco de Carvalho  <pedromfc@linux.ibm.com>

	* gdb.texinfo (PowerPC Features): Describe new features
	"org.gnu.gdb.power.ebb" and "org.gnu.gdb.power.linux.pmu".

2018-10-26  Pedro Franco de Carvalho  <pedromfc@linux.ibm.com>

	* gdb.texinfo (PowerPC Features): Describe new feature
	"org.gnu.gdb.power.tar".

2018-10-26  Pedro Franco de Carvalho  <pedromfc@linux.ibm.com>

	* gdb.texinfo (PowerPC Features): Describe new features
	"org.gnu.gdb.power.ppr" and "org.gnu.gdb.power.dscr".

2018-10-20  Tom Tromey  <tom@tromey.com>

	* gdb.texinfo (TUI Commands): Add @end table.
	(TUI Configuration): Remove stray @end table.

2018-10-19  Tom Tromey  <tom@tromey.com>

	PR tui/18388:
	* gdb.texinfo (TUI Commands): Remove tabset documentation.
	(TUI Configuration): Document "set tui tab-width".

2018-10-09  Tom Tromey  <tom@tromey.com>

	* python.texi (Inferiors In Python): Link to "Frames In Python",
	not "Unwinding Frames in Python".

2018-10-09  Tom Tromey  <tom@tromey.com>

	* gdb.texinfo (Configure Options): Update --enable-ubsan
	documentation.

2018-10-08  John Baldwin  <jhb@FreeBSD.org>

	* gdb.texinfo (Contributors): Add SRI International and University
	of Cambridge for FreeBSD/riscv.

2018-10-06  Tom Tromey  <tom@tromey.com>

	PR python/19399:
	* python.texi (Inferiors In Python): Document
	Inferior.Architecture.

2018-10-06  Tom Tromey  <tom@tromey.com>

	PR python/21765:
	* python.texi (Symbols In Python): Document the module and
	common-block domains.  Remove documentation for incorrect
	domains.

2018-10-03  Tom Tromey  <tom@tromey.com>

	* gdb.texinfo (Configure Options): Document --enable-ubsan.

2018-10-02  John Darrington <john@darrington.wattle.id.au>

        * gdb.texinfo (Remote Connection Commands): Describe
	  the changes to target remote and target extended-remote
	  relating to Unix domain sockets.

2018-10-01  Tom Tromey  <tom@tromey.com>

	* gdb.texinfo (Configure Options): Document configure options.

2018-09-29  Tom Tromey  <tom@tromey.com>

	* gdb.texinfo (Requirements): Mention C++, GNU make.
	(Requirements): Sort the table.  Add more libraries.
	(Running Configure): Remove obsolete text.
	(Separate Objdir): Likewise.
	(Configure Options): Likewise.

2018-09-28  Andrew Burgess  <andrew.burgess@embecosm.com>

	* gdb.texinfo (Frames): Rewrite the description of 'frame number'
	to highlight that the number is also the frame's level.
	(Selection): Rewrite documentation for 'frame' and 'select-frame'
	commands.
	(Frame Info): Rewrite documentation for 'info frame' command.

2018-09-23  Tom Tromey  <tom@tromey.com>

	PR python/18852:
	* python.texi (Parameters In Python): Document exception behavior
	of get_set_string.

2018-09-18  John Baldwin  <jhb@FreeBSD.org>

	* gdb.texinfo (info proc): Remove "running".
	(info proc mappings): Replace "program" with "process".

2018-09-18  John Baldwin  <jhb@FreeBSD.org>

	* gdb.texinfo (Process Information): Document "info proc files"
	command.

2018-09-17  Tom Tromey  <tom@tromey.com>

	* gdb.texinfo (Index Files): Update for cache directory change on
	macOS.

2018-09-16  Tom Tromey  <tom@tromey.com>

	* python.texi (Basic Python): Update docs for find_pc_line,
	solib_name.
	(Progspaces In Python): Update docs for current_progspace.
	Document block_for_pc, find_pc_line, is_valid, nsolib_name.
	Move method documentation before example.

2018-09-13  Simon Marchi  <simon.marchi@ericsson.com>

	* python.texi (Objfiles In Python): Update gdb.objfiles() doc.

2018-09-13  Simon Marchi  <simon.marchi@ericsson.com>
2018-09-13  Tom Tromey  <tom@tromey.com>

	* python.texi (Program Spaces In Python): Document the
	Progspace.objfiles method.
	(Objfiles In Python): Mention that gdb.objfiles() is identical
	to gdb.selected_inferior().progspace.objfiles().

2018-09-13  Simon Marchi  <simon.marchi@ericsson.com>
2018-09-13  Tom Tromey  <tom@tromey.com>

	* python.texi (Inferiors In Python): Document
	Inferior.progspace.
	(Program Spaces In Python): Document that
	gdb.current_progspace() is the same as
	gdb.selected_inferior().progspace.

2018-09-13  Simon Marchi  <simon.marchi@ericsson.com>

	* python.texi (Basic Python): Mention the string representation
	of GDB Python objects.

2018-09-12  Simon Marchi  <simon.marchi@ericsson.com>

	* gdb.texinfo (Skipping Over Functions and Files): Document
	set/show debug skip.

2018-09-10  Tom Tromey  <tom@tromey.com>

	* python.texi (Frames In Python, Blocks In Python)
	(Symbols In Python, Symbol Tables In Python)
	(Lazy Strings In Python): Remove periods from section titles.

2018-09-10  Tom Tromey  <tom@tromey.com>

	* python.texi (Pretty Printing API): Swap sentence order.

2018-09-10  Tom Tromey  <tom@tromey.com>

	PR python/16461:
	* python.texi (Values From Inferior): Mention use of virtual
	table.

2018-09-10  Tom Tromey  <tom@tromey.com>

	* python.texi (Basic Python): Parenthesize argument to
	decode_line.

2018-09-10  Tom Tromey  <tom@tromey.com>

	* python.texi (Python): Mention Python versions.  Don't mention
	execfile.

2018-09-10  Tom Tromey  <tom@tromey.com>

	PR python/19808:
	* python.texi (Unwinding Frames in Python): Rewrite
	create_unwind_info documentation.  Update read_register
	documentation and add a note about unwinder caution.

2018-09-10  Tom Tromey  <tom@tromey.com>

	PR python/18909:
	* python.texi (Events In Python): Fix inferior_call
	documentation.

2018-09-10  Tom Tromey  <tom@tromey.com>

	PR python/17752:
	* python.texi (Frame Filter API): Remove period from subsection
	title.  Mention 100 as good default priority.
	(Frame Decorator API): Remove period from subsection title.
	Mention FrameDecorator module.

2018-09-10  Tom Tromey  <tom@tromey.com>

	PR python/23108:
	* python.texi (Exception Handling): Rearrange gdb.GdbError text
	and add a table.

2018-09-10  Tom Tromey  <tom@tromey.com>

	* gdb.texinfo (Compilation): Use "gcc", not "gcc.info", in @xref.
	(Machine Code): Use "binutils", not "binutils.info", in @pxref.
	(Separate Debug Files): Use "ld", not "ld.info", in @ref.
	* python.texi (Objfiles In Python): Use "ld", not "ld.info", in @ref.

2018-09-10  Tom Tromey  <tom@tromey.com>

	PR python/16484:
	* python.texi (Frames In Python): Document that Frame.block can
	throw.

2018-09-10  Tom Tromey  <tom@tromey.com>

	PR python/23487:
	* gdb.texinfo (Pretty-Printer Commands): Fix typo in example.

2018-09-10  Tom Tromey  <tom@tromey.com>

	PR python/16033:
	* python.texi (Blocks In Python): Document that Block.end is
	exclusive.

2018-08-29  Keith Seitz  <keiths@redhat.com>

	* gdb.texinfo (Compiling and injecting code in GDB): Document
	set/show "compile-oracle" and "compile-cplus-types" commands.

2018-08-22  Jan Vrany  <jan.vrany@fit.cvut.cz>

	* gdb.texinfo (The -stack-list-frames Command): Update description
	to mention "arch".
	Update MI examples throughout the document to contain "arch" in
	frame output.

2018-08-21  Alan Hayward  <alan.hayward@arm.com>

	* gdb.texinfo (AArch64 SVE): New subsubsection.

2018-08-14  Jan Vrany  <jan.vrany@fit.cvut.cz>

	* gdb.texinfo (GDB/MI Data Manipulation): Document
	"-data-disassemble -a addr".
	(GDB/MI Support Commands): Document "data-disassemble-a-option"
	feature.

2018-08-07  Simon Marchi  <simon.marchi@ericsson.com>

	* gdb.texinfo (Index Files Speed Up GDB): Add section about
	symbol index cache.

2018-07-27  Sergio Durigan Junior  <sergiodj@redhat.com>

	* gdb.texinfo (gcore man): Rewrite "Description" and "-o"
	option sections to further clarify that gcore can take more
	than one PID, and that "-o" is used to specify a prefix, not a
	filename.

2018-07-26  Andrew Burgess  <andrew.burgess@embecosm.com>

	* gdb.texinfo (Maintenance Commands): Add description of
	maintenance command to control dwarf unwinders.

2018-07-12  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* gdb.texinfo (Debugging Programs with Multiple Threads):
	Document changes to 'thread apply'.  Document 'taas'.
	Document 'tfaas'.
	(Examining the Stack): Document 'frame apply'.  Document 'faas'.

2018-07-11  Sergio Durigan Junior  <sergiodj@redhat.com>
	    Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Paul Fertser  <fercerpav@gmail.com>
	    Tsutomu Seki  <sekiriki@gmail.com>

	* gdb.texinfo (Remote Connection Commands): Add explanation
	about new IPv6 support.  Add new connection prefixes.

2018-07-09  Andrew Burgess  <andrew.burgess@embecosm.com>

	* gdb.texinfo (Remote Configuration): Update descriptions for
	set/show of hardware-watchpoint-limit, hardware-breakpoint-limit,
	and hardware-watchpoint-length-limit variables.

2018-07-02  Maciej W. Rozycki  <macro@mips.com>

	PR tdep/8282
	* gdb.texinfo (Source and Machine Code): Document `set
	disassembler-options' support for the MIPS target.

2018-06-28  Petr Tesarik  <ptesarik@suse.cz>

	* gdb.texinfo (Files): Document "add-symbol-file -o offset".

2018-06-28  Petr Tesarik  <ptesarik@suse.cz>

	* gdb.texinfo (Files): The address argument for "add-symbol-file"
	is no longer mandatory.

2018-06-28  Petr Tesarik  <ptesarik@suse.cz>

	* gdb.texinfo (Files): Document "symbol-file -o offset".

2018-06-14  Tom de Vries  <tdevries@suse.de>

	* gdb.texinfo (Background Execution): Add @cindex for '&'.

2018-06-11  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Maintenance Commands): Add a missing @anchor.

2018-06-08  Gary Benson <gbenson@redhat.com>

	* gdb.texinfo (Maintenance Commands): Document "maint check
	libthread-db" and "maint set/show check-libthread-db".

2018-06-05  Tom Tromey	<tom@tromey.com>

	PR cli/12326:
	* gdb.texinfo (Screen Size): Document "c" response to pagination
	prompt.

2018-05-31  Maciej W. Rozycki  <macro@mips.com>

	* gdb.texinfo (Choosing Target Byte Order): Document endianness
	selection details with the `set endian auto' mode.

2018-05-04  Tom Tromey  <tom@tromey.com>

	PR python/22731:
	* python.texi (Breakpoints In Python): Mention that "commands" is
	writable.

2018-05-02  Tom Tromey  <tom@tromey.com>

	PR python/20084:
	* python.texi (Parameters In Python): Document PARAM_ZUINTEGER and
	PARAM_ZUINTEGER_UNLIMITED.

2018-04-30  Tom Tromey  <tom@tromey.com>

	* python.texi (Types In Python): Document Type.align.

2018-04-13  Andreas Arnez  <arnez@linux.vnet.ibm.com>

	* gdb.texinfo (Symbols): Mention the fact that "info
	variables/functions/types" show source files and line numbers.

2018-04-13  Markus Metzger  <markus.t.metzger@intel.com>

	* gdb.texinfo: Document set/show record btrace cpu.

2018-03-27  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Ada Settings): New subsubsection.

2018-03-26  Tom Tromey  <tom@tromey.com>

	PR backtrace/15582:
	* gdb.texinfo (Backtrace): Mention "hide" argument.

2018-03-26  Tom Tromey  <tom@tromey.com>

	* gdb.texinfo (Backtrace): Describe options individually.

2018-03-19  Tom Tromey  <tom@tromey.com>

	* observer.texi: Remove.

2018-03-04  John Baldwin  <jhb@FreeBSD.org>

	* gdb.texinfo (Debugging Output): Document "set/show debug
	fbsd-nat".

2018-02-19  Andrew Burgess  <andrew.burgess@embecosm.com>

	* gdb.texinfo (Machine Code): Additional information about "info
	line" command.

2018-01-15  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	* gdb.texinfo (gdb-add-index man): Add pindex.

2018-01-15  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	* gdb.texinfo (set cwd): Add period.
	(gdb-add-index man): Move anchor.

2017-01-12  Tom Tromey  <tom@tromey.com>
	    Sergio Durigan Junior  <sergiodj@redhat.com>

	* gdb.texinfo (Index Files): Mention gdb-add-index.
	(gdb-add-index man): New section.
	* Makefile.in (gdb-add-index.1): New rule to generate manpage
	from gdb.texinfo.

2018-01-11  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	* gdb.texinfo (pwd): Fix whitespace.

2018-01-09  John Baldwin  <jhb@FreeBSD.org>

	* gdb.texinfo (pwd): Update cross-reference for Process Information
	node and remove explicit /proc reference.
	(Native): Rename subsection from SVR4 Process Information to
	Process Information.
	(Process Information): Reword introduction to be less /proc
	centric.  Document support for "info proc" on FreeBSD.

2018-01-03  Xavier Roirand  <roirand@adacore.com>

	* gdb.texinfo (Set Catchpoints): Add documentation for new
	"catch handlers" action.

2017-12-27  Stafford Horne  <shorne@gmail.com>

	* gdb.texinfo (Target Description Format): Explain that arbitrary
	strings are now allowed for register groups.

2017-12-27  Stafford Horne  <shorne@gmail.com>

	* gdb.texinfo (Registers): Document info reg $reggroup feature.

2017-12-15  Sergio Durigan Junior  <sergiodj@redhat.com>

	PR cli/16224
	* gdb.texinfo (ptype): Add documentation for new flag '/o'.

2017-12-13  Simon Marchi  <simon.marchi@ericsson.com>

	* python.texi (Manipulating breakpoints using Python): Document
	qualified parameter to gdb.Breakpoint.

2017-12-13  Simon Marchi  <simon.marchi@ericsson.com>

	* python.texi (Manipulating breakpoints using Python): Split doc
	of Breakpoint.__init__ in two, split text in multiple
	paragraphs, don't nest parameter square brackets.

2017-12-12  Stafford Horne  <shorne@gmail.com>
	    Stefan Wallentowitz  <stefan@wallentowitz.de>
	    Franck Jullien  <franck.jullien@gmail.com>
	    Jeremy Bennett  <jeremy.bennett@embecosm.com>

	* gdb.texinfo: Add OpenRISC documentation.

2017-12-08  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (Index Files): Document .debug_names and -dwarf-5.

2017-12-07  Keith Seitz  <keiths@redhat.com>

	* gdb.texinfo (Symbols): Document "set print type nested-type-limit"
	and "show print type nested-type-limit".

2017-12-07  Phil Muldoon  <pmuldoon@redhat.com>

       * python.texi (Breakpoints In Python): Add text relating
	to allowed explicit locations and keywords in gdb.Breakpoints.

2017-12-04  Tom Tromey  <tom@tromey.com>

	* gdb.texinfo (Rust): Update trait object status

2017-12-01  Andrew Cagney  <cagney@redhat.com>
	    Joel Brobecker  <brobecker@adacore.com>
	    Sergio Durigan Junior  <sergiodj@redhat.com>

	* gdb.texinfo (File Options): Document --readnever.
	(Commands to Specify Files): Likewise, for 'symbol-file' and
	'add-symbol-file'.

2017-11-29  Pedro Alves  <palves@redhat.com>

	PR c++/19436
	* gdb.texinfo (Debugging C Plus Plus): Document setting
	breakpoints in functions with ABI tags.

2017-11-29  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Linespec Locations): Document how "function" is
	interpreted in C++ and Ada.  Document "-qualified".
	(Explicit Locations): Document how "-function" is interpreted in
	C++ and Ada.  Document "-qualified".

2017-11-26  Dominik Czarnota  <dominik.b.czarnota@gmail.com>

	PR gdb/21945
	* gdb.texinfo (Search Memory): Update description and example
	about how to search a string without NULL terminator.

2017-11-24  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (GDB/MI Ada Exception Information): Document
	new "exception-message" field.

2017-11-24  Simon Marchi  <simon.marchi@ericsson.com>

	* gdb.texinfo (Memory Map Format): Update gdb-memory-map.dtd.

2017-11-24  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Completion): Update need-quoting examples.  Remove
	false claim that GDB inserts quoting automatically.
	(Symbols): Add anchor.

2017-11-22  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdb.texinfo (Requirements): Document use of GNU MPFR.

2017-11-16  Phil Muldoon  <pmuldoon@redhat.com>

	* python.texi (Basic Python): Add rbreak documentation.

2017-11-07  Xavier Roirand  <roirand@adacore.com>
	    Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Set Breaks): Document support for breakpoint
	location ranges in the enable/disable commands.

2017-10-04  Sergio Durigan Junior  <sergiodj@redhat.com>

	* gdb.texinfo (Starting your Program) <The working directory.>:
	Mention remote debugging.
	(Working Directory) <Your Program's Working Directory>:
	Likewise.
	(Connecting) <Remote Packet>: Add "set-working-dir"
	and "QSetWorkingDir" to the table.
	(Remote Protocol) <QSetWorkingDir>: New item, explaining the
	packet.

2017-10-04  Sergio Durigan Junior  <sergiodj@redhat.com>

	* gdb.texinfo (Starting your Program) <The working directory.>:
	Mention new "set cwd" command.
	(Working Directory) <Your Program's Working Directory>:
	Rephrase to explain that "set cwd" exists and is the default
	way to change the inferior's cwd.

2017-09-25  Andreas Arnez  <arnez@linux.vnet.ibm.com>

	* gdb.texinfo (S/390 and System z Features): Document the new
	features org.gnu.gdb.s390.gs and org.gnu.gdb.s390.gsbc.

2017-09-21  Kevin Buettner  <kevinb@redhat.com>

	* gdb.texinfo (qXfer:threads:read): Add documentation for handle
	attribute.

2017-09-21  Kevin Buettner  <kevinb@redhat.com>

	* python.texi (Inferiors In Python): Add description for method
	Inferior.thread_from_thread_handle.

2017-09-19  John Baldwin  <jhb@FreeBSD.org>

	* gdb.texinfo (Starting your Program): Add description of
	starti command.  Mention starti command as an alternative for
	debugging the elaboration phase.

2017-09-16  Simon Marchi  <simon.marchi@ericsson.com>

	* gdb.texinfo (Maintenance Commands): Document filter parameter
	of "maint selftest".  Document "maint info selftests" command.

2017-09-11  Tom Tromey  <tom@tromey.com>

	* python.texi (Events In Python): Document new events.

2017-09-04  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Variables) <Program Variables>: Document inspecting
	no-debug-info variables.
	(Symbols) <Examining the Symbol Table>: Document inspecting
	no-debug-info types.
	(Calling) <Calling functions with no debug info>: New subsection,
	documenting calling no-debug-info functions.
	(Non-debug DLL Symbols) <Working with Minimal Symbols>: Update.

2017-08-31  Sergio Durigan Junior  <sergiodj@redhat.com>

	* gdb.texinfo (set environment): Add @anchor.  Explain that
	environment variables set by the user are sent to GDBserver.
	(unset environment): Likewise, but for unsetting variables.
	(Connecting) <Remote Packet>: Add "environment-hex-encoded",
	"QEnvironmentHexEncoded", "environment-unset", "QEnvironmentUnset",
	"environment-reset" and "QEnvironmentReset" to the table.
	(Remote Protocol) <QEnvironmentHexEncoded, QEnvironmentUnset,
	QEnvironmentReset>: New item, explaining the packet.

2017-08-23  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (Compiling and Injecting Code): Add to subsection
	"Compiler search for the compile command" descriptions of set
	compile-gcc and show compile-gcc.

2017-08-07  Weimin Pan  <weimin.pan@oracle.com>

	* gdb.texinfo (Architectures): Add new Sparc64 section to document
	ADI support.
	* NEWS: Add "adi examine" and "adi assign" commands.

2017-08-18  Yao Qi  <yao.qi@linaro.org>

	* gdb.texinfo (Server): Document "--selftest".

2017-08-16  Ruslan Kabatsayev  <b7.10110111@gmail.com>

	* gdb.texinfo (TUI Single Key Mode): Document the new shortcuts in
	Single-Key mode.

2017-08-12  Sergio Durigan Junior  <sergiodj@redhat.com>

	PR gdb/21925
	* gdb.texinfo (Starting) <startup-with-shell>: Fix typo ("show
	set...").

2017-08-09  Simon Marchi  <simon.marchi@ericsson.com>

	* gdb.texinfo (Packets): Fix Z0 cmd_list doc referring to
	conditional expression.

2017-07-31  Simon Marchi  <simon.marchi@ericsson.com>

	* agentexpr.texi (rot): Fix symbolic description, improve
	textual description.

2017-07-26  Yao Qi  <yao.qi@linaro.org>

	* gdb.texinfo (Maintenance Commands): Document command
	"maint check xml-descriptions".

2017-07-26  Yao Qi  <yao.qi@linaro.org>

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

2017-07-18  Yao Qi  <yao.qi@linaro.org>

	* gdb.texinfo (Maintenance Commands): Improve the doc to
	command "maint print c-tdesc".

2017-06-20  Sergio Durigan Junior  <sergiodj@redhat.com>

	PR gdb/21606
	* python.texi (Python representation of Symbols.): Replace
	SYMBOL_FUNCTION_DOMAIN by SYMBOL_FUNCTIONS_DOMAIN, fixing typo.
	* guile.texi (Guile representation of Symbols.): Likewise.

2017-06-11  Simon Marchi  <simon.marchi@ericsson.com>

	* gdb.texinfo (Optional Messages about Internal Happenings):
	Document {set,show} debug separate-debug-file commands.

2017-06-07  Sergio Durigan Junior  <sergiodj@redhat.com>

	* gdb.texinfo (Starting) <startup-with-shell>: Add @anchor.
	(Connecting) <Remote Packet>: Add "startup-with-shell"
	and "QStartupWithShell" to the table.
	(Remote Protocol) <QStartupWithShell>: New item, explaining the
	packet.

2017-05-22  Andrew Burgess  <andrew.burgess@embecosm.com>

	* gdb.texinfo (Packets): Document vMustReplyEmpty packet.

2017-05-01  Tim Wiederhake  <tim.wiederhake@intel.com>

	* python.texi (Recording in Python): Factor out the documentation of
	gdb.RecordInstruction's super class.

2017-05-01  Tim Wiederhake  <tim.wiederhake@intel.com>

	* python.texi (Recording in Python): Replace gdb.BtraceFunction with
	gdb.RecordFunctionSegment.  Rename prev_sibling and next_sibling to
	prev and next.

2017-05-01  Tim Wiederhake  <tim.wiederhake@intel.com>

	* python.texi (Recording in Python): Replace gdb.BtraceInstruction with
	gdb.RecordInstruction

2017-05-01  Tim Wiederhake  <tim.wiederhake@intel.com>

	* python.texi (Recording in Python): Add documentation for
	gdb.RecordGap and remove documentation of special cases for
	gdb.BtraceInstruction.

2017-05-01  Tim Wiederhake  <tim.wiederhake@intel.com>

	* python.texi (Recording in Python): Remove Record.ptid defvar.

2017-04-21  Simon Marchi  <simon.marchi@ericsson.com>

	* gdb.texinfo (GDB/MI Thread Information): Add missing
	fields, re-word some things.
	(GDB/MI Thread Commands): Describe fields found in the output of
	-thread-info, remove description of fields in the
	thread output tuple, replace with a cross-reference to "GDB/MI
	Thread Information".

2017-04-21  Simon Marchi  <simon.marchi@ericsson.com>

	* gdb.texinfo (GDB/MI Thread Commands): Remove "current" field
	from -thread-info output.

2017-03-28  Anton Kolesov  <anton.kolesov@synopsys.com>

	* gdb.texinfo (Synopsys ARC): Document "set debug arc 2".

2017-03-28  Anton Kolesov  <anton.kolesov@synopsys.com>

	* gdb.texinfo (Synopsys ARC): Add "maint print arc arc-instruction".

2017-03-22  Yao Qi  <yao.qi@linaro.org>

	* python.texi (Inferiors In Python): Remove @code from Python.

2017-03-21  Tim Wiederhake  <tim.wiederhake@intel.com>

	* python.texi (Recordings In Python): Document return type of
	gdb.BtraceInstruction.data.

2017-03-20  Marc-Andre Laperle  <marc-andre.laperle@ericsson.com>

	* gdb.texinfo (gdb/mi Symbol Query Commands): Document new MI
	command file-list-shared-libraries
	(GDB/MI Async Records): Update documentation of library-loaded with new
	field.

2017-03-16  Doug Evans  <dje@google.com>

	* guile.texi (Lazy Strings In Guile): Mention arrays.
	* python.texi (Lazy Strings In Python): Ditto.

2017-03-08  Jiong Wang  <jiong.wang@arm.com>

        * gdb.texinfo (Memory Protection Extensions): Add missing escape
	character "@".

2017-03-07  Walfred Tedeschi <walfred.tedeschi@intel.com>

	* Memory Protection Extensions: Add information about inferior
	calls.

2017-02-20  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (Print Settings, Tail Call Frames): Rename DW_OP_GNU_*,
	DW_TAG_GNU_* and DW_AT_GNU_*.

2017-02-14  Tim Wiederhake  <tim.wiederhake@intel.com>

	* python.texi (Recordings In Python): New section.

2017-02-14  Tom Tromey  <tom@tromey.com>

	PR python/13598:
	* python.texi (Events In Python): Document events.before_prompt.

2017-02-13  Luis Machado  <lgustavo@codesourcery.com>

	* gdb.texinfo (Target Commands): Document the optional offset
	argument for the load command.

2017-02-10  Martin Galvan  <martingalvan@sourceware.org>

	PR gdb/21122
	* gdb.texinfo (Breakpoints): Reword documentation to speak in terms of
	space-separated breakpoint lists.  Also add a missing @table command
	and @cindex for breakpoint lists.

2017-02-06  Ivo Raisr  <ivo.raisr@oracle.com>

	PR tdep/20936
	* gdb.texinfo: (Standard Target Features): Document SPARC features.
	(Sparc Features): New node.

2017-01-27  Walfred Tedeschi  <walfred.tedeschi@intel.com>

	* gdb.texinfo (i386 Features): Add system segment registers
	as feature.

2017-01-24  Simon Marchi  <simon.marchi@ericsson.com>

	* python.texi (Events In Python): Fix typo.

2017-01-20  Mike Wrighton  <mike_wrighton@codesourcery.com>
	    Luis Machado  <lgustavo@codesourcery.com>

	* gdb.texinfo (-target-flash-erase): New MI command description.
	(flash-erase): New CLI command description.

2017-01-04  John Baldwin  <jhb@FreeBSD.org>

	* gdb.texinfo (Contributors): Add SRI International and University
	of Cambridge for FreeBSD/mips.

2016-12-22  Doug Evans  <xdje42@gmail.com>

	* gdb.texinfo (Symbols): Update docs for symbol printing maintenance
	commands.

2016-12-02  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (User-defined Commands): Limit on number of
	arguments passed to user-defined commands removed; update.

2016-12-02  Pedro Alves  <palves@redhat.com>

	PR cli/20559
	* gdb.texinfo (Define): Add example of using "eval" to process a
	variable number of arguments.
	(Output) <eval>: Add anchor.

2016-11-30  Simon Marchi  <simon.marchi@polymtl.ca>

	* Makefile.in: Likewise.

2016-11-18  Andreas Arnez  <arnez@linux.vnet.ibm.com>

	* gdb.texinfo (GDB/MI Async Records): Add missing comma after
	xref.

2016-10-29  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Packets) <vCont>: Remove mention of default
	actions.

2016-10-26  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Packets): Clarify vCont packets with multiple
	actions that match a thread, and what happens when an action
	matches a thread that is already running.

2016-10-14  Simon Marchi  <simon.marchi@ericsson.com>

	* gdb.texinfo (Using Trace Files): Fix typo.
	(GDB/MI Tracepoint Commands): Likewise.

2016-10-14  Simon Marchi  <simon.marchi@ericsson.com>

	* gdb.texinfo (GDB/MI Tracepoint Commands): Document -ctf switch
	of -trace-save.

2016-10-06  Tom Tromey  <tom@tromey.com>

	* guile.texi (Types In Guile): Remove Java mentions.
	* python.texi (Types In Python): Remove Java mentions.
	* gdb.texinfo (Address Locations, Supported Languages)
	(Index Section Format): Remove Java mentions.

2016-08-15  Doug Evans  <dje@google.com>

	* gdb.texinfo (Target Description Format): Update docs on "end"
	field spec and field default type.

2016-10-03  Antoine Tremblay  <antoine.tremblay@ericsson.com>
2016-10-03  Simon Marchi  <simon.marchi@ericsson.com>

	PR gdb/20487
	* gdb.texinfo (Context management): Update mention of frame
	change notifications.
	(gdb/mi Async Records): Document frame field in
	=thread-select event.
	* observer.texi (GDB Observers): New user_selected_context_changed
	observer.

2016-09-28  Tom Tromey  <tom@tromey.com>

	* gdb.texinfo (Packets) <z0>: Use "software breakpoint" rather
	than "memory breakpoint".  Further document "kind".  Move
	protocol-details link earlier.
	<z1>: Document the cmd_list argument.  Fix typo.
	<g>: Remove incorrect sentence.
	(Stop Reply Packets): Document "OK" response to requests when in
	non-stop mode.
	<swbreak>: Use "software breakpoint" rather than "memory
	breakpoint".
	<create>: Document that "R" is ignored.
	<W, X, w>: Document formatting of "AA".
	(Notification Packets): Use "%Stop", not "%%Stop".

2016-09-21  Anton Kolesov  <anton.kolesov@synopsys.com>

	* gdb.texinfo (Embedded Processors): Document ARC.
	(Synopsys ARC): New section.
	(Standard Target Features): Document ARC features.
	(ARC Features): New section.

2016-09-21  Simon Marchi  <simon.marchi@ericsson.com>

	* .gitignore: New file.

2016-08-24  Simon Marchi  <simon.marchi@ericsson.com>

	* gdb.texinfo (Input/Output): Mention possibility to unset
	inferior-tty.

2016-07-25  Tim Wiederhake  <tim.wiederhake@intel.com>

	* gdb.texinfo: Resume btrace on reconnect.

2016-07-23  Gabriel Krisman Bertazi  <gabriel@krisman.be>

	* gdb.texinfo (Set Catchpoints): Add 'group' argument to catch
	syscall.

2016-06-30  Руслан Ижбулатов  <lrn1986@gmail.com>

	* gdb.texinfo (Cygwin Native): Document the new 'signal-event'
	command.

2016-07-13  Tom Tromey  <tom@tromey.com>

	PR python/15620, PR python/18620:
	* python.texi (Events In Python): Document new breakpoint events.

2016-07-13  Tom Tromey  <tom@tromey.com>

	PR python/17698:
	* python.texi (Breakpoints In Python): Document
	Breakpoint.pending.

2016-07-13  Tom Tromey  <tom@tromey.com>

	* python.texi (Breakpoints In Python): Move table of types and
	table of watchpoint types earlier in node.

2016-07-12  Tom Tromey  <tom@tromey.com>

	PR python/19293:
	* python.texi (Frames In Python): Document
	gdb.invalidate_cached_frames.

2016-06-21  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Interpreters): Update intepreter-exec section,
	document new-ui and explain use case.

2016-06-17  Yan-Ting Lin  <currygt52@gmail.com>

	* gdb.texinfo (Standard Target Features): Document NDS32 features.
	(NDS32 Features): New Section.

2016-06-09  Toshihito Kikuchi  <k.toshihito@yahoo.de>

	* gdb.texinfo (Examining Memory): Document negative repeat
	count in the 'x' command.

2016-06-06  Simon Marchi  <simon.marchi@ericsson.com>

	* gdb.texinfo (GDB/MI Async Records): Document method and
	format fields in =record-started.
	* observer.texi (record_changed): Add method and format
	parameters.

2016-05-27  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (General Query Packets): Move the description of the
	response before the long list of the specific 'read' and 'write'
	requests.

2016-05-23  Tom Tromey  <tom@tromey.com>

	* python.texi (Basic Python): Document gdb.breakpoints return.

2016-05-24  Tom Tromey  <tom@tromey.com>

	PR gdb/19194:
	* gdb.texinfo (gdb man): Fix typo.

2016-05-17  Tom Tromey  <tom@tromey.com>

	* gdb.texinfo (Supported Languages): Mention Rust.  Update menu.
	(Rust): New node.

2016-05-17  Tom Tromey  <tom@tromey.com>

	* gdb.texinfo (Maintenance Commands): Document "maint selftest".

2016-04-27  Yao Qi  <yao.qi@linaro.org>

	* gdb.texinfo (tfind): Complete doc about tfind without
	argument.

2016-04-13  Antoine Tremblay  <antoine.tremblay@ericsson.com>

	* agentexpr.texi (byte): Fix zero_ext description.

2016-03-31  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (M32R/SDI): Delete node.
	(MIPS Embedded): Remove references to the MIPS remote debugging
	protocol, PMON and variants, and the associated commands.

2016-03-15  Doug Evans  <dje@google.com>

	* gdb.texinfo (Target Descriptions): New menu item "Enum Target Types".
	(Target Description Format): Mention enum types.  Update docs on
	flags types.
	(Predefined Target Types): Add "bool".
	(Enum Target Types): New node.

2016-03-15  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Tracepoint Actions): Fix typo.

2016-03-15  Pedro Alves  <palves@redhat.com>
	    Andreas Arnez  <arnez@linux.vnet.ibm.com>
	    Marcin Kościelnicki  <koriakin@0x04.net>

	* gdb.texinfo (Tracepoint Actions): Document possible
	unreliability of '$_ret'.

2016-03-11  Andrew Burgess  <andrew.burgess@embecosm.com>

	* gdb.texinfo (Symbols): Document new 'maint info line-table'
	command.

2016-03-10  Simon Marchi  <simon.marchi@polymtl.ca>

	* gdb.texinfo (Convenience Functions): Document $_as_string.

2016-02-23  Doug Evans  <dje@google.com>

	* gdb.texinfo (Skipping Over Functions and Files): Document new
	options to "skip" command.  Update docs of output of "info skip".

2016-02-18  Walfred Tedeschi  <walfred.tedeschi@intel.com>

	* gdb.texinfo (Signals): Add bound violation display hints for
	a SIGSEGV.

2016-02-18  Marcin Kościelnicki  <koriakin@0x04.net>

	* gdb.texinfo (Trace File Format): Add documentation for description
	section lines.

2016-02-10  Marcin Kościelnicki  <koriakin@0x04.net>

	* gdb.texinfo (Trace File Format): Remove misleading information
	about register block ordering.

2016-02-01  Doug Evans  <dje@google.com>

	* gdb.texinfo (Value Sizes): Fix typo.

2016-02-01  Doug Evans  <dje@google.com>

	* gdb.texinfo (Skipping Over Functions and Files): Fix typo.

2016-02-01  Andrew Burgess  <andrew.burgess@embecosm.com>

	* gdb.texinfo (Value Sizes): New section.
	(Data): Add the 'Value Sizes' node to the menu.

2016-01-26  John Baldwin  <jhb@FreeBSD.org>

	* gdb.texinfo (Debugging Output): Fix subject verb disagreements.

2016-01-19  John Baldwin  <jhb@FreeBSD.org>

	* gdb.texinfo (Debugging Output): Document "set/show debug fbsd-lwp".

2016-01-18  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Threads): Mention that GDB displays the ID and name
	of the thread that hit a breakpoint or received a signal.

2016-01-15  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Threads) <thread ID lists>: Document star ranges.

2016-01-13  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Threads): Document the $_gthread convenience
	variable.
	(Convenience Vars): Likewise.

2016-01-13  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Threads): Document "info threads -gid".

2016-01-13  Pedro Alves  <palves@redhat.com>

	* python.texi (Breakpoints In Python) <Breakpoint.thread>: Add
	anchor.
	(Threads In Python): Document new InferiorThread.global_num
	attribute.

2016-01-07  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Threads): Document per-inferior thread IDs,
	qualified thread IDs, global thread IDs and thread ID lists.
	(Set Watchpoints, Thread-Specific Breakpoints): Adjust to refer to
	thread IDs.
	(Convenience Vars): Document the $_thread convenience variable.
	(Ada Tasks): Adjust to refer to thread IDs.
	(GDB/MI Async Records, GDB/MI Thread Commands, GDB/MI Ada Tasking
	Commands, GDB/MI Variable Objects): Update to mention global
	thread IDs.
	* guile.texi (Breakpoints In Guile)
	<breakpoint-thread/set-breakpoint-thread breakpoint>: Mention
	global thread IDs instead of thread IDs.
	* python.texi (Threads In Python): Adjust documentation of
	InferiorThread.num.
	(Breakpoint.thread): Mention global thread IDs instead of thread
	IDs.

2016-01-13  Pedro Alves  <palves@redhat.com>

	* python.texi (Threads In Python): Document
	InferiorThread.inferior.

2016-01-13  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Inferiors and Programs): Document the $_inferior
	convenience variable.
	(Convenience Vars): Likewise.

2016-01-12  Josh Stone  <jistone@redhat.com>
	    Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* gdb.texinfo (Remote Configuration): List the QCatchSyscalls packet.
	(Stop Reply Packets): List the syscall entry and return stop reasons.
	(General Query Packets): Describe QCatchSyscalls, and add it to the
	table and the detailed list of stub features.

2016-01-12  Pedro Alves  <palves@redhat.com>

	Remove use of the registered trademark symbol throughout.

2016-01-12  Yao Qi  <yao.qi@linaro.org>

	* gdb.texinfo (Interrupts): Update the document on handling
	interrupt when program is stopped.

2015-12-11  Don Breazeal  <donb@codesourcery.com>

	* gdb.texinfo (Forks): Correct Linux kernel version where
	fork and exec events are supported, add notes about support
	of these events in target remote mode.
	(Connecting): Reorganize and clarify distinctions between
	target remote, extended-remote, and multiprocess.
	Reorganize related text from separate sections into new
	sections.
	(Server): Note effects of target extended-remote mode.
	Delete section on Multi-Process Mode for gdbserver.
	Move some text to "Connecting" node.

2015-12-10  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Threads): Replace warning with explanation
	about single-threaded programs.

2015-12-10  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Threads): Remove mention of SGI.
	(Forks): Remove mention of HP-UX.
	(Breakpoints): Remove mention of HP-UX.
	(Set Watchpoints) <hardware watchpoints>: Don't mention HP-UX.
	Reword in terms of architectures.
	(Set Catchpoints) <catch exec, catch fork, catch vfork>: Don't
	mention supported systems.
	(Convenience Vars): Don't mention HP-UX.
	(Jumping): Remove mention of HP-UX in comment.
	(Files) <shared libraries>: Update supported shared library types
	list.  Remove mention of HP-UX.
	(Native): Remove HP-UX subsection.
	(SVR4 Process Information): Remove mention of HP-UX.

2015-12-10  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Stack): Reorder menu.

2015-12-09  Luis Machado  <lgustavo@codesourcery.com>

	* gdb.texinfo (GDB/MI Variable Objects): Update text to mention
	-var-set-format's new zero-hexadecimal format.

2015-12-08  Pierre-Marie de Rodat  <derodat@adacore.com>

	* gdb.texinfo (Ada Mode Into): Move overloading support
	description to its own node.
	(Overloading support for Ada): New node.

2015-11-30  Pedro Alves  <palves@redhat.com>

	PR 14618
	* gdb.texinfo (Stop Reply Packets): Document the N stop reply.
	(Remote Configuration): Add the "set/show remote
	no-resumed-stop-reply" to the available settings table.
	(General Query Packets): Document the "no-resumed" qSupported
	feature.

2015-11-30  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Remote Configuration): List "set/show remote
	thread-events" command in configuration table.
	(Stop Reply Packets): Document "T05 create" stop
	reason and 'w' stop reply.
	(General Query Packets): Document QThreadEvents packet.  Document
	QThreadEvents qSupported feature.

2015-11-30  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Bootstrapping): Add "interrupting remote targets"
	anchor.
	(Packets): Document vCtrlC.

2015-11-26  Simon Marchi  <simon.marchi@ericsson.com>

	* gdb.texinfo (Thread List Format): Mention thread names.

2015-11-24  Pedro Alves  <palves@redhat.com>

	PR 17539
	* gdb.texinfo (Inferiors and Programs): Adjust "maint info
	program-spaces" example to ascending order listing.
	(Threads): Adjust "info threads" example to ascending order
	listing.
	(Forks): Adjust "info inferiors" example to ascending order
	listing.

2015-11-04  Markus Metzger  <markus.t.metzger@intel.com>

	* gdb.texinfo (Process Record and Replay): Document "record
	instruction-history" modifiers.

2015-10-12  Andrew Burgess  <andrew.burgess@embecosm.com>

	* gdb.texinfo (Frames): Remove 'frame' and 'select-frame'
	description.
	(Frame Filter Management): Move to later in the 'Examining the
	Stack' chapter.
	(Selection): Add entry for 'select-frame'.

2015-09-25  Doug Evans  <dje@google.com>

	* gdb.texinfo (Process Record and Replay): Fix syntax of
	"record instruction-history begin, end" and
	"record function-call-history begin, end".

2015-09-22  Simon Marchi  <simon.marchi@ericsson.com>

	* gdb.texinfo (Specifying Source Directories): Fix
	substitute-path example.

2015-09-18  Markus Metzger  <markus.t.metzger@intel.com>

	* gdb.texinfo (All-Stop Mode): Describe new scheduler-locking mode.

2015-09-15  Pedro Alves  <palves@redhat.com>

	PR remote/18965
	* gdb.texinfo (Stop Reply Packets): Revert previous change to
	the vforkdone description.

2015-09-15  Pedro Alves  <palves@redhat.com>

	PR remote/18965
	* gdb.texinfo (Stop Reply Packets): Explain that vforkdone's 'r'
	part indicates the thread ID of the parent process.

2015-09-15  Yao Qi  <yao.qi@linaro.org>

	* gdb.texinfo (General Query Packets): Add vContSupported to
	tables of 'gdbfeatures' and 'stub features' supported in the
	qSupported packet, as well as to the list containing stub
	feature details.

2015-09-11  Don Breazeal  <donb@codesourcery.com>

	* gdb.texinfo (Remote Configuration): Add exec event
	feature to table of packet settings.
	(Stop Reply Packets): Add exec events to the list of stop
	reasons.
	(General Query Packets): Add exec events to tables of
	'gdbfeatures' and 'stub features' supported in the qSupported
	packet, as well as to the list containing stub feature
	details.

2015-08-24  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Remote Configuration): Document the "set/show
	remote multiprocess-extensions-packet" commands.

2015-08-24  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Embedded Processors) <ARM>: Remove references to RDI.
	<M32R>: Remove references to M32R/D.
	<M68K>: Remove references to target dbug.
	<MIPS Embedded>: Remove references to target r3900 and target
	array.
	<PowerPC Embedded>: Remove references to target dink32 and target
	ppcbug, target sds
	<PA, Sparclet, Sparclite, Z8000>: Delete nodes.

2015-08-18  Andrew Burgess  <andrew.burgess@embecosm.com>

	* gdb.texinfo (GDB Files): Add 'File Caching' menu entry.

2015-08-18  Andrew Burgess  <andrew.burgess@embecosm.com>

	* gdb.texinfo (File Caching): Document "set/show debug bfd-cache".

2015-08-18  Andrew Burgess  <andrew.burgess@embecosm.com>

	* gdb.texinfo (Maintenance Commands): Move documentation of "main
	info bfds" to...
	(File Caching): A New section.  Outline bfd caching, and add new
	description for "main set/show bfd-sharing".

2015-08-14  Doug Evans  <xdje42@gmail.com>

	* gdb.texinfo (Machine Code): Update docs for mixed source/assembly
	disassembly.
	(GDB/MI Data Manipulation): Update docs for new disassembly modes.

2015-08-11  Keith Seitz  <keiths@redhat.com>

	* gdb.texinfo (Thread-Specific Breakpoints, Printing Source Lines):
	Use "location(s)"instead of "linespec(s)".
	(Specifying a Location): Rewrite.
	Add subsections describing linespec, address, and explicit locations.
	Add node/menu for each subsection.
	(Source and Machine Code, C Preprocessor Macros)
	(Create and Delete Trace points)
	(Extensions for Ada Tasks): Use "location(s)" instead of "linespec(s)".
	(Continuing at a Different Address): Remove "linespec" examples.
	Add reference to "Specify a Location"
	(The -break-insert Command): Rewrite.  Add anchor.
	Add reference to appropriate manual section discussing locations.
	(The -dprintf-insert Command): Refer to -break-insert for
	specification of 'location'.

2015-08-07  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Maintenance Commands): Document "maint set/show
	target-non-stop".

2015-08-07  Markus Metzger  <markus.t.metzger@intel.com>

	* gdb.texinfo (Process Record and Replay): Document prefixing of
	speculatively executed instructions in the "record instruction-history"
	command.

2015-07-20  Doug Evans  <dje@google.com>

	* Makefile.in (STABS_DOC_BUILD_INCLUDES): Add gdb-cfg.texi, GDBvn.texi.

2015-07-16  Doug Evans  <dje@google.com>

	* stabs.texinfo: @include gdb-cfg.texi.

2015-07-15  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Revert the previous 2 commits:
	gdbserver build-id attribute generator
	Validate symbol file using build-id

2015-07-15  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (Files): Add 'set validate-build-id'
	and 'show validate-build-id'.

2015-07-15  Aleksandar Ristovski  <aristovski@qnx.com
	    Jan Kratochvil  <jan.kratochvil@redhat.com>

	gdbserver build-id attribute generator.
	* gdb.texinfo (Library List Format for SVR4 Targets): Add
	'build-id' in description, example, new attribute in dtd.

2015-07-08  Andrew Burgess  <andrew.burgess@embecosm.com>

	* gdb.texinfo (Selection): Update documentation for 'frame'
	command.

2015-07-02  Markus Metzger  <markus.t.metzger@intel.com>

	* gdb.texinfo (Maintenance Commands): Document "maint btrace"
	commands.

2015-07-02  Markus Metzger  <markus.t.metzger@intel.com>

	* gdb.texinfo (Process Record and Replay): Spell out that variables
	and registers are not available during btrace replay.
	Describe the new "record btrace pt" command.
	Describe the new "set|show record btrace pt buffer-size" options.
	(General Query Packets): Describe the new Qbtrace:pt and
	Qbtrace-conf:pt:size packets.
	Expand "bts" to "Branch Trace Store".
	Update the branch trace DTD.

2015-06-26  Patrick Palka  <patrick@parcs.ath.cx>

	* gdb.texinfo (Command History): Document the new option
	"history remove-duplicates".

2015-06-19  Doug Evans  <dje@google.com>

	* stabs.texinfo (ELF Linker Relocation): Mention Sun stabs is no
	longer supported.

2015-06-17  Patrick Palka  <patrick@parcs.ath.cx>

	* gdb.texinfo (Command History): Mention that setting
	GDBHISTSIZE to the empty string disables history truncation.

2015-06-17  Patrick Palka  <patrick@parcs.ath.cx>

	PR gdb/16999
	* gdb.texinfo (Command History): Mention new GDBHISTSIZE
	behavior.

2015-06-17  Patrick Palka  <patrick@parcs.ath.cx>

	* gdb.texinfo (Command History): Replace occurrences of HISTSIZE
	with GDBHISTSIZE.

2015-06-15  Simon Marchi  <simon.marchi@ericsson.com>

	* gdb.texinfo (GDB/MI Data Manipulation): Clarify usage of
	bytes and memory units for -data-{read,write}-memory-bytes.
	(Packets): Same for m, M and X packets.
	* python.texi (Inferiors In Python): Same for read_memory and
	write_memory.

2015-06-10  Jon Turney  <jon.turney@dronecode.org.uk>

	* gdb.texinfo (Separate Debug Files): Document that PE is also
	supported.

2015-06-13  Andrew Burgess  <andrew.burgess@embecosm.com>

	* gdb.texinfo (TUI Commands): Bring all 'tui reg' commands into a
	single table entry.

2015-06-10  Walfred Tedeschi  <walfred.tedeschi@intel.com>

	* gdb.textinfo (i386): Fix "@end table" end and "@table" placement.


2015-06-10  Gary Benson <gbenson@redhat.com>

	* gdb.texinfo (Remote Configuration): Document the
	"set/show remote hostio-setfs-packet" command.
	(Host I/O Packets): Document the vFile:setfs packet.

2015-06-10  Gary Benson <gbenson@redhat.com>

	* gdb.texinfo (Debugging Output): Document the "set/show debug
	linux-namespaces" command.

2015-06-10  Walfred Tedeschi  <walfred.tedeschi@intel.com>
	    Mircea Gherzan  <mircea.gherzan@intel.com>

	* gdb.texinfo (i386): Add documentation about "show mpx bound"
	and "set mpx bound".

2015-05-27  Doug Evans  <dje@google.com>

	* gdb.texinfo (Debugging Output): Mention set/show debug dwarf-line.

2015-05-26  Doug Evans  <dje@google.com>

	* gdb.texinfo (Debugging Output): Update for DWARF "set debug"
	command renamings.
	(Maintenance Commands): Update for DWARF "set debug" command renamings.

2015-05-26  Andrew Burgess  <andrew.burgess@embecosm.com>

	* gdb.texinfo (TUI Commands): Add 'tui reg prev' details.

2015-05-22  Andrew Burgess  <andrew.burgess@embecosm.com>

	* gdb.texinfo (TUI): Include 'tui enable' in the introduction.
	(TUI Commands): Add 'tui enable' and 'tui disable' details.

2015-05-16  Doug Evans  <xdje42@gmail.com>

	* guile.texi (Memory Ports in Guile): Document support for unbuffered
	memory ports.

2015-05-16  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (Compiling and Injecting Code): Add compile print.

2015-05-12  Don Breazeal  <donb@codesourcery.com>

	* gdb.texinfo (Forks): Note that fork debugging is
	supported in extended mode.
	(Remote Configuration): Add fork event features to table
	of packet settings.
	(Stop Reply Packets): Add fork events to list of stop reasons.
	(General Query Packets): Add fork events to tables of
	'gdbfeatures' and 'stub features' supported in the qSupported
	packet, as well as to the list containing stub feature
	details.

2015-05-12  Gary Benson <gbenson@redhat.com>

	* gdb.texinfo (General Query Packets): Document
	qXfer:exec-file:read with empty annex.

2015-05-09  Siva Chandra Reddy  <sivachandra@google.com>

	* python.texi (Values From Inferior): Add descriptions of new
	methods gdb.Value.reference_value and gdb.Value.const_value.

2015-05-06  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Files): Add "info dll" documentation.
	(Cygwin Native): Remove "info dll" documentation.

2015-04-29  Doug Evans  <dje@google.com>

	* python.texi (Xmethod API) <gdb.XMethodWorker.get_result_type>:
	Document.
	(Writing an Xmethod): Add get_result_type to example.

2015-04-28  Sasha Smundak  <asmundak@google.com>

	* python.texi: New method documented.

2015-04-24  Andrew Burgess  <andrew.burgess@embecosm.com>

	* gdb.texinfo (Dump/Restore Files): Add detail about verilog dump
	format.

2015-04-24  Doug Evans  <dje@google.com>

	* python.texi (Xmethods In Python): Fix name of method to call the
	xmethod.

2015-04-17  Gary Benson <gbenson@redhat.com>

	* gdb.texinfo (Connecting to a Remote Target): Mention that
	GDB can access program files from remote targets that support
	qXfer:exec-file:read and Host I/O packets.

2015-04-17  Gary Benson <gbenson@redhat.com>

	* gdb.texinfo (Remote Configuration): Document the "set/show
	remote pid-to-exec-file-packet" command.
	(General Query Packets): Document the qXfer:exec-file:read
	qSupported features.  Document the qXfer:exec-file:read packet.

2015-04-17  Gary Benson <gbenson@redhat.com>

	* gdb.texinfo (set sysroot): Document that "set sysroot" also
	applies to executable paths if supplied to GDB as absolute.

2015-04-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (Mode Options): Remove -xdb.

2015-04-10  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Compiling and Injecting Code): Describe set debug
	compile, show debug compile.  New subsection Compilation options for
	the compile command.  New subsection Compiler search for the compile
	command.

2015-04-09  Andy Wingo  <wingo@igalia.com>

	* guile.texi (Frames In Guile): Describe frame-read-register.

2015-04-02  Gary Benson <gbenson@redhat.com>

	* gdb.texinfo (set sysroot): Document "target:".

2015-04-01  Sasha Smundak  <asmundak@google.com>

	* doc/python.texi (Writing a Frame Unwinder in Python): Add
	section.

2015-03-31  Sergio Durigan Junior  <sergiodj@redhat.com>

	PR corefiles/16092
	* gdb.texinfo (gcore): Mention new command 'set
	use-coredump-filter'.
	(set use-coredump-filter): Document new command.

2015-03-31  Antoine Tremblay  <antoine.tremblay@ericsson.com>

	* gdb.texinfo (Operating System Auxiliary Information): Add info os cpus
	documentation, reorder the info os entries in alphabetical order.

2015-03-26  Simon Marchi  <simon.marchi@ericsson.com>

	* gdb.texinfo (GDB/MI Data Manipulation): Fix copy-paste typo in
	-data-write-memory-bytes.

2015-03-24  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (test_step) <set scheduler-locking step>: No longer
	mention that threads may sometimes run unlocked.

2015-03-23  Yurij Grechishhev  <yurij.grechishhev@gmail.com>

	* gdb.texinfo (Remote configuration): Document "set/show
	serial parity" command.

2015-03-18  Gary Benson <gbenson@redhat.com>

	* gdb.texinfo (General Query Packets): Remove documentation
	for now-removed vFile:fstat qSupported features.

2015-03-11  Gary Benson <gbenson@redhat.com>

	* gdb.texinfo (Remote Configuration): Document the
	"set/show remote hostio-fstat-packet" command.
	(General Query Packets): Document the vFile:fstat
	qSupported features.
	(Host I/O Packets): Document the vFile:fstat packet.

2015-03-11  Andy Wingo  <wingo@igalia.com>

	* guile.texi (Objfiles In Guile): Document objfile-progspace.

2015-03-04  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Remote Configuration): Document the "set/show
	remote swbreak-feature-packet" and "set/show remote
	hwbreak-feature-packet" commands.
	(Packets) <Z0>: Add cross link to the "swbreak" stop reason's
	decription.
	(Stop Reply Packets): Document the swbreak and hwbreak stop
	reasons.
	(General Query Packets): Document the swbreak and hwbreak
	qSupported features.
	(Remote Non-Stop): Explain that swbreak and hwbreak are required.

2015-03-03  Philippe Proulx  <eeppeliteloop@gmail.com>

	* gdb.texinfo (gdb/mi Async Records): Fix duplicate syscall-entry
	under *stopped.

2015-03-02  Doug Evans  <xdje42@gmail.com>

	* gdb.texinfo (Specify Location): Fix syntax of filename:function.

2015-03-02  Andreas Arnez  <arnez@linux.vnet.ibm.com>

	* gdb.texinfo (S/390 and System z Features): Describe new feature
	"org.gnu.gdb.s390.vx".

2015-02-23  Sergio Durigan Junior  <sergiodj@redhat.com>

	PR gdb/18008
	* gdb.texinfo (maint internal-error, maint internal-warning, maint
	demangler-warning): Fix typo ("problam").

2015-02-19  David Taylor  <dtaylor@emc.com>

	* agentexpr.texi (Bytecode Descriptions): Fix summary line for setv.

2015-02-17  Jose E. Marchesi  <jose.marchesi@oracle.com>

	* gdb.texinfo (Static Probe Points): Add cindex `static probe
	point, DTrace'.
	(Static Probe Points): Modified to cover DTrace probes in addition
	to SystemTap probes.  Also modified to cover the `enable probe'
	and `disable probe' commands.

2015-02-17  Jose E. Marchesi  <jose.marchesi@oracle.com>

	* gdb.texinfo (Static Probe Points): Cover the `enable probe' and
	`disable probe' commands.

2015-02-12  David Taylor  <dtaylor@emc.com>

	* gdb.texinfo (Tracepoint Packets): Document the builtin and name
	fields of the QTDV packet.

2015-02-09  Markus Metzger  <markus.t.metzger@intel.com>

	* gdb.texinfo (Branch Trace Configuration Format): Add size.
	(Process Record and Replay): Describe new set|show commands.
	(General Query Packets): Describe Qbtrace-conf:bts:size packet.

2015-02-09  Markus Metzger  <markus.t.metzger@intel.com>

	* gdb.texinfo (Process Record and Replay): Describe the "record
	btrace bts" command.
	(General Query Packets): Describe qXfer:btrace-conf:read packet.
	(Branch Trace Configuration Format): New.

2015-01-31  Gary Benson <gbenson@redhat.com>
	    Doug Evans  <dje@google.com>

	* gdb.texinfo (Command Completion): Document new
	"set/show max-completions" option.

2015-01-31  Doug Evans  <xdje42@gmail.com>

	* gdb.texinfo (Symbols): Document new commands
	"maint print symbol-cache", "maint print symbol-cache-statistics",
	"maint flush-symbol-cache".  Document new option
	"maint set symbol-cache-size".

2015-01-31  Doug Evans  <xdje42@gmail.com>

	* gdb.texinfo (dotdebug_gdb_scripts section): Update docs to
	distinguish script files vs inlined scripts.
	* python.texi (Python Auto-loading): Ditto.

2015-01-30  Doug Evans  <dje@google.com>

	* gdb.texinfo (Symbols) <info source>: Output now contains producer
	string if present.

2015-01-27  Doug Evans  <dje@google.com>

	* python.texi (Objfiles In Python): Document Objfile.username.

2015-01-27  Doug Evans  <dje@google.com>

	* python.texi (Objfiles In Python) <Objfile.filename>: Improve docs.
	* guile.texi (Objfiles In Guile) <objfile-filename>: Improve docs.

2015-01-22  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (Threads): Describe -ascending for thread apply all.

2015-01-16  Eli Zaretskii  <eliz@gnu.org>

	* doc/gdb.texinfo (TUI Commands): Document the possible
	values of NAME argument to 'winheight' command.  Explain the
	effect of 'tabset' setting better.

2015-01-11  Doug Evans  <xdje42@gmail.com>

	PR gdb/15830
	* gdb.texinfo (Debugging C Plus Plus): Mention "demangle".
	(Symbols): Ditto.
	(Maintenance Commands): Delete docs for "maint demangle".

2014-12-31  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Files): Remove documentation of the
	"add-shared-symbol-files" and "assf" commands.
	(Cygwin Native): Remove documentation of the "dll-symbols"
	command.

2014-12-17  Doug Evans  <xdje42@gmail.com>

	* gdb.texinfo (Debugging Output): Document "debug symbol-lookup".

2014-12-12  Phil Muldoon  <pmuldoon@redhat.com>
	    Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (Altering): Update.
	(Compiling and Injecting Code): New node.

2014-12-12  Doug Evans  <dje@google.com>

	* python.texi (Objfiles In Python): Document gdb.lookup_objfile.

2014-12-12  Andreas Arnez  <arnez@linux.vnet.ibm.com>

	* gdb.texinfo: Document "maint print user-registers".

2014-12-08  Doug Evans  <dje@google.com>

	* python.texi (Objfiles In Python): Document Objfile.owner.

2014-12-04  Doug Evans  <dje@google.com>

	* python.texi (Objfiles In Python): Document
	Objfile.add_separate_debug_file.

2014-12-04  Doug Evans  <dje@google.com>

	* python.texi (Objfiles In Python): Document Objfile.build_id.

2014-12-02  Nick Bull  <nicholaspbull@gmail.com>

	* python.texi (Events In Python): Document new events
	InferiorCallPreEvent, InferiorCallPostEvent, MemoryChangedEvent
	and RegisterChangedEvent.

2014-11-30  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Add add-auto-load-scripts-directory.
	* gdb.texinfo (Auto-loading): Add add-auto-load-scripts-directory link.
	(objfile-gdbdotext file): Add add-auto-load-scripts-directory.

2014-11-30  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (Auto-loading safe path): Fix add-auto-load-safe-path
	description typo.

2014-10-30  Doug Evans  <dje@google.com>

	* python.texi (Progspaces In Python): Document ability to add
	random attributes to gdb.Progspace objects.
	(Objfiles In Python): Document ability to add random attributes to
	gdb.objfile objects.

2014-10-27  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Continuing and Stepping): Add cross reference to
	info on stepping and signal handlers.
	(Signals): Explain stepping and signal handlers.  Add context
	index entry, and cross references.

2014-10-20  Simon Marchi  <simon.marchi@ericsson.com>

	* python.texi (Breakpoints In Python): Add parenthesis after
	Breakpoint.delete.  Clarify Breakpoint.enabled description so
	that it contains "disable".

2014-10-17  Doug Evans  <dje@google.com>

	* python.texi (Events In Python): Document clear_objfiles event.

2014-10-17  Doug Evans  <dje@google.com>

	* python.texi (Objfiles In Python): Document new progspace attribute.

2014-10-17  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Ada Tasks and Core Files): Delete mention of Tru64.
	(SVR4 Process Information): Delete mention of OSF/1.

2014-10-01  Simon Marchi  <simon.marchi@ericsson.com>

	* gdb.texinfo (Miscellaneous gdb/mi Commands): Document new
	exit-code field in -list-thread-groups output.

2014-09-22  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

	* gdb.texinfo (Set Breaks): Add missing "@end table".

2014-09-22  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Set Breaks): Document that "set breakpoint
	always-inserted off" is the default mode now.  Delete
	documentation of "set breakpoint always-inserted auto".

2014-09-18  Doug Evans  <dje@google.com>

	* python.texi (Symbol Tables In Python): Document "producer"
	attribute of gdb.Symtab objects.

2014-09-16  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Starting) <run command>: Don't mention VxWorks.
	(Embedded OS): Remove VxWorks menu entry.
	(VxWorks): Remove node.

2014-09-13  Doug Evans  <xdje42@gmail.com>

	* gdb.texinfo (Signaling): Document new queue-signal command.

2014-09-06  Doug Evans  <xdje42@gmail.com>

	PR 15276
	* gdb.texinfo (Convenience Funs): Document $_caller_is,
	$_caller_matches, $_any_caller_is, $_any_caller_matches.

2014-09-03  Justin Lebar <jlebar@google.com>

	* python.texi (Types In Python): Type.template_argument(n) returns a
	gdb.Value or a gdb.Type and throws an exception if n is out of
	range.

2014-09-03  Sasha Smundak  <asmundak@google.com>

	* python.texi (Frames in Python): Add read_register description.

2014-08-04  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Debugging Output): Update for change to "set debug
	target".

2014-08-01  Masaki Muranaka  <monaka@monami-software.com>

	Pushed by Joel Brobecker  <brobecker@adacore.com>.
	* Makefile.in (transform): New variable.
	(install-man1, install-man5): Apply $(transform) to man file names.

2014-07-26  Doug Evans  <xdje42@gmail.com>

	PR guile/17177
	* guile.texi (Guile Pretty Printing API): Fix typo.
	Document set-pretty-printers!, pretty-printers.
	(Selecting Guile Pretty-Printers): Update.
	Mention program-space based pretty-printers.

2014-07-25  Pedro Alves  <palves@redhat.com>
	    Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Signaling) <signal command>: Explain what happens
	with multi-threaded programs.

2014-06-27  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (Maintenance Commands): Update the output of
	'maint print dummy-frames' command.

2014-06-24  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Screen Size): Improve indexing.

2014-06-19  Gary Benson  <gbenson@redhat.com>

	* gdb.texinfo (Maintenance Commands): Document new
	"maint set/show catch-demangler-crashes" option.

2014-06-19  Gary Benson  <gbenson@redhat.com>

	* gdb.texinfo (Maintenance Commands): Document new
	"maint demangler-warning" command and new
	"maint set/show demangler-warning" option.

2014-06-09  Siva Chandra Reddy  <sivachandra@google.com>

	* python.texi (Xmethod API): Add space before the opening
	parenthesis in function descriptions.

2014-06-06  Doug Evans  <xdje42@gmail.com>

	* guile.texi (Guile Configuration): Document guile-data-directory.

2014-06-06  Mingjie Xing  <mingjie.xing@gmail.com>

	* gdb.texinfo (Invoking GDB): Add -q and --quiet.

2014-06-04  Doug Evans  <xdje42@gmail.com>

	* guile.texi (Breakpoints In Guile): Update.

2014-06-03  Joel Brobecker  <brobecker@adacore.com>

	* python.texi (Xmethod API): Fix reference to "Progspaces In
	Python".

2014-06-03  Siva Chandra Reddy  <sivachandra@google.com>

	*  python.texi (Xmethods In Python, XMethod API)
	(Writing an Xmethod): New nodes.
	(Python API): New menu entries "Xmethods In Python",
	"Xmethod API", "Writing an Xmethod".

2014-06-02  Doug Evans  <xdje42@gmail.com>

	* guile.texi (Guile API): Add entry for Parameters In Guile.
	(GDB Scheme Data Types): Mention <gdb:parameter> object.
	(Parameters In Guile): New node.

2014-06-02  Doug Evans  <xdje42@gmail.com>

	* guile.texi (Guile API): Add entry for Commands In Guile.
	(Basic Guile) <parse-and-eval>: Add reference.
	(Basic Guile) <string->argv>: Move definition to Commands In Guile.
	(GDB Scheme Data Types): Mention <gdb:command> object.
	(Commands In Guile): New node.

2014-06-02  Doug Evans  <xdje42@gmail.com>

	* guile.texi (Guile API): Add entry for Progspaces In Guile.
	(GDB Scheme Data Types): Mention <gdb:progspace> object.
	(Progspaces In Guile): New node.

2014-05-30  Andrew Burgess  <aburgess@broadcom.com>

	* guile.texi (Frames In Guile): Mention FRAME_UNWIND_MEMORY_ERROR.
	* python.texi (Frames In Python): Mention
	gdb.FRAME_UNWIND_MEMORY_ERROR.

2014-05-29  Pedro Alves  <palves@redhat.com>
	    Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Non-Stop Mode): Remove "set target-async 1"
	from example.
	(Asynchronous and non-stop modes): Document '-gdb-set mi-async'.
	Mention that target-async is now deprecated.
	(Maintenance Commands): Document maint set/show target-async.

2014-05-29  Pedro Alves  <palves@redhat.com>

	* observer.texi (sync_execution_done, command_error): New
	subjects.

2014-05-29  Pedro Alves  <palves@redhat.com>

	PR gdb/13860
	* observer.texi (signal_received, end_stepping_range)
	(signal_exited, exited, no_history): New observer subjects.

2014-05-26  Andy Wingo  <wingo@igalia.com>

	* guile.texi (GDB Scheme Data Types): Remove documentation for
	removed interfaces.  Update spelling of gdb-object-kind.

2014-05-26  Andy Wingo  <wingo@igalia.com>

	* guile.texi (Basic Guile): Fix some typos.

2014-05-26  Andy Wingo  <wingo@igalia.com>

	* guile.texi (Writing a Guile Pretty-Printer)
	(Guile Types Module): Fix excess parentheses in use-modules forms.

2014-05-24  Eli Zaretskii  <eliz@gnu.org>

	* guile.texi (Types In Guile, Basic Guile, Frames In Guile)
	(Breakpoints In Guile, Guile Printing Module)
	(Guile Exception Handling, Values From Inferior In Guile)
	(Objfiles In Guile, Breakpoints In Guile, Memory Ports in Guile):
	Don't use @var at the beginning of a sentence.

	* gdb.texinfo (Frame Filter Management, Trace Files)
	(C Operators, Ada Tasks, Calling, Bootstrapping, ARM)
	(PowerPC Embedded, Define, Annotations for Running)
	(IPA Protocol Commands, Packets, General Query Packets)
	(Tracepoint Packets, Notification Packets, Environment)
	(Inferiors and Programs, Set Breaks, Set Catchpoints)
	(Continuing and Stepping, Signals, Thread-Specific Breakpoints)
	(Frames, Backtrace, Selection, Expressions, Registers)
	(Trace State Variables, Built-In Func/Proc, Signaling, Files)
	(Numbers, GDB/MI Async Records, GDB/MI Data Manipulation)
	(Source Annotations, Using JIT Debug Info Readers, Packets)
	(Stop Reply Packets, Host I/O Packets)
	(Target Description Format): Don't use @var at the beginning of a
	sentence.

	* python.texi (Basic Python, Types In Python)
	(Commands In Python, Frames In Python, Line Tables In Python)
	(Breakpoints In Python, gdb.printing, gdb.types)
	(Type Printing API): Don't use @var at the beginning of a
	sentence.

2014-05-23  Markus Metzger  <markus.t.metzger@intel.com>

	* gdb.texinfo (Process Record and Replay): Document "set/show btrace
	replay-memory-access".

2014-05-21  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Starting): Document "set/show
	auto-connect-native-target".
	(Target Commands): Document "target native".

2014-05-20  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Memory) <compare-sections>: Generalize comments to
	not be remote specific.  Add cross reference to the qCRC packet.
	(Separate Debug Files): Update cross reference to the qCRC packet.
	(General Query Packets) <qCRC packet>: Add anchor.

2014-05-17  Doug Evans  <xdje42@gmail.com>

	Copy over changes from guile.texi.
	* python.texi (Basic Python) <gdb.execute>: Add text.
	(Basic Python) <gdb.post_event>: Remove "main" from "main GDB thread".
	(Values From Inferior) <Python string>: Add text.
	(Values From Inferior) <Value.string>: Clarify string length handling.
	(Pretty Printing API): Add cindex.
	(Types In Python) <TYPE_CODE_*>: Use vtable instead of table.
	Remove unnecessary index of gdb.TYPE_CODE_*.  Replace @findex with
	@vindex.
	(Commands In Python) <COMPLETE_*>: Similarly.
	(Symbols In Python) <SYMBOL_*>: Similarly.
	(Breakpoints In Python) <WP_*>: Similarly.
	(Breakpoints In Python) <BP_*>: Similarly.

2014-05-17  David Taylor <dtaylor@emc.com>

	* gdb.texinfo (General Query Packets): Add a note about thread IDs
	mentioned in the qfThreadInfo reply.

2014-05-16  Doug Evans  <dje@google.com>

	* gdb.texinfo (Mode Options): Add -D.

2014-05-09  Samuel Bronson  <naesten@gmail.com>

	* Makefile.in (PACKAGE): Copy from ../Makefile.in in case of
	"make -C".

2014-04-29  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Debugging Output): Rename to "set debug varobj" and
	"show debug varobj".

2014-05-01  David Taylor  <dtaylor@emc.com>

	* gdb.texinfo (compare-sections): Document the new -r (read-only)
	option.

2014-04-24  Michael Sturm  <michael.sturm@mintel.com>
	    Walfred Tedeschi  <walfred.tedeschi@intel.com>

	* gdb.texinfo (i386 Features): Add description of AVX512
	registers.

2014-03-31  Doug Evans  <dje@google.com>

	* gdb.texinfo (Symbols): Document set/show print symbol-loading.

2014-03-30  Doug Evans  <dje@google.com>

	* gdb.texinfo (Non-Stop Mode): Remove trailing whitespace.
	(Background Execution): Ditto.

2014-03-21  Pedro Alves  <palves@redhat.com>
	    Stan Shebs  <stan@codesourcery.com>
	    Hui Zhu  <hui@codesourcery.com>

	* gdb.texinfo (Packets): Add anchor to "? packet".
	Remove fixme and update introduction of "k packet".
	Add anchor to "vKill packet".

2014-03-12  Stan Shebs  <stan@codesourcery.com>

	* Doxyfile-gdb-api.in (INPUT): Add gdbtypes.h.

2014-02-26  Ludovic Courtès  <ludo@gnu.org>

	* guile.texi (Basic Guile): Document 'history-append!'.

2014-02-20  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Files): Document "add-shared-symbol-files"
	and "assf" as being deprecated.
	(Cygwin Native): Likewise for "dll-symbols".
	(Non-debug DLL Symbols): Remove reference to "dll-symbols"
	as a way to force the loading of symbols from a DLL.

2014-02-19  Siva Chandra Reddy  <sivachandra@google.com>

	* python.texi (Values From Inferior): Add description about the
	new feature.

2014-02-17  Doug Evans  <xdje42@gmail.com>

	* Makefile.in (GDB_DOC_FILES): Add python.texi.
	* gdb.texinfo (Python): Moved to ...
	* python.texi: ... here.  New file.

2014-02-17  Ludovic Courtès  <ludo@gnu.org>

	* guile.texi (Writing a Guile Pretty-Printer) <example>:
	Remove 'string-begins-with' procedure.  Add 'pretty-printer'
	parameter to 'str-lookup-function' procedure.  Look for
	the "std::string<" prefix.
	(Frames In Guile): Add 'frame' parameter to 'frame-read-var'.
	Adjust description.

2014-02-11  Tejas Belagod  <tejas.belagod@arm.com>

	* guile.texi (Values From Inferior In Guile): Remove stray
	parantheses for deffn.
	(Disassembly In Guile): Ditto.

2014-02-10  Stan Shebs  <stan@codesourcery.com>

	Add Doxygen support.
	* Makefile.in (doxy): New action, generates Doxygen files.
	(DOXYGEN): New.
	(doxyedit): New.
	* Doxyfile-base.in: New file.
	* Doxyfile-gdb-api.in: New file.
	* Doxyfile-gdb-xref.in: New file.
	* Doxyfile-gdbserver.in: New file.
	* doxy-index.in: New file.
	* filter-for-doxygen: New file.
	* filter-params.pl: New file.

2014-02-10  Doug Evans  <xdje42@gmail.com>

	* Makefile.in (GDB_DOC_FILES): Add guile.texi.
	* gdb.texinfo (Auto-loading): Add set/show auto-load guile-scripts.
	(Extending GDB): New menu entries Guile, Multiple Extension Languages.
	(Guile docs): Include guile.texi.
	(objfile-gdbdotext file): Add objfile-gdb.scm.
	(dotdebug_gdb_scripts section): Mention Guile scripts.
	(Multiple Extension Languages): New node.
	* guile.texi: New file.

2014-01-28  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Ada Glitches): Document the new "maint ada set/show
	ignore-descriptive-types". commands.

2014-01-22  Doug Evans  <dje@google.com>

	* gdb.texinfo (Server): Mention --debug-format=all|none|timestamp.
	(gdbserver man): Ditto.

2014-01-16  Markus Metzger  <markus.t.metzger@intel.com>

	* gdb.texinfo: Document limited reverse/replay support
	for target record-btrace.

2014-01-16  Markus Metzger  <markus.t.metzger@intel.com>

	* gdb.texinfo (Process Record and Replay): Update documentation.

2014-01-16  Markus Metzger  <markus.t.metzger@intel.com>

	* gdb.texinfo (Process Record and Replay): Document new /c
	modifier accepted by "record function-call-history".
	Add /i modifier to "record function-call-history" example.

2014-01-15  Yuanhui Zhang  <asmwarrior@gmail.com>
	    Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (GDB/MI Output Syntax): Add some missing "nl"
	markers.  Remove one that was misplaced.

2014-01-10  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Your Program's Environment) <set environment>:
	Mention the shell, and point at 'set exec-wrapper'.

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

	* gdb.texinfo (Types In Python): Document new attribute Types.name.

2013-12-30  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Types In Python): Clarify the documentation
	of attribute gdb.Field.bitpos.

2013-12-28  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Types In Python): Fix the documentation of
	attribute "bitpos" in class gdb.Field for enum types.  Add
	documentation for attribute "enumval" in that same class.

2013-12-28  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (GDB/MI Support Commands): Change @table into
	@ftable.

2013-12-23  Doug Evans  <xdje42@gmail.com>

	* gdb.texinfo (Auto-loading): Move menu up.  Move discussion of
	auto-loaded objfile scripts and .debug_gdb_scripts section to their
	corresponding section in Extending GDB.
	(Extending GDB): Move menu up.  New menu item "Auto-loading
	extensions".
	(Sequences): New menu item "Auto-loading sequences".
	(Auto-loading sequences): New node.
	(Python): Rename section from Scripting GDB to Extending GDB.
	(Python Auto-loading): Update xref, refer to "Auto-loading extensions".
	Move docs on ways to auto-load extensions to ...
	(Auto-loading extensions): ... here.  New node.

2013-12-23  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (GDB/MI): Add "GDB/MI Support Commands" entry
	in menu.
	(GDB/MI Variable Objects): Adjust reference to "-list-features"
	command, now in a new node.
	(GDB/MI Support Commands): New node, with its contents being
	extracted from the "GDB/MI Miscellaneous Commands" node.
	A small paragraph introducing the section is also added at
	the start.
	(GDB/MI Miscellaneous Commands): Delete the description of the
	-info-gdb-mi-command, -list-features and -list-target-features
	commands, now hosted in the "GDB/MI Support Commands" node.

2013-12-12  Siva Chandra Reddy  <sivachandra@google.com>

	PR python/16113
	* gdb.texinfo (Values From Inferior): Add a note about using
	gdb.Field objects as subscripts on gdb.Value objects.
	(Types In Python): Add description about the new attribute
	"parent_type" of gdb.Field objects.

2013-12-12  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (GDB/MI Miscellaneous Commands): Add @cindex
	entry for section docuumenting the -list-features GDB/MI command.

2013-12-10  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (GDB/MI Miscellaneous Commands): Document the new
	"exec-run-start-option" entry in the output of the "-list-features"
	command.

2013-12-04  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (i386): Fix yesterday's commit.

2013-12-03  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Set Catchpoints): Add @kindex for each command
	documented here.

2013-12-03  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (@direntry): Add menu item for gdbserver.

2013-12-03  Walfred Tedeschi  <walfred.tedeschi@intel.com>

	* gdb.texinfo (i386 Features): Add MPX feature registers.
	(x86 Specific featuresx86 Architecture-specific Issues): Adds
	a subsubsection for MPX and describes the display of the
	boundary registers.

2013-12-03  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (GDB/MI Miscellaneous Commands): Remove the
	documentation of the "ada-exceptions" entry.

2013-12-03  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (GDB/MI Result Records): Fix the syntax of the
	"^error" result record concerning the error message.  Document
	the error code that may also be part of that result record.
	(GDB/MI Miscellaneous Commands): Document the
	"undefined-command-error-code" element in the output of
	the "-list-features" GDB/MI command.

2013-12-03  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (GDB/MI Miscellaneous Commands): Document
	the new -info-gdb-mi-command GDB/MI command.  Document
	the meaning of "-info-gdb-mi-command" in the output of
	-list-features.

2013-11-29  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Frames In Python) <gdb.FRAME_UNWIND_NULL_ID>:
	Update comment.

2013-11-24  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (Caching Remote Data): Document new
	"set/show stack-cache" option.

2013-11-24  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (Caching Target Data): Replace "ON" with "on".
	(Maintenance Commands): Replace "ON" and "OFF" with "on" and
	"off" respectively.

2013-11-23  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (GDB/MI Variable Objects): Add the description
	of "displayhint" to the table about child results.

2013-11-21  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (GDB/MI Variable Objects): Add attribute
	'dynamic' for the output of command -var-list-children.

2013-11-21  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (Caching Target Data): Remove "see" before
	@pxref.

2013-11-20  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (Caching Target Data): Update doc for
	per-address-space dcache.

2013-11-20  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (Data): Rename menu item.
	(Caching Remote Data): Rename to ...
	(Caching Target Data): ... it.  Update.

2013-11-18  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (GDB/MI Miscellaneous Commands): Document the new
	"language-option" entry in the output of the "-list-features"
	command.

2013-11-15  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Variables): Note gdb rules for ambiguous cases.
	Add example.

2013-11-14  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Breakpoints In Python): Replace "as" with "in".

2013-11-14  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Show): Add xref anchor for "show language" command.
	(Context management): Place current subsection text into its own
	subsubsection.  Add new subsubsection describing the "--language"
	command option.

2013-11-13  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (GDB/MI Miscellaneous Commands): Delete
	the documentation of "info-ada-exceptions" in the output
	of the "-list-features" command.  Add the documentation
	of the "ada-exception" entry instead.

2013-11-12  Joel Brobecker  <brobecker@adacore.com>


	* gdb.texinfo (GDB/MI Miscellaneous Commands): Fix the first
	word of a couple of sentences to start with a capital letter.

2013-11-12  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Ada): Add entry in menu for new "Ada Exceptions" node.
	(Ada Exceptions): New node.
	(GDB/MI): Add entry in menu for new "GDB/MI Ada Exceptions
	Commands" node.
	(GDB/MI Ada Exceptions Commands): New node.
	(GDB/MI Miscellaneous Commands): Document new "info-ada-exceptions"
	field in the output of the "-list-features" command.
	* NEWS: Add entry for the new "info exceptions" CLI command,
	and for the new "-info-ada-exceptions" GDB/MI command.

2013-11-11  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.texinfo (Symbol Tables In Python): Add linetable method entry.
	(Line Tables In Python): New node.

2013-11-08  Doug Evans  <dje@google.com>

	* gdb.texinfo (Debugging Output): Update text for
	"set debug dwarf2-read".

2013-11-08  Doug Evans  <dje@google.com>

	* gdb.texinfo (Debugging Output): Update text for
	"set debug symtab-create".

2013-11-07  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.texinfo (Commands In Python): Document COMPLETE_EXPRESSION
	constant.

2013-11-07  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.texinfo (Breakpoints In Python): Document temporary
	option in breakpoint constructor, and add documentation to the
	temporary attribute.

2013-11-07  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (GDB/MI Variable Objects): Update doc about the
	output of "-var-info-expression".

2013-11-06  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Starting) <set/show startup-with-shell>: Mention
	non-interactive mode.
	(Environment) <shell startup files warning>: Mention
	non-interactive mode.  Mention .zshenv for Z shell, and talk about
	BASH_ENV instead of .bashrc for BASH.

2013-10-29  Nicolas Blanc  <nicolas.blanc@intel.com>

	* gdb.texinfo (Commands to Specify Files): Add description
	of the remove-symbol-file command.
	* observer.texi: New free_objfile event

2013-10-24  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Starting): Document set/show startup-with-shell.

2013-10-11  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Shared Library GDB/MI Catchpoint Commands):
	New subsection inside which the "-catch-load" and "-catch-unload"
	commands documentation is now placed.
	(Ada Exception GDB/MI Catchpoint Commands): New subsection
	documenting the "-catch-assert" and "-catch-exception" new
	GDB/MI commands.

2013-10-10  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Connecting): Remove unnecessary @w{}.

2013-10-10  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Connecting): Replace "set remotebaud" by "set
	serial baud".
	(Remote Configuration): Replace "set remotebaud" by "set serial
	baud".  Replace "show remotebaud" by "show serial baud".

2013-10-07  Pedro Alves  <palves@redhat.com>

	PR breakpoints/11568
	* gdb.texinfo (Thread-Specific Breakpoints): Mention what happens
	when the thread is removed from the thread list.

2013-10-06  Sergio Durigan Junior  <sergiodj@redhat.com>

	* gdb.texinfo (Convenience Variables): Document $_exitsignal.
	Update entry for $_exitcode.

2013-10-04  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (GDB/MI Program Execution): Document "-exec-run"'s
	new "--start" option.

2013-10-02  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Registers): Expand description of saved registers
	in frames.  Explain <not saved>.

2013-09-25  Doug Evans  <dje@google.com>

	* gdb.texinfo (Debugging Output): Document set/show debug symfile.

2013-09-16  Stan Shebs  <stan@codesourcery.com>

	Remove the internals manual gdbint.texinfo.
	* Makefile.in (INFO_DEPS): Remove gdbint.info.
	(PDFFILES): Remove gdbint.pdf.
	(HTMLFILES): Remove gdbint/index.html.
	(HTMLFILES_INSTALL): Remove gdbint.
	(GDBINT_DOC_FILES): Remove.
	(dvi): Remove gdbint.dvi.
	(ps): Remove gdbint.ps.
	* gdbint.texinfo: Remove file.
	* gdb.texinfo (Maintenance Commands): Remove reference to gdbint.

2013-09-16  Sergio Durigan Junior  <sergiodj@redhat.com>

	* gdb.texinfo (Convenience Functions): Mention new convenience
	function $_isvoid.

2013-09-13  Andreas Arnez  <arnez@linux.vnet.ibm.com>

	* gdb.texinfo (Decimal Floating Point format): Mention S/390.
	(Standard Target Features): Add new node to menu.
	(S/390 and System z Features): New node.

2013-09-13  Sanimir Agovic  <sanimir.agovic@intel.com>

	* gdb.texinfo (GDB/MI Miscellaneous Commands): Use
	-list-target-features in the example.

2013-09-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (MiniDebugInfo): Prepare file debug and use it to create
	mini_debuginfo.  Strip binary before adding mini_debuginfo to it.

2013-09-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Sync documentation with gdb.base/gnu-debugdata.exp.
	* gdb.texinfo (MiniDebugInfo): Add comment and "D" in the example.

2013-09-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (MiniDebugInfo): Fix two trailing dots.

2013-08-27  Pedro Alves  <pedro@codesourcery.com>
	    Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (GDB/MI Stack Manipulation) <-stack-list-locals>:
	Document new --skip-unavailable option.
	<-stack-list-variables>: Document new --skip-unavailable option.

2013-08-26  Doug Evans  <dje@google.com>

	* gdb.texinfo (Maintenance Commands): "maint print objfiles" now takes
	an optional regexp.

2013-08-13  Tom Tromey  <tromey@redhat.com>

	* gdbint.texinfo (Testsuite): Use @table, not @itemize.
	Document GDB_PARALLEL and GDB_INOTIFY.

2013-08-09  Stan Shebs  <stan@codesourcery.com>

	* LRS: Remove file, describes a long-abandoned live-range
	splitting extension to stabs.

2013-07-25  Andrew Burgess  <aburgess@broadcom.com>

	* gdb.texinfo (Output Formats): Mention the new 'z' formatter.

2013-07-17  Doug Evans  <dje@google.com>

	* gdb.texinfo (Print Settings): Document "print raw frame-arguments".

2013-07-02  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Target Commands): Don't mention "target nrom".

2013-06-28  Tom Tromey  <tromey@redhat.com>

	* Makefile.in (version.subst): Use version.in, not
	common/version.in.
	* gdbint.texinfo (Versions and Branches, Releasing GDB):
	Likewise.

2013-06-27  Pedro Alves  <palves@redhat.com>

	* gdbint.texinfo (Algorithms) <Stepping over runtime loader
	dynamic symbol resolution code>: New section, based on infrun.c
	comment.

2013-06-26  Tom Tromey  <tromey@redhat.com>

	* gdbint.texinfo (Versions and Branches): Use common/version.in.
	Update.
	(Releasing GDB): Likewise.

2013-06-26  Pedro Alves  <pedro@codesourcery.com>
	    Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (GDB/MI Tracepoint Commands): Document
	-trace-frame-collected.

2013-06-26  Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo (Traceframe Info Format): Document tvar element
	and its attributes.

2013-06-25  Yao Qi  <yao@codesourcery.com>

	* gdbint.texinfo (Testsuite): Document 'gdb,predefined_tsv'.

2013-06-24  Tom Tromey  <tromey@redhat.com>

	* Makefile.in (POD2MAN1, POD2MAN5): Use version.subst.
	(GDBvn.texi): Use version.subst.
	(version.subst): New target.
	(mostlyclean): Remove version.subst.

2013-06-20  Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo (GDB/MI Data Manipulation)
	<-data-list-register-values>: Document the --skip-unavailable
	option.

2013-06-07  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (Symbols): Add kindex and cindex for
	'maint print msymbols'.

2013-06-05  Simon Marchi  <simon.marchi@ericsson.com>  (tiny change)

	* gdb.texinfo (Miscellaneous gdb/mi Commands): Fix -add-inferior
	response field name (thread-group to inferior).

2013-06-04 Gary Benson  <gbenson@redhat.com>

	* gdb.texinfo (General Query Packets/qSupported): Added
	"qXfer:libraries-svr4:read" and "augmented-libraries-svr4-read".
	to the table of currently defined stub features.
	Added a more detailed entry for "augmented-libraries-svr4-read".
	(General Query Packets/qXfer:libraries-svr4:read): Documented
	the augmented form of this packet.

2013-05-23  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (System-wide Configuration Scripts): Renames
	"Installed System-wide Configuration Scripts". Add associated
	@menu block.

2013-05-23  Yao Qi  <yao@codesourcery.com>
	    Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Packets): Document 'vCont;r'.
	(Continuing and Stepping): Document target-assisted range
	stepping, and the 'set range-stepping' and 'show range-stepping'
	commands.

2013-05-23  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Installed System-wide Configuration Scripts):
	Add subsection describing the scripts now available under
	the data-dir's system-gdbbinit subdirectory.
	* NEWS: Add entry announcing the availability of system-wide
	configuration scripts for ElinOS and Wind River Linux.

2013-05-21  Hui Zhu  <hui@codesourcery.com>

	* gdb.texinfo (GDB/MI Breakpoint Commands): Describe the
	"-dprintf-insert" command.

2013-05-17  Doug Evans  <dje@google.com>

	* gdb.texinfo (Maintenance Commands): Update doc for
	"maint check-psymtabs".  Add doc for "maint check-symtabs",
	"maint expand-symtabs".

2013-05-15  Markus Metzger  <markus.t.metzger@intel.com>

	* gdb.texinfo (Process Record and Replay): Document the
	"record goto" command and its sub-commands.

2013-05-10 Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.texinfo (Backtrace): Add "no-filter" argument.
	(Python API): Add Frame	Filters API, Frame Wrapper API,
	Writing a Frame Filter/Wrapper,	Managing Management of Frame
	Filters chapter entries.
	(Frame Filters API): New Node.
	(Frame Wrapper API): New Node.
	(Writing a Frame Filter): New Node.
	(Managing Frame Filters): New Node.
	(Progspaces In Python): Add note about frame_filters attribute.
	(Objfiles in Python): Ditto.
	(GDB/MI Stack Manipulation): Add -enable-frame-filters command,
	@anchors and --no-frame-filters option to -stack-list-variables,
	-stack-list-frames, -stack-list-locals and -stack-list-arguments
	commands.

2013-05-08  Joel Brobecker  <brobecker@adacore.com>

	* gdbint.texinfo (Native Debugging): Add "AIX Shared Library
	Support" subsection documenting the XML format used to transfer
	shared library info on AIX.

2013-05-08  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Debugging Output): Add documentation of
	"set debug aix-solib" and "show debug aix-solib" commands.

2013-05-06  Sandra Loosemore  <sandra@codesourcery.com>

	* gdb.texinfo (Nios II): New section.
	(Nios II Features): New section.

2013-05-06  Joel Brobecker  <brobecker@adacore.com>

	* gdbint.texinfo (Algorithms): Remove entries documenting
	DEPRECATED_IBM6000_TARGET, SOLIB_ADD, and
	SOLIB_CREATE_INFERIOR_HOOK.

2013-04-29  Tom Tromey  <tromey@redhat.com>

	PR python/14204:
	* gdb.texinfo (Python API): Fix menu entry.
	(Blocks In Python): Fix subsubsection text.  Rewrite intro.
	Define global and static block.  Add example.  Clarify
	block relationship for inline functions.

2013-04-29  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Python API): Mention Python help and keyword
	arguments.  Move pagination text to Basic Python.
	(Basic Python): Put pagination text here.  Document
	close-on-exec, SIGCHLD, and SIGINT.

2013-04-19  Pedro Alves  <palves@redhat.com>

	* gdbint.texinfo (Misc Guidelines) <Compiler Warnings>: Write
	"signedness" instead of "signness".

2013-04-19  Pedro Alves  <palves@redhat.com>

	* gdbint.texinfo (Misc Guidelines) <Compiler Warnings>: Replace
	-Wno-pointer-sign text with text on -Wpointer-sign.

2013-04-16  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Set Catchpoints): Mention earliest version of
	GCC that has the SDT probe points.

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

	* gdb.texinfo (Set Catchpoints): Document regexp syntax for
	exception catchpoints.

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

	* gdb.texinfo (Set Catchpoints): Document $_exception.
	(Convenience Vars): Mention $_exception.

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

	* gdb.texinfo (Set Catchpoints): Reorganize exception
	catchpoints.  Document "catch rethrow".
	(Debugging C Plus Plus): Mention "catch rethrow".

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

	* gdb.texinfo (Set Catchpoints): Remove obsolete text.

2013-04-12  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Auto-loading safe path): Add quick -iex using command
	line below the sample output.

2013-04-12  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Mode Options): Document '-configuration'.
	(Help): Document "show configuration".
	(Bug Reporting): Add requirements to include the configuration
	details in bug reports.

2013-04-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* Makefile.in (MAN1S): Add gcore.1.
	Remove "Host, target, and site specific Makefile fragments" comment.
	(@host_makefile_frag@, HAVE_NATIVE_GCORE_TARGET): New.
	(install-man1, uninstall-man1): Conditionalize gcore.1.
	(gcore.1): New.
	* gdb.texinfo (Man Pages): Add gcore man.
	(gcore man): New node.

2013-04-10  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Process Record and Replay): Document that "set
	record full insn-number-max", "set record
	instruction-history-size" and "set record
	function-call-history-size" accept "unlimited".
	(Backtrace): Document that "set backtrace limit" accepts
	"unlimited".
	(List): Document that "set listsize" accepts "unlimited".
	(Print Settings)" Document that "set print max-symbolic-offset",
	"set print elements" and "set print repeats" accept "unlimited".
	(Starting and Stopping Trace Experiments): Document that "set
	trace-buffer-size" accepts "unlimited".
	(Remote Configuration): Document that "set tcp connect-timeout"
	accepts "unlimited".
	(Command History): Document that "set history size" accepts
	"unlimited".
	(Screen Size): Document that "set height" and "set width" accepts
	"unlimited".  Adjust "set pagination"'s description to suggest
	"set height unlimited" instead of "set height 0".

2013-04-10  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (Trace Files): Add "target ctf".

2013-04-06  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* Makefile.in (POD2MAN1, POD2MAN5): Replace $(VERSION) by ../version.in.

	* Makefile.in (install-man1, install-man5, uninstall-man1)
	(uninstall-man5): Replace $(MANS) by $(MAN1S) and $(MAN5S) respectively.

	* Makefile.in (gdb.1, gdbserver.1, gdbinit.5): Use $(srcdir).

2013-04-06  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (gdbserver man): Rename tty to comm.  Swap --attach
	parameters order.  Remove "On some targets" for --attach.  Document the
	--multi parameter and extended-remote command.  Document all the
	options.

2013-04-05  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (gdb man): Mention option -p.  Include Fortran to
	the list of supported languages.

2013-04-05  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Convert man pages to texinfo, new gdbinit.5 texinfo page.
	* Makefile.in (mandir, man1dir, man5dir, SYSTEM_GDBINIT, MANCONF,
	(TEXI2POD, POD2MAN1, POD2MAN5, MAN1S, MAN5S, MANS, man): New.
	(diststuff): Add man.
	(install-man, install-man1, install-man5, uninstall-man, uninstall-man1)
	(uninstall-man5): New.
	(STAGESTUFF): Add *.1 and *.5.
	(GDBvn.texi): Add SYSTEM_GDBINIT.
	(gdb.1, gdbserver.1, gdbinit.5): New.
	(maintainer-clean realclean): Add $(MANS).
	(install): Add install-man.
	(uninstall): Add uninstall-man.
	* gdb.texinfo (@include gdb-cfg.texi): Wrap it by @c man begin INCLUDE.
	(@copying): Wrap it by @c man begin COPYRIGHT.
	(Top): Add Man Pages.
	(Man Pages, gdb man, gdbserver man, gdbinit man): New.

2013-04-02  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Debugging Output): Document "set/show debug
	aarch64", "set/show debug coff-pe-read" and "set/show debug
	mach-o".

2013-04-02  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Remote Configuration) <set remote @var{name}-packet
	table>: Add entry for "trace-buffer-size".

2013-03-28  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Remote Configuration) <set remote @var{name}-packet
	table>: Add entry for "trace-status".

2013-03-28  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Maintenance Commands): Use @enumerate, not "@table
	@bullet", which is invalid (makeinfo 5.1 barfs).

2013-03-28  Pedro Alves  <palves@redhat.com>

	PR gdb/15294

	* gdb.texinfo (List) <set listsize>: Adjust to document that
	listsize 0 means no limit, and remove mention of -1.

2013-03-22  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (Embedded Processors): Remove menu item
	"OpenRISC 1000".
	(OpenRISC 1000): Remove.

2013-03-21  Doug Evans  <dje@google.com>

	* gdb.texinfo (Maintenance Commands): Add docs for
	"mt set per-command {space,time,symtab} {on,off}".

2013-03-14  Hui Zhu  <hui@codesourcery.com>
	    Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (Trace Files): Add "tsave -ctf".

2013-03-13  Keith Seitz  <keiths@redhat.com>

	* gdb.texinfo (Maintenance Commands): Add missing ')' for
	"maint agent" reference to Dynamic printf.

2013-03-11  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (General Query Packets): Don't use colon in index
	entries visible to Info format.

2013-03-11  Markus Metzger  <markus.t.metzger@intel.com>

	* gdb.texinfo (Process Record and Replay): Document record
	changes.

2013-03-11  Markus Metzger  <markus.t.metzger@intel.com>

	* gdb.texinfo (Requirements): List qXfer:btrace:read requiring expat.
	(General Query Packets): Describe Qbtrace:bts, Qbtrace:off, and
	qXfer:btrace:read.

2013-03-09  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (General Query Packets, Tracepoint Packets): Don't
	use colons in @anchor and @cindex entries.

2013-03-09  Hafiz Abid Qadeer  <abidh@codesourcery.com>

	* gdb.texinfo (QTBuffer:size): Add cindex and anchor.

2013-03-08  Stan Shebs  <stan@codesourcery.com>
	    Hafiz Abid Qadeer  <abidh@codesourcery.com>

	* gdb.texinfo (Starting and Stopping Trace Experiments): Document
	trace-buffer-size set and show commands.
	(Tracepoint Packets): Document QTBuffer:size.
	(General Query Packets): Document QTBuffer:size.

2013-02-21  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo: Remove bad @syncodeindex.
	(Values From Inferior, Types In Python, Inferiors In Python)
	(Events In Python, Threads In Python, Frames In Python, Blocks In
	Python, Symbols In Python, Symbol Tables In Python): Remove
	@tables.
	(Packets, General Query Packets, Tracepoint Packets)
	(Host I/O Packets): Use @w{} for empty @item.

2013-02-20  Siva Chandra Reddy <sivachandra@google.com>

	* gdb.texinfo (Architectures In Python): Add description about
	the new method gdb.Architecture.disassemble.

2013-02-15  Pedro Alves  <pedro@codesourcery.com>
	    Hafiz Abid Qadeer  <abidh@codesourcery.com>

	* gdb.texinfo (GDB/MI Tracepoint Commands) <-trace-status>:
	Document the "trace-file" field.

2013-02-07  Doug Evans  <dje@google.com>

	* gdb.texinfo (Machine Code): Clarify argument to disassemble
	command.

2013-02-06  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (GDB/MI Async Records): Document new MI
	notification "=tsv-modified".  Update the document of MI
	notification "=tsv-created".
	* observer.texi (GDB Observers): New observer tsv_modified.
	Update observer tsv_created and tsv_delete.

2013-02-05  Yufeng Zhang  <yufeng.zhang@arm.com>

	* gdb.texinfo (AArch64 Features): New section; document
	org.gnu.gdb.aarch64.core and org.gnu.gdb.aarch64.fpu.
	(Architectures): Add new AArch64 section to document AArch64
	architecture specific commands.
	(ABI): Add description of the new OS ABI "Newlib" and its influence
	on the longjmp handling.

2013-02-03  Eldar Gaynetdinov <hal9000ed2k@gmail.com>
	    Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (Backtrace): Added description of 'filename-display'
	variable in 'set/show backtrace' section.

2013-01-31  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Target Commands): Fix typo.

2013-01-23  Siva Chandra Reddy  <sivachandra@google.com>

	* doc/gdb.texinfo (Architectures In Python): New sub-sub-section
	describing the gdb.Architecture class.
	(Frames In Python): Add description about the new method
	gdb.Frame.architecture().

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

	* gdb.texinfo (Index Section Format): Document .gdb_index version 8.

2013-01-21  Marc Khouzam  <marc.khouzam@ericsson.com>

	* gdb.texinfo (GDB/MI Breakpoint Commands): Document new
	'thread-groups' field when printing a breakpoint in MI.

2012-01-17  Sanjoy Das <sanjoy@playingwithpointers.com>
	* gdb.texinfo (Using JIT Debug Info Readers): Change documentation
	to reflect that jit-reader-load now supports absolute file-names.

2013-01-16  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Set Catchpoints): Document "catch signal".
	(Signals): Likewise.

2013-01-16  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (GDB/MI Breakpoint Information): Document
	"catch-type" field.
	(GDB/MI Catchpoint Commands): Add "catch-type" to examples.

2013-01-07  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Mode Options): Don't mention -epoch.
	(Data, Emacs): Remove obsolete comments.

2013-01-02  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (GDB/MI Output Records): Update menu.
	(GDB/MI Breakpoint Information): New node.
	(GDB/MI Breakpoint Commands) <-break-info>: Link to new node.
	<-break-insert>: Likewise.

2012-12-31  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (Remote Non-Stop): Move paragraphs to ...
	(Packets): Move "vStopped" packet to ...
	(Notification Packets): ... here.  Describe the components
	of notification.  Add a table of supported notifications.
	Add an example on the process of he async notification.

2012-12-25  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (GDB/MI Data Manipulation) (fullname): Make it always
	present.
	(GDB/MI File Commands) (-file-list-exec-source-files): Make the
	fullname output always present.

2012-12-23  Pierre Muller  <muller@sourceware.org>

	* gdbint.texinfo (Function prototypes): Require use of "extern"
	modifier for function prototypes in headers.

2012-12-19  Joel Brobecker  <brobecker@adacore.com>

	* refcard.tex: Update copyright notice to GPL v3 or later.
	Update contact info.

2012-12-16  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdbint.texinfo (Coding Standards) (C Usage): New rule for 0 vs. NULL.

2012-12-15  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (Debugging Output): Document 'set debug
	notification' and 'show debug notification'.

2012-12-15  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (Listing Tracepoints): New item and example about
	'installed on target' output.
	Add more in the example about 'installed on target'.
	(GDB/MI Breakpoint Commands): Doc about 'installed field.

2012-12-14  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (SVR4 Process Information): Mention core files.

2012-12-12 Mircea Gherzan <mircea.gherzan@intel.com>

	* gdb.texinfo (GDB/MI Catchpoint Commands): New section.

2012-12-11  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo: Remove all mentions of Unixware throughout.

2012-12-09  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdbint.texinfo (Host Definition): Remove CC_HAS_LONG_LONG.

2012-11-29  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (SVR4 Process Information): Document missing
	"info proc" subcommands.

2012-11-29  Yao Qi  <yao@codesourcery.com>

	PR gdb/1477.
	* gdb.texinfo (Print Settings): Correct the default 'demangle-style'
	to 'auto' instead of 'gnu'.

2012-11-26  Tom Tromey  <tromey@redhat.com>

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

2012-11-16  Doug Evans  <dje@google.com>

	* gdb.texinfo (System-wide configuration): If the system-wide init
	file lives in the data-directory, and --data-directory is provided,
	look for it there.

2012-11-15  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Signaling): Fix typo.

2012-11-13  Giuseppe Montalto  <giuseppe.montalto@st.com>

	* gdb.texinfo (GDB/MI Data Manipulation): Document new optional
	parameter "count" of -data-write-memory-bytes, and add an example.

2012-11-12  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Symbols): Document "info type-printers",
	"enable type-printer" and "disable type-printer".
	(Python API): Add new node to menu.
	(Type Printing API): New node.
	(Progspaces In Python): Document type_printers field.
	(Objfiles In Python): Likewise.
	(gdb.types) <get_type_recognizers, apply_type_recognizers,
	register_type_printer, TypePrinter>: Document.

2012-11-12  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Symbols): Document "set print type methods",
	"set print type typedefs", and flags to ptype and whatis.

2012-11-09  Andrew Burgess  <aburgess@broadcom.com>

	* gdb.texinfo (GDB/MI Data Manipulation): Add fullname field to
	the example -data-disassemble output.  Extend the description of
	the -data-disassemble results to document all fields.  Document
	the cli disassemble command as being related to -data-disassemble.

2012-11-09  Yao Qi  <yao@codesourcery.com>

	PR gdb/14777.
	* gdb.texinfo (OS Information): Remove doc on command
	'info udot'.

2012-11-08  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Startup): Minor rewording, and clarify scope of
	gdb.ini warning for Windows port.

2012-11-08  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (Search): Add kindex for 'fo'.

2012-11-05  Tom Tromey  <tromey@redhat.com>

	PR python/14802:
	* gdb.texinfo (Functions In Python): Add example.

2012-11-03  Yao Qi  <yao@codesourcery.com>

	* observer.texi (GDB Observers): Remove observer
	'tracepoint_modified', 'tracepoint_created' and
	'tracepoint_deleted'.

2012-10-26  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (General Query Packets): Use @itemx for QAgent.

2012-10-25  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (General Query Packets): Use @itemx.

2012-10-17  Yao Qi  <yao@codesourcery.com>

	* observer.texi (GDB Observers): Update observer
	'memory_changed'.
	* gdb.texinfo (GDB/MI Async Records): Document for
	"memory-changed" notification.

2012-10-15  Doug Evans  <dje@google.com>

	* gdb.texinfo (Mode Options): Document -nh.
	Elaborate on docs for -nx.

2012-09-26  Siddhesh Poyarekar  <siddhesh@redhat.com>

	* observer.texi (memory_changed): Expand parameter LEN to ssize_t.

2012-09-21  Yao Qi  <yao@codesourcery.com>
	    Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (GDB/MI Async Records): Document notification
	'record-started' and 'record-stopped'.
	* observer.texi (GDB Observers): New observer 'record-changed'.

2012-09-19  Thomas Schwinge  <thomas@codesourcery.com>

	* gdb.texinfo: Document the removal of SH's 'regs' command.

2012-09-18  Sergio Durigan Junior  <sergiodj@redhat.com>

	* gdb.texinfo (jump): Mention new alias `j' for `jump'.

2012-09-18  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (GDB/MI Async Records): Document new MI
	notifications '=tsv-created' and '=tsv-deleted'.
	* observer.texi (GDB Observers): New observer tsv_created and
	tsv_deleted.

2012-09-18  Yao Qi  <yao@codesourcery.com>

	* observer.texi (GDB Observers): New observer 'traceframe_changed'.
	* gdb.texinfo (GDB/MI Async Records): Mention new MI notification
	'=traceframe-changed'.

2012-09-17  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (List): Describe the meaning of 0 and -1 in
	'set listsize'.

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

	* gdbint.texinfo (Defining Other Architecture Features): Clarify *pcptr
	encoding for gdbarch_breakpoint_from_pc, bp_addr for
	gdbarch_push_dummy_call and bp_addr for gdbarch_push_dummy_code.

2012-08-27  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (objfile-gdb.py file): New paragraph for .exe stripping.

2012-08-23  Khoo Yit Phang <khooyp@cs.umd.edu>

	Document how to return from "python-interactive" to GDB.
	* gdb.texinfo (Python Commands): Update documentation.

2012-08-22  Khoo Yit Phang <khooyp@cs.umd.edu>

	Add a new "python-interactive" command that starts a standard
	Python interactive prompt with "pi" as alias, and add "py" as
	an alias to "python".
	* gdb.texinfo (Python Commands): Document the new commands.

2012-08-22  Tom Tromey  <tromey@redhat.com>

	* gdbint.texinfo (Host Definition): Remove documentation for
	SIGWINCH_HANDLER and SIGWINCH_HANDLER_BODY.

2012-08-17  Keith Seitz  <keiths@redhat.com>

	PR c++/13356
	* gdb.texinfo (Type and Range Checking): Remove warning.
	Remove spurious commas.
	Update text and examples for re-implementation of set/show
	check type.
	(C and C++ Type and Range Checks): Likewise.

2012-08-16  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (Types In Python): Mention gdb.TYPE_CODE_BITSTRING
	is deprecated.

2012-08-13  Doug Evans  <dje@google.com>

	* gdb.texinfo (Convenience Vars): Update text for "show convenience"
	to include functions.

2012-08-10  Doug Evans  <dje@google.com>

	* gdb.texinfo (Convenience Funs): New node.
	(Types In Python): Document Type.vector.

2012-08-09  Yao Qi  <yao@codesourcery.com>

	* observer.texi: New observer command_param_changed.
	* gdb.texinfo (GDB/MI Async Records): Doc for '=cmd-param-changed'.

2012-08-07  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdbint.texinfo (Debugging GDB): In section
	'Debugging @value{GDBN} with itself' change .gdbinit for gdb-gdb.gdb.
	Mention also gdb-gdb.py.

2012-08-07  Yao Qi  <yao@codesourcery.com>

	Revert the folloing patch:
	2012-08-06  Yao Qi  <yao@codesourcery.com>
	* gdb.texinfo (Remote Configuration): Add kindex for 'set
	remote hardware-watchpoint-limit' and 'set
	remote hardware-breakpoint-limit'.

2012-08-06  Nathaniel Flath  <flat0103@gmail.com>

	* gdb.texinfo (Working Directory): Added information about new
	default argument for 'cd' command.

2012-08-06  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (Remote Configuration): Add kindex for 'set
	remote hardware-watchpoint-limit' and 'set
	remote hardware-breakpoint-limit'.

2012-08-06  Yao Qi  <yao@codesourcery.com>

	Fix PR14371.

	* gdb.texinfo (GDB/MI Async Records): Fix the doc for
	'=breakpoint-deleted'.

2012-08-02  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (Native): Remove node Neutrino.

2012-07-27  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (IPA Protocol Commands): Document new command
	'close'.

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

    	* gdb.texinfo (Maintenance Commands): Document maint info bfds.

2012-07-20  Doug Evans  <dje@google.com>

	* gdb.texinfo (Mode Options): Delete --use-deprecated-index-sections.
	(Index Files): Document how to control the use of deprecated index
	sections.
	(Index Section Format): Replace --use-deprecated-index-sections with
	"set use-deprecated-index-sections on".

2012-07-12  Eli Zaretskii  <eliz@gnu.org>

	* gdbint.texinfo: Remove @syncodeindex directives that put all the
	indices into a single node "Index".  Instead, join function and
	variable indices into a single index, separate from the concept
	index.  Requested in
	http://sourceware.org/ml/gdb-patches/2012-07/msg00146.html.
	(Top): Update the top-level menu: instead of one "Index" there are
	now separate entries "Concept Index" and "Function and Variable
	Index".
	(Concept Index, Function and Variable Index): New nodes.
	(Index): Node deleted.

2012-07-05  Hui Zhu  <hui_zhu@mentor.com>

	* gdb.texinfo (Maintenance Commands): Change help for "maint agent"
	and "maint agent-eval".

2012-07-03  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo: Separate the index into 2 indices, cp and fn, to
	avoid file-name clashes between Index.html and index.html on
	case-insensitive filesystems.  See the discussion starting in
	http://sourceware.org/ml/gdb-patches/2012-06/msg00457.html for the
	details of the problem.
	(Top): Update the master menu for the above.
	(Concept Index, Command and Variable Index): New nodes, instead of
	the old "Index" node that was deleted.  All cross-references
	updated.

2012-07-02  Stan Shebs  <stan@codesourcery.com>

	* gdb.texinfo (Dynamic Printf): Mention agent style and
	disconnected dprintf.
	(Maintenance Commands): Describe maint agent-printf.
	(General Query Packets): Mention BreakpointCommands feature.
	(Packets): Document commands extension to Z0 packet.
	* agentexpr.texi (Bytecode Descriptions): Document printf
	bytecode.

2012-07-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (File Options): Change -ix and -iex commands that apply
	only after gdbinit files.
	(Startup): Move -iex and -iex commands down after gdbinit files.

2012-07-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (Auto-loading safe path): Note the shell wildcard
	possibility.

2012-06-29  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Index Section Format): Update for version 7.

2012-06-28  Stan Shebs  <stan@codesourcery.com>

	* gdb.texinfo (Miscellaneous GDB/MI Commands): Update -info-os
	example, add note about title column.

2012-06-26  Siva Chandra Reddy  <sivachandra@google.com>

	* gdb.texinfo (Symbol Tables In Python): Add description about
	the new 'last' attribute of gdb.Symtab_and line.

2012-06-26  Siva Chandra Reddy  <sivachandra@google.com>

	* gdb.texinfo (Symbol Tables In Python): Correct the description
	of the 'pc' attribute of gdb.Symtab_and_line.

2012-06-26  Doug Evans  <dje@google.com>

	* gdb.texinfo (Debugging Output): Document debug options dwarf2-read
	and symtab-create.

2012-06-25  Keith Seitz  <keiths@redhat.com>

	* gdb.texinfo (GDB/MI Breakpoint Commands): Remove "-r" option
	from example.  Remove "rbreak" from list of corresponding
	gdb commands.

2012-06-23  Doug Evans  <dje@google.com>

	* gdb.texinfo (Index Section Format): Document version 7 format.

2012-06-22  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo: Add missing cindex for some packets.

2012-06-20  Keith Seitz  <keiths@redhat.com>

	* gdb.texinfo (GDB/MI Breakpoint Commands): Re-order options
	for -break-insert and document -p.

2012-06-20  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (Inferiors In Python): Replace "gdb.read_memory"
	and "gdb.write_memory" with "Inferior.read_memory" and
	"Inferior.write_memory".

2012-06-15  Patrice Dumas  <pertusus@free.fr>  (tiny change)

	* gdb.texinfo (Summary): Add a link to "Free Documentation".
	(Free Documentation): Add @node line.
	(Continuing and Stepping) <advance location>: Use @item instead of
	@itemx.
	(Reverse Execution) <set exec-direction reverse>: Use @item instead of
	@itemx.
	(Embedded Processors): Put the link to "PA" to its correct place,
	according to document structure.
	(Python API): Put the link to "Lazy Strings In Python" to its
	correct place.
	(Index): Use @@ in @tex block to get a literal @.

	* gdbint.texinfo: Fix the @subtitle line.

	* stabs.texinfo (Top): Put the link to "Symbol Types Index" to its
	correct place.

2012-06-08  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (In-Process Agent): Add 'In-Process Agent
	Protocol'.
	(In-Process Agent Protocol, IPA Protocol Objects)
	(IPA Protocol Commands): New nodes.
	(Tracepoint Packets): Add anchors.

2012-06-06  Thomas Schwinge  <thomas@codesourcery.com>

	* gdb.texinfo: Document the deprecation of SH's 'regs' command.

2012-06-06  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo: Update copyright year.

2012-05-23  Stan Shebs  <stan@codesourcery.com>
	    Kwok Cheung Yeung  <kcy@codesourcery.com>

	* gdb.texinfo (Miscellaneous GDB/MI Commands): Document -info-os.

2012-05-20  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (Separate Debug Files): New anchor debug-file-directory.
	Mention also --with-separate-debug-dir.
	(Auto-loading): Prepend $debugdir in the sample output.
	(Auto-loading safe path): Likewise.  Mention also $debugdir for the
	auto-load safe-path variable.
	(objfile-gdb.py file): Remove the extra debug-file-directory paragraph.
	Mention also $debugdir for 'set auto-load scripts-directory'.

2012-05-19  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Continuing and Stepping, Selection, Byte Order)
	(MIPS Embedded, MIPS, MIPS Register packet Format)
	(Target Descriptions, MIPS Features): Use @acronym{MIPS} where
	appropriate.

2012-05-18  Sandra Loosemore  <sandra@codesourcery.com>
	    Maciej W. Rozycki  <macro@codesourcery.com>

	* gdb.texinfo (MIPS): Document "set mips compression" and "show
	mips compression".
	(MIPS Breakpoint Kinds): New subsubsection.

2012-05-18  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Architecture-Specific Protocol Details): Define
	nodes for subsections.  Add @acronym mark-ups and adjust
	formatting.

2012-05-18  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Rename $ddir to $datadir.
	* gdb.texinfo (Auto-loading, Auto-loading safe path)
	(objfile-gdb.py file): Rename $ddir to $datadir.

2012-05-18  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Print Settings): Document 'set print symbol'.

2012-05-14  Stan Shebs  <stan@codesourcery.com>

	* gdb.texinfo (Dynamic Printf): New subsection.

2012-05-13  Siva Chandra Reddy  <sivachandra@google.com>

	* gdb.texinfo (Basic Python): Add description about the function
	gdb.find_pc_line

2012-05-12  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Separate Debug Files): Use plural form for global
	debugging information directory.

2012-05-11  Stan Shebs  <stan@codesourcery.com>
	    Kwok Cheung Yeung  <kcy@codesourcery.com>

	* gdb.texinfo (Operating System Auxiliary Information): Document new
	'info os' subcommands.

2012-05-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (Auto-loading, Init File in the Current Directory)
	(libthread_db.so.1 file, objfile-gdb.gdb file, objfile-gdb.py file)
	(dotdebug_gdb_scripts section): Add reference
	to 'Auto-loading safe path'.

2012-05-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Implement multi-component --with-auto-load-dir.
	* gdb.texinfo (Auto-loading): New references
	for 'set auto-load scripts-directory'
	and 'show auto-load scripts-directory'.
	(Auto-loading safe path): Describe the new default.  Move $ddir
	substituation reference to 'objfile-gdb.py file'.
	(objfile-gdb.py file): Describe script-name alias.  Change real-name to
	script-name.  Describe new 'set auto-load scripts-directory'
	and 'show auto-load scripts-directory'.

2012-05-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Provide $ddir substitution for --with-auto-load-safe-path.
	* gdb.texinfo (Auto-loading): Replace /usr/local by $ddir/auto-load.
	(Auto-loading safe path): Likewise.  Mention the default value,
	$ddir substitution, --with-auto-load-safe-path and
	--without-auto-load-safe-path.
	* observer.texi (gdb_datadir_changed): New.

2012-05-09  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (Auto-loading): Wrap too long lines in @smallexample.
	Twice.

	* gdb.texinfo (Separate Debug Files, Auto-loading safe path): Replace
	directory separator by path separator.

2012-05-06  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (Auto-loading safe path): Make 'directories'
	for 'set auto-load safe-path' optional.  Mention if it is omitted.
	Change disabling security protection condition to "/", twice.

2012-05-03  Siva Chandra Reddy  <sivachandra@google.com>

	* gdb.texinfo (Symbol Tables In Python): Add documentation about
	the new methods global_block and static_block on gdb.Symtab
	objects.

2012-05-02  Siva Chandra Reddy  <sivachandra@google.com>

	* gdb.texinfo (Blocks In Python): Add a note saying that future
	improvements to GDB and its infrastructure can move symbols
	across blocks within a symbol table.

2012-04-29  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (Architectures): Remove menu entry `A29K'.
	(A29K): Remove.

2012-04-27  Sergio Durigan Junior  <sergiodj@redhat.com>
	    Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Static Probe Points): New entry, explaining SystemTap
	and generic static probe support on GDB.

2012-04-25  Doug Evans  <dje@google.com>

	* gdb.texinfo (Go): Fix thinko.

	* gdb.texinfo (Supported Languages): Add Go.
	(Go): New node.

2012-04-25  Yao Qi  <yao@codesourcery.com>

	* gdbint.texinfo (Testsuite): New section `Board settings'.

2012-04-23  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (Auto-loading safe path): Remove trailing [@dots{}].
	Three times.

	* gdb.texinfo (Auto-loading safe path): Add trailing @dots{}.
	Three times.

2012-04-22  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (Auto-loading safe path): Replace @itemize @bullet
	by @table @asis.  Fix formatting of one item.

2012-04-18  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (Auto-loading verbose mode): Fix smallexample typo.

2012-04-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	New option "set debug auto-load".
	* gdb.texinfo (Auto-loading): New menu item for auto-load verbose mode.
	(auto-load verbose mode): New node.

2012-04-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	New option "set auto-load safe-path".
	* gdb.texinfo (Auto-loading): Extend the "show auto-load"
	and "info auto-load" examples for safe-path.  Put there also references
	for "set auto-load safe-path" and "show auto-load safe-path".
	New menu item for Auto-loading safe path.
	(Auto-loading safe path): New node.
	(Python Auto-loading): Update the expected output from "Missing"
	to "No".

2012-04-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	auto-load: Implementation.
	* gdb.texinfo (Mode Options): New anchor for -nx.
	(Startup): New anchors for Option -init-eval-command,
	Home Directory Init File
	and Init File in the Current Directory during Startup.
	Mention set auto-load local-gdbinit with a reference.
	Change the sample code to "set auto-load python-scripts".
	(Threads): New anchor set libthread-db-search-path.
	Provide references to libthread_db.so.1 file.
	(Controlling GDB): New menu item for Auto-loading.
	(Auto-loading, Init File in the Current Directory)
	(libthread_db.so.1 file, objfile-gdb.gdb file): New nodes.
	(Python): Rename the menu item Auto-loading to Python Auto-loading.
	(Writing a Pretty-Printer, Objfiles In Python): Update the renamed
	reference.
	(Auto-loading): Rename to ...
	(Python Auto-loading): ... here.  Change "set auto-load-scripts" to
	"set auto-load python-scripts", new anchor for it.  Change
	"show auto-load-scripts" to "show auto-load python-scripts", new anchor
	for it.  Change "info auto-load-scripts"
	to "info auto-load python-scripts", new anchor for it.  Change "scripts"
	to "Python scripts".

2012-04-14  Anton Gorenkov <xgsa@yandex.ru>

	PR mi/13393
	* gdb.texinfo (Print Settings): Extend the description for "set print
	object".
	(GDB/MI Variable Objects): Extend the description for -var-create and
	-var-list-children.

2012-04-11  Siva Chandra Reddy  <sivachandra@google.com>

	* gdb.texinfo (Examining Data): Document the 'explore' command.

2012-03-28  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (GDB/MI Variable Objects): Document what happens
	to the children of a varobj and its update range when -var-update
	returns that the varobj's type changed.

2012-03-27  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (Auto-loading): Move @menu to the end of @node.
	Create two new links fir 'objfile-gdb.py file'
	and 'dotdebug_gdb_scripts section'.

2012-03-27  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (Auto-loading): Rename node reference
	'.debug_gdb_scripts section' to 'dotdebug_gdb_scripts section'.
	Twice.
	(.debug_gdb_scripts section): Rename the node ...
	(dotdebug_gdb_scripts section): ... here.
	(Maintenance Commands): Also rename this node reference.

2012-03-22  Siva Chandra Reddy  <sivachandra@google.com>

	* gdb.texinfo (Python API/Values From Inferior): Add description
	about the new method Value.referenced_value.  Add description on
	how Value.dereference is different (and similar) to
	Value.referenced_value.

2012-03-19  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (File Options): Describe --init-command=FILE, -ix and
	--init-eval-command=COMMAND, -iex.
	(Startup): Describe -iex and -ix.  Simplify the example
	for "set auto-load-scripts off".

2012-03-16  Gary Benson  <gbenson@redhat.com>

	PR breakpoints/10738
	* gdb.texinfo (Inline Functions): Remove the now-unnecessary @item
	stating that GDB cannot set breakpoints on inlined functions.
	(Mode Options): Document --use-deprecated-index-sections.
	(Index Section Format): Document new index section version format.

2012-03-15  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Debugging C Plus Plus): Document "info vtbl".

2012-03-13  Doug Evans  <dje@google.com>

	* gdb.texinfo (Help): Change apropos example to use "alias" instead
	of "reload".
	(Symbols): Delete docs for set/show symbol-reloading.
	* gdbint.texinfo (Defining Other Architecture Features): Delete
	SYMBOL_RELOADING_DEFAULT.
	* refcard.tex: Delete reference to symbol-reloading.

2012-03-07  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (General Query Packets): Document new
	QProgramSignals packet.
	* gdb.texinfo (Remote configuration): Mention
	"program-signals-packet".

2012-03-05  Tristan Gingold  <gingold@adacore.com>

	* gdb.texinfo (General Query Packets): Document xfer:uib:read.

2012-03-03  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (In-Process Agent): New node.
	Document new commands.
	(General Query Packets): Add packet `QAgent'.

2012-03-01  Maciej W. Rozycki  <macro@codesourcery.com>

	* gdb.texinfo (MIPS Features): Add org.gnu.gdb.mips.dsp.

2012-03-01  Scott J. Goldman <scottjg@vmware.com>

	* gdb.texinfo (Commands In Python): Put example python macro in
	COMMAND_USER category rather than COMMAND_OBSCURE.
	Document gdb.COMMAND_USER.
	(User-defined Commands): Update documentation to clarify
	"set/show max-user-call-depth" and "show user" don't apply to python
	commands.  Update documentation to clarify "help user-defined" may
	also include python commands defined as COMMAND_USER.

2012-02-25  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (Startup): Add option -ex description to the option -x
	description.

2012-02-24  Luis Machado  <lgustavo@codesourcery.com>

	* gdb.texinfo (Setting Breakpoints): Mention and explain the
	condition-evaluation breakpoint parameter.
	Mention condition-evaluation mode being shown in "info break".
	(Break Conditions): Add description for target-side
	conditional breakpoints.
	(Remote Configuration): Mention conditional-breakpoints-packet.
	(Packets): Add cond-expr parameter to Z0/Z1 packets and explain
	cond-expr.
	(General Query Packets): Mention new ConditionalBreakpoint feature.

2012-02-22  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Blocks In Python): Clarify block iteration.

2012-02-17  Tom Tromey  <tromey@redhat.com>

	PR python/10753:
	* gdb.texinfo (objfile-gdb.py file): Fix location of auto-load
	directory.

2012-02-14  Stan Shebs  <stan@codesourcery.com>

	* gdb.texinfo (Disabling Breakpoints): Document enable count.

2012-02-13  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (MIPS boards): Refer to mips-elf instead of
	mips-idt-ecoff.

2012-02-09  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (Symbols In Python): Add missing `@end defvar'.

2012-02-07  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Symbols In Python): Document Symbol.needs_frame and
	Symbol.value.

2012-02-07  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Symbols In Python): Document Symbol.line.

2012-01-27  Thomas Schwinge  <thomas@codesourcery.com>

	* gdb.textinfo (Packets): Move vCont paragraph to the correct place.

2012-01-24  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Set Catchpoints): Document "catch load" and "catch
	unload".
	(Files): Mention new catch commands.
	(GDB/MI Async Records): Likewise.

2012-01-24  Gary Benson  <gbenson@redhat.com>

	Delete #if 0'd out code.
	* gdb.texinfo (Frame Info): Remove "info catch".

2012-01-20  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* gdb.texinfo (Remote Configuration): Document
	"set remote hostio-readlink-packet" command.
	(General Query Packets): Document vFile:readlink packet.

2012-01-16  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Specify Location): Document relative file name
	handling.

2012-01-16  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (gdb.printing): Document FlagEnumerationPrinter.

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

	* gdbint.texinfo (Coding Standards): Require braces for two lines of
	code.

2012-01-11  Paul Hilfinger  <hilfingr@adacore.com>

	* gdb.texinfo (Variables): Document use of :: for non-static
	variables.

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

	* gdbint.texinfo (Start of New Year Procedure): Update
	to replace use of copyright.sh by use of copyright.py.

2012-01-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Remove the gdbtui binary.
	* all-cfg.texi (GDBTUI): Remove.
	* gdb.texinfo (Mode Options): Remove the GDBTUI reference.
	(TUI): Remove GDBTUI pindex.  Remove the GDBTUI reference.
	* gdbint.texinfo (Testsuite): Replace `gdbtui' by `gdb -tui'.

2011-12-23  Kevin Pouget  <kevin.pouget@st.com>

	Introduce gdb.FinishBreakpoint in Python.
	* gdb.texinfo (Finish Breakpoints in Python): New subsection.
	(Python API): Add menu entry for Finish Breakpoints.

2011-12-19  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdbint.texinfo (Testsuite): Describe KFAIL and XFAIL in Writing
	tests.

2011-12-16  Doug Evans  <dje@google.com>

	* gdb.texinfo (Server): Document -/stdio argument to gdbserver.

2011-12-16  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.texinfo (Python Commands): Remove "maint set/show print
	stack".  Add documentation for "set/show python print-stack".

2011-12-14  Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo (Implementing a Remote Stub): Explain that you
	should transfer control to the stub in the startup code instead of
	in main.  Mention the need to get past the initial breakpoint.

2011-12-06  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Set Breaks): Update for new behavior.

2011-12-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (Requirements, Remote Protocol): Reference also `Library
	List Format for SVR4 Targets'.
	(General Query Packets): New item qXfer:libraries-svr4:read.
	(Library List Format for SVR4 Targets): New node.

2011-12-01  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Writing a Pretty-Printer): Use append method, not
	add.

2011-11-22  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (GDB/MI Async Records): Document new *stopped
	reasons.

2011-11-20  Stan Shebs  <stan@codesourcery.com>

	* gdb.texinfo (Starting and Stopping Trace Experiments): Document
	note-related options and variables.
	(Tracepoint Packets): Document packet changes.

2011-11-20  Sanjoy Das  <sdas@igalia.com>

	* gdb.texinfo (JIT Interface): Add documentation on writing and
	usind JIT debug info readers.
	(Custom Debug Info, Using JIT Debug Info Readers, Writing JIT
	Debug Info Readers): New nodes.

2011-11-18  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (Create and Delete Tracepoints): Mention pending
	tracepoint.

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

	* gdb.texinfo (Files): Document basenames-may-differ.

2011-11-14  Doug Evans  <dje@google.com>

	* gdb.texinfo (Shell Commands): Document "!".

2011-11-14  Stan Shebs  <stan@codesourcery.com>
	    Kwok Cheung Yeung  <kcy@codesourcery.com>

	* gdb.texinfo (Create and Delete Tracepoints): Describe what is
	needed to get shorter fast tracepoints.
	(Tracepoint Packets): Document new qTMinFTPILen packet.

2011-11-14  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (Create and Delete Tracepoints): Describe changed
	behavior of tracepoint.
	(General Query Packets): New feature InstallInTrace.
	(Remote Configuration): Document "set remote
	install-in-trace-packet".

2011-11-12  Matt Rice  <ratmice@gmail.com>

	* gdb.texinfo (C Preprocessor Macros): Remove info definitions.
	Add arguments to info macro.

2011-11-10  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Compilation): Don't mention -gdwarf-2.  Link to GCC
	manual.
	(Variables): Don't mention -gdwarf-2.  Link to Compilation node.
	(Macros): Add a footnote.
	(C): Remove paragraph about compiler options.
	(C Constants): Mention wide character and string constants.
	(C Plus Plus Expressions): Update compiler option advice.  Mention
	using declarations.  Mention ADL.  Remove old HP compiler
	information.

2011-11-10  Tom Tromey  <tromey@redhat.com>

	PR c++/9257:
	* gdb.texinfo (Print Settings): Add an extra note about the need
	for a vtable.

2011-11-08  Maciej W. Rozycki  <macro@codesourcery.com>

	* gdb.texinfo (MIPS): Remove duplicate "auto" reference from
	"set mips abi" documentation.

2011-11-04  Doug Evans  <dje@google.com>

	* gdb.texinfo (Maintenance Commands): Update docs of "maint time".

2011-11-03  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Stopping): Add menu entry.
	(Continuing and Stepping): Restore @node.  Use @section, not
	@subsection.

2011-11-03  Maciej W. Rozycki  <macro@codesourcery.com>

	* gdb.texinfo (Skipping Over Functions and Files): Remove node
	designation.  Fix "Specify Location" cross-reference.

2011-11-02  Stan Shebs  <stan@codesourcery.com>

	* gdb.texinfo (Tracepoint Action Lists): Document collect/s.
	(General Query Packets): Describe tracenz feature.
	* agentexpr.texi (Bytecode Descriptions): Describe tracenz.

2011-10-28  Paul Koning  <paul_koning@dell.com>

	* gdb.texinfo (gdb.types): Rename deepitems to deep_items.

2011-10-27  Kevin Pouget  <kevin.pouget@st.com>

	* gdb.texinfo ((Frames In Python): Document
	gdb.FRAME_UNWIND_FIRST_ERROR contant.

2011-10-26  Paul Koning  <paul_koning@dell.com>

	* gdb.texinfo (gdb.types): Document new deepitems function.

2011-10-25  Paul Koning  <paul_koning@dell.com>

	PR python/13327

	* gdb.texinfo (Values From Inferior): Add is_lazy attribute,
	fetch_lazy method.

2011-10-20  Phil Muldoon  <pmuldoon@redhat.com>

	PR python/12656

	* gdb.texinfo (Blocks In Python): Document is_static, is_global,
	global_block, static_block function.

2011-10-19  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Commands In Python): Add missing "@"s.

2011-10-13  Kevin Pouget  <kevin.pouget@st.com>

	PR python/13285 Document named constants for frame unwind stop reasons
	* gdb.texinfo (Frames In Python): Document gdb.FRAME_UNWIND_*
	constants.

2011-10-12  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix compatibility with texinfo versions older than 4.12.
	* Makefile.in (MAKEINFO): Set to @MAKEINFO@.
	(MAKEINFOFLAGS, MAKEINFO_EXTRA_FLAGS, MAKEINFO_CMD): New.
	(MAKEHTMLFLAGS): Use MAKEINFO_CMD.
	(gdb.info, gdbint.info, stabs.info, annotate.info): Use MAKEINFO_CMD.
	* gdb.texinfo (Tail Call Frames): Convert @arrow{} to @click, when possible.
	Make the conversion conditional on HAVE_MAKEINFO_CLICK, using variables
	CALLSEQ1A, CALLSEQ1B, CALLSEQ2A and CALLSEQ2B.

2011-10-09  Doug Evans  <dje@google.com>

	* gdb.texinfo (Extending GDB): Document alias command.

2011-10-09  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Support @entry in input expressions.
	* gdb.texinfo (Variables): Describe @entry names suffix.
	(Print Settings): Add anchor for `set print entry-values'.

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

	Display @entry parameter values (without references).
	* gdb.texinfo (Tail Call Frames): Add anchor.  Add self tail call
	example.
	(Print Settings): New description of set print entry-values and show
	print entry-values.

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

	Recognize virtual tail call frames.
	* gdb.texinfo (Optimized Code): Add reference to Tail Call Frames.
	(Tail Call Frames): New node.
	(Frames In Python): Add gdb.TAILCALL_FRAME.

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

	* gdb.texinfo (gdb.printing): Document new `replace' arg to
	register_pretty_printer.

2011-10-07  Phil Muldoon  <pmuldoon@redhat.com>

	PR python/12930
	PR python/12802

	* gdb.texinfo (Breakpoints In Python): Clarify behavior in the
	stop method.

2011-10-07  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* gdb.texinfo (Starting your Program): "set disable-randomization"
	is no longer Linux-specific.
	(Remote Configuration): Document "set remote
	disable-randomization-packet".
	(General Query Packets): Document "QDisableRandomization" packet
	and add it to "qSupported" list.

2011-10-07  Kevin Pouget  <kevin.pouget@st.com>

	Allow Python notification of new object-file loadings.
	* gdb.texinfo (Events In Python): Document `gdb.NewObjFileEvent'
	event type.

2011-10-04  Kevin Pouget  <kevin.pouget@st.com>

	PR python/12691: Add the inferior to Python exited event
	* gdb.texinfo (Events In Python): Describe exited inferior attribute.

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

	* gdb.texinfo (GDB/MI Miscellaneous Commands): Minor
	rephasing.

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

	* gdb.texinfo (GDB/MI Ada Tasking Commands): New node.
	(GDB/MI Miscellaneous Commands): Add `ada-task-info'
	as possible feature returned by the `-list-features'
	command.

2011-09-28  Paul Koning  <paul_koning@dell.com>

	* gdb.texinfo (gdb.Type): Document field access by dictionary
	key syntax.

2011-09-28  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (Files): Update options for `add-symbol-file'.
	Add one space after option `-s'.  Remove @r{} markup.

2011-09-27  Stan Shebs  <stan@codesourcery.com>

	* gdb.texinfo (Tracepoint Action Lists): Document $_ret.

2011-09-16  Hui Zhu  <teawater@gmail.com>

	* gdb.texinfo (Tracepoint Restrictions): Change *$esp@300
	to *(unsigned char *)$esp@300.

2011-09-15  Paul Koning  <paul_koning@dell.com>

	* gdb.texinfo: Make style of Python functions and methods match
	the syntax of Python.  Also put class and module names explicitly
	on function, member, and variable names, matching Python
	documentation conventions.

2011-09-15  Kevin Pouget  <kevin.pouget@st.com>

	PR Python/12692 Add gdb.selected_inferior() to Python interface.
	* gdb.texinfo (Inferiors In Python): Describe new
	gdb.selected_inferior() function.

2011-09-15  Kevin Pouget  <kevin.pouget@st.com>

	Handle multiple breakpoint hits in Python interface:
	* gdb.texinfo (Events In Python): New function documentation:
	gdb.BreakpointEvent.breakpoints. Indicate that
	gdb.BreakpointEvent.breakpoint is now deprecated.

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

	* gdb.texinfo: Set EDITION to "Tenth" and change ISBN.

2011-08-25  Andrew Oakley  <andrew@ado.is-a-geek.net>

	* gdb.texinfo (Types In Python): Document 'bitpos' for enums.

2011-08-17  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.texinfo (Prompt): Add set/show extended-prompt
	documentation
	(Basic Python): Add prompt_hook anchor.
	(Python modules): Reword module text to reflect multiple modules.
	(gdb.prompt): Document gdb.prompt module.

2011-08-14  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (General Query Packets): Document qXfer:fdpic:read packet.

2011-08-14  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (Standard Target Features): Document C6x features.
	(TIC6x Features): New node.

2011-08-12  Doug Evans  <dje@google.com>

	* gdb.texinfo (Symbols In Python): Document symbol.type.

2011-08-09  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.texinfo (Python): Document command and function
	auto-loading.

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

	* gdb.texinfo (whatis, ptype): Highlight their differences.  Describe
	typedefs unrolling.  Extend the sample code by an inner typedef and
	outer typedefs unrolling.

2011-07-26  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.texinfo (Caching Remote Data): Document {set,show} dcache
	size and line-size.

2011-07-21  Matt Rice  <ratmice@gmail.com>

	PR macros/12999
	* gdb.texinfo (Macros): Add info definitions and info macros commands.
	Update text and cindex entries for info macro command.

2011-07-21  Phil Muldoon  <pmuldoon@redhat.com>

	* observer.texi (GDB Observers): Add before_prompt observer.
	* gdb.texinfo (Basic Python): Add documentation for prompt
	substitution.

2011-07-11  Phil Muldoon  <pmuldoon@redhat.com>

	PR python/12438
	* gdb.texinfo (Python Commands): Add deprecate note to maint
	  set/show python print-stack.  Document set/show python
	  print-backtrace.

2011-07-05  Thiago Jung Bauermann  <bauerman.ibm.com>

	* gdb.texinfo: Fix typos.

2011-07-01  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Debugging Output): Document set debug
	check-physname.

2011-06-29  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (GDB/MI Miscellaneous Commands): Document
	breakpoint-notifications feature.

2011-06-29  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* gdb.texinfo (Target Description): Remove warning about
	possibly unstable format.

2011-06-03  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (GDB/MI Async Records): Document 'exit-code' field.
	(Events In Python): Note that exit_code is optional.

2011-05-17  Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo (Remote Protocol) <Overview>: Mention vCont is
	required for multi-threading support.
	(Remote Protocol) <Packets>: Mention that 'c', 's', 'C', 'S' and
	Hc are deprecated for multi-threading debugging.  Point readers at
	the vCont packet.

2011-05-15  Doug Evans  <dje@google.com>

	* gdb.texinfo (Auto-loading): Document printing of missing scripts.

2011-05-13  Doug Evans  <dje@google.com>

	* gdb.texinfo (Threads): Document $sdir,$pdir.
	(Server): Document $pdir exception.

	* gdb.texinfo (Auto-loading): Document "info auto-load-scripts".

	* gdb.texinfo (Threads): Clarify default value for
	libthread-db-search-path.

	* gdb.texinfo (Completion): Update example.
	(Debugging Output): Delete `set/show debug lin-lwp-async'.

2011-05-12  Kwok Cheung Yeung  <kcy@codesourcery.com>

	* gdb.texinfo: Document change in the behaviour of the enable and
	disable GDB commands when applied to tracepoints.
	Document the EnableDisableTracepoints remote stub feature.
	Document QTEnable and QTDisable in the list of tracepoint packets.

2011-05-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* Makefile.in (GDB_DOC_SOURCE_INCLUDES): Rename inc-hist.texinfo to
	hsuser.texi.
	* gdb.texinfo <!SYSTEM_READLINE>: Rename inc-hist.texinfo inclusion and
	comment to hsuser.texi.  Change rluser.texi name in the comment.

2011-05-10  Doug Evans  <dje@google.com>

	* gdb.texinfo (Threads): If an empty path is provided for
	libthread-db-search-path it is reset to its default value.
	(Server): Ditto.

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

	* gdb.texinfo (Requirements): Fix typo.  Mention --with-iconv-bin.

2011-05-06  Sergio Durigan Junior  <sergiodj@linux.vnet.ibm.com>
	    Thiago Jung Bauermann  <bauerman@br.ibm.com>

	Implement support for PowerPC BookE masked watchpoints.
	* gdb.texinfo (Set Watchpoints): Document mask parameter.
	(PowerPC Embedded): Mention support of masked watchpoints.

2011-05-03  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (In Memoriam): Replace litteral uses of `GDB' with
	`@value{GDBN}'.

2011-05-03  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (titlepage): Remove dedication.
	(In Memoriam): New appendix.

2011-04-27  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Index Section Format): Change the version to 5.
	Describe the different formula.

2011-04-24  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Starting and Stopping Trace Experiments): New anchor
	for disconnected tracing.
	(Multi-Process Mode for @code{gdbserver}): Mention --multi and
	extended-remote relationship.  Mention --once.
	(TCP port allocation lifecycle of @code{gdbserver}): New.

2011-04-23  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Server): Improve indexing.  Index all optional
	switches to gdbserver.

2011-04-20  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Index Section Format): New node.
	(Top): Add new node to menu.

2011-04-20  Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo (Maintenance Commands): Document `maint print
	remote-registers'.

2011-04-20  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Trace File Format): Move node later.

2011-04-19  Tom Tromey  <tromey@redhat.com>

	* gdbint.texinfo (Register Information Functions): Remove
	duplicate "the".
	* gdb.texinfo (Emacs): Remove duplicate "to".
	(GDB/MI Variable Objects): Remove duplicate "the".
	(General Query Packets): Likewise.

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

	* gdb.texinfo (GDB/MI Output Records): Fix menu entry for
	"GDB/MI Ada Exception Information" node.

2011-04-01  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (GDB/MI Ada Exception Information): Document
	the "exception-name" field in the *stopped async record.

2011-03-31  Thiago Jung Bauermann  <bauerman@br.ibm.com>
	    Sergio Durigan Junior  <sergiodj@linux.vnet.ibm.com>

	Implement support for PowerPC BookE ranged breakpoints.
	* gdb.texinfo (PowerPC Embedded): Document ranged breakpoints.

2011-03-28  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Set Tracepoints): Fix typo.

2011-03-24  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Specify Location): Document `function:label'
	linespec.

2011-03-18  Phil Muldoon  <pmuldoon@redhat.com>

	PR python/12149

	* gdb.texinfo (Basic Python): Update gdb.write and flush text.

2011-03-17  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.texinfo (Blocks In Python): Add is_valid method description.
	(Inferiors In Python): Likewise.
	(Threads In Python): Likewise.
	(Symbols In Python): Likewise.
	(Objfiles In Python): Likewise.
	(Symbol Tables In Python): Likewise.

2011-03-15  Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo (Auto Display) <undisplay, enable display, disable
	display>: Explain that the commands accept number ranges.

2011-03-14  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.texinfo (Breakpoints In Python): Add description and example
	of Python stop function operation.

2011-03-10  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.texinfo (Parameters In Python): Document get_set_string and
	get_show_string methods.

2011-02-28  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (Tracepoint Conditions): Fix missing parenthesis.

	* gdb.texinfo (Starting and Stopping Trace Experiments): Fix
	circular-trace-buffer name.

2011-02-28  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Inferiors and Programs): Fix small error introduced
	in the previous change.

2011-02-27  Michael Snyder  <msnyder@vmware.com>

	* gdb.texinfo (Inferiors and Programs): Update commands to show
	that they can accept multiple arguments.

2011-02-24  Joel Brobecker  <brobecker@adacore.com>

	Revert the following patch (code patch was not approved):
	2011-02-21  Hui Zhu  <teawater@gmail.com>
	* agentexpr.texi (bytecode descriptions): add printf.
	* gdb.texinfo (tracepoint action lists): add printf.

2011-02-23  Doug Evans  <dje@google.com>

	* gdb.texinfo (Symbols In Python): Fix mention of C++, use C@t{++}.

2011-02-23  Michael Snyder  <msnyder@vmware.com>

	* gdb.texinfo (Set Breaks): Add @dots{} to arguments of info break.
	(Set Watchpoints): Add @dots{} to argument of info watchpoints.
	(Listing Tracepoints): Add @dots{} to argument of info tracepoints.

2011-02-22  Doug Evans  <dje@google.com>

	* gdb.texinfo (Symbols In Python): Document lookup_global_symbol.
	Clarify behaviour of lookup_symbol when `block' argument is omitted,
	add description of result, fix @defun formatting.

2011-02-21  Hui Zhu  <teawater@gmail.com>

	* agentexpr.texi (Bytecode Descriptions): Add printf.
	* gdb.texinfo (Tracepoint Action Lists): Add printf.

2011-02-18  Tom Tromey  <tromey@redhat.com>

	* agentexpr.texi (Bytecode Descriptions): Document pick and rot.

2011-02-14  Michael Snyder  <msnyder@vmware.com>

	* gdb.texinfo (threads): Document argument for "info threads" cmd.
	Document new command "thread find".

2011-02-14  Michael Snyder  <msnyder@vmware.com>

	* gdb.texinfo (Threads): Update example of new thread message.

2011-02-14  Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo (Remote Configuration): Mention set/show remote
	traceframe-info.
	(Tools/Packages Optional for Building GDB): Mention that expat is
	used for traceframe info.
	(Remote Protocol) <Menu>: Add "Traceframe Info Format".
	(General Query Packets) <qSupported>: Describe the
	qXfer:traceframe-info:read feature.
	(qXfer::read): Describe qXfer:traceframe-info:read.
	(Traceframe Info Format): New section.

2011-02-04  Pedro Alves  <pedro@codesourcery.com>

	* gdbint.texinfo (Formatting): Mention some formatting guidelines
	for casts and unary operators.

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

	* gdb.texinfo (GDB/MI Async Records): Document that symbols-loaded
	is not useful.

2011-01-25  Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo: s/value optimized out/optimized out/g

2011-01-21  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Other Misc Settings): Rework part of the
	documentation of the "set interactive mode" command.

2011-01-19  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Threads): Document thread name output and `thread
	name' command.
	(Threads In Python): Document Thread.name attribute.
	(GDB/MI Thread Commands): Document thread attributes.

2011-01-12  Andrew Burgess  <aburgess@broadcom.com>

	* gdb.texinfo (GDB/MI Data Manipulation): Update to reflect
	changes in mi/mi-cmd-disas.c

2011-01-12  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Threads): Remove duplicate text.  Update examples.
	Fix "thread apply" text.

2011-01-11  Sergio Durigan Junior  <sergiodj@linux.vnet.ibm.com>
	    Thiago Jung Bauermann  <bauerman@br.ibm.com>

	Implement support for PowerPC BookE ranged watchpoints.
	* gdb.texinfo (PowerPC Embedded): Document ranged watchpoints and
	the "set powerpc exact-watchpoints" flag.

2011-01-07  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Python API): Add descriptions to @menu items.

2011-01-06  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Frames In Python): Document gdb.newest_thread.

2010-01-06  Paul Pluzhnikov  <ppluzhnikov@google.com>

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

2011-01-06  Tom Tromey  <tromey@redhat.com>

	PR python/12133:
	* gdb.texinfo (Frames In Python): Document various frame
	constants.

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

	* doc/agentexpr.texi, doc/all-cfg.texi, doc/annotate.texinfo,
	doc/gdb.texinfo, doc/gdbint.texinfo, doc/observer.texi,
	doc/refcard.tex, doc/stabs.texinfo: Copyright year update.

2011-01-03  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* Makefile.in (diststuff): Remove gdb-cfg.texi and GDBvn.texi.
	(clean): Add GDBvn.texi.

2010-12-29  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Ada Glitches): Remove paragraph describing the
	occasional case where the debugger prints an array address
	instead of the array itself.

2010-12-23  Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo (Packets) <read registers packet>: Document support
	for registers that were not collected.

2010-12-15  Doug Evans  <dje@google.com>

	* gdb.texinfo (Startup): Document auto-loading of scripts during
	startup.
	(Auto-loading): Delete "maint set python auto-load on|off".
	Add "set auto-load-scripts on|off".

2010-12-07  Doug Evans  <dje@google.com>

	* gdb.texinfo (Mode Options): Document -data-directory.
	(Data Files): Add reference to -data-directory.

2010-11-29  Doug Evans  <dje@google.com>

	* gdb.texinfo (Pretty-Printer Introduction): Change
	printer-name:subprinter-name to printer-name;subprinter-name.

2010-11-29  Phil Muldoon  <pmuldoon@redhat.com>

	PR python/12199

	* gdb.texinfo (Breakpoints In Python): Document "delete" method.

2010-11-23  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Top): Check SYSTEM_READLINE.
	(Editing): Likewise.
	(Command History): Likewise.
	(TUI Keys): Likewise.
	(Bug Reporting): Conditionally include rluser.texi and
	inc-history.texinfo.
	* Makefile.in (READLINE_TEXI_INCFLAG): New variable.
	(GDB_DOC_SOURCE_INCLUDES): Add comment.
	(GDBvn.texi): Set SYSTEM_READLINE when appropriate.
	(gdb.dvi): Use READLINE_TEXI_INCFLAG.
	(gdb.pdf): Likewise.
	(gdb.info): Likewise.
	(gdb/index.html): Likewise.

2010-11-23  Tom Tromey  <tromey@redhat.com>

	* Makefile.in (Makefile): Run ../config.status.
	(distclean): Update.
	* configure: Remove.
	* configure.ac: Remove.

2010-11-12  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Basic Python): Update.  Add xref.
	(Exception Handling): Document new exception classes.
	(Types In Python): Update.
	(Frames In Python): Update.

2010-11-11  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.texinfo (Breakpoints In Python): Document "internal"
	parameter, and visible attribute.

2010-11-05  Doug Evans  <dje@google.com>

	* gdb.texinfo (Source Path): Document "set directories".

2010-11-05  Ken Werner  <ken.werner@de.ibm.com>

	* gdb.texinfo: (Summary) Add mention about OpenCL C language support.
	(OpenCL C): New node.

2010-11-02  Doug Evans  <dje@google.com>

	* gdb.texinfo (Pretty Printing): Expand into three sections,
	introduction, example, and commands.
	(Python API): Delete section Disabling Pretty-Printers, merge into
	Selecting Pretty-Printers.
	(Writing a Pretty-Printer): New section.  Move the pretty-printer
	example here, and reformat to match python coding style.  Add a second
	example using the gdb.printing module.
	(Python modules): Add gdb.printing.

2010-10-29  Doug Evans  <dje@google.com>

	* gdb.texinfo (Python): Fix long line.

2010-10-20  Doug Evans  <dje@google.com>

	* gdbint.texinfo (Misc Guidelines): Renamed from Coding.
	All references updated.  Correct sections marked as subsections.
	(Coding Standards): New chapter.  Move the coding standard related
	subsections here.  Add section on Python coding standards.

2010-10-13  Doug Evans  <dje@google.com>

	* gdb.texinfo (Python): Add "Python modules".
	(Types in Python): Add reference to gdb.types section.
	(Python modules): New node.

2010-10-11  Doug Evans  <dje@google.com>

	* gdb.texinfo (Values From Inferior): Add reference to "Types in
	Python" from gdb.Value.type description.

2010-09-28  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Ravenscar Profile): New node.

2010-09-22  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Values From Inferior): Mention Value.__init__.

2010-09-22  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Values From Inferior): Clarify that
	value.dynamic_type works only in C++ programs with RTTI.

2010-09-15  Paul Bolle  <pebolle@tiscali.nl>

	* gdb.texinfo (Character Sets): Correctly reference host-charset
	in example.

2010-09-13  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (GDB/MI Stack Manipulation) <-stack-list-frames>:
	Document "fullname" and "from".

2010-09-01  Marc Khouzam  <marc.khouzam@ericsson.com>

	* gdb.texinfo (GDB/MI Miscellaneous Commands): Document new
	feature `reverse' output by -list-target-features.

2010-08-31  H.J. Lu  <hongjiu.lu@intel.com>

	* gdb.texinfo (i386 Features): Remove an extra "@item".

2010-08-30  Tom Tromey  <tromey@redhat.com>

	PR python/11792:
	* gdb.texinfo (Values From Inferior): Document dynamic_type.

2010-08-24  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (ARM Features): Document
	org.gnu.gdb.arm.m-profile.

2010-08-23  Tom Tromey  <tromey@redhat.com>

	PR python/11145:
	* gdb.texinfo (Values From Inferior): Document dynamic_cast and
	reinterpret_cast methods.

2010-08-23  Tom Tromey  <tromey@redhat.com>

	PR python/11915:
	* gdb.texinfo (Types In Python): Document array method.

2010-08-18  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.texinfo (PowerPC Embedded): Mention support for the DVC register.

2010-08-16   Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Set Watchpoints): Document -location option.

2010-08-13  Doug Evans  <dje@google.com>

	* gdb.texinfo (.debug_gdb_scripts section): Fix typo.

2010-08-13  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.texinfo (GDB/MI Data Manipulation): Document
	-data-read-memory-raw and -data-write-memory-raw.

2010-08-11  Tom Tromey  <tromey@redhat.com>
	    Phil Muldoon <pmuldoon@redhat.com>

	* gdb.texinfo (Basic Python): Describe post_event API.

2010-08-11  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.texinfo (Basic Python): Describe solib_address and
	decode_line Python APIs

2010-08-10  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Pretty Printing API): Document
	gdb.default_visualizer.

2010-08-10  Tom Tromey  <tromey@redhat.com>

	Revert gdb-add-index addition:
	* gdb.texinfo (Index Files): Don't document gdb-add-index.

2010-08-07  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Eli Zaretskii <eliz@gnu.org>

	* gdb.texinfo (Mode Options) <-batch>
	(Basic Python) <gdb.execute>: Describe setting width and height.

2010-07-31  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.texinfo (Threads): Document 'debug libthread-db'.

2010-07-30  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Index Files): Mention gdb-add-index.

2010-07-30  Hui Zhu  <teawater@gmail.com>

	* gdb.texinfo (Inferiors and Programs): Update the introduce of
	"detach inferior" and "kill inferior".

2010-07-28  CHENG Renquan  <rqcheng@smu.edu.sg>

	* gdb.texinfo (Machine Code): Update description of two forms of
	arguments, and add new example to demonstrate the new form.

2010-07-27  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.texinfo (Values From Inferior): Add value inferior function
	call description.

2010-07-19  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (Active Targets): Fix wrong comma placement.

2010-07-19  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Eli Zaretskii  <eliz@gnu.org>

	Make core files the process_stratum.
	* gdb.texinfo (Active Targets): Remove core_stratum.  Include
	record_stratum example.

2010-07-13  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Index Files): New node.

2010-07-13  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (GDB/MI Variable Objects): Remove extra 'for'.

2010-07-13  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Specify Location): Document labels.

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

	* gdb.texinfo (Create and Delete Tracepoints): Add more index
	entries for fast tracepoints and static tracepoints.

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

	* gdb.texinfo (General Query Packets) <qfThreadInfo,
	qsThreadInfo>: Spell out `l' as ell.

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

	* gdb.texinfo (Convenience Variables): Document $_sdata.
	(Commands to Set Tracepoints): Describe static tracepoints.  Add
	`Listing Static Tracepoint Markers' menu entry.  Document
	"strace".
	(Tracepoint Action Lists): Document collecting $_sdata.
	(Listing Static Tracepoint Markers): New subsection.
	(Tracepoints support in gdbserver): Mention static tracepoints.
	(remote packets, enabling and disabling): Mention
	read-sdata-object.
	(General Query Packets) <qSupported>: Document qXfer:sdata:read
	and StaticTracepoint.
	Mention qTfSTM, qTsSTM and qTSTMat as tracepoint packets.
	Document qXfer:sdata:read.
	(Tracepoint packets): Document qTfSTM, qTsSTM and qTSTMat.

2010-06-29  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Threads In Python): Fix unmatched @end table.

2010-06-28  Phil Muldoon  <pmuldoon@redhat.com>
	    Tom Tromey  <tromey@redhat.com>
	    Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.texinfo (Inferiors In Python): New node.
	* gdb.texinfo (Threads In Python): New node.

2010-06-28  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Python): Document what the python directory is
	and what its location is.
	(Basic Python): Document the gdb.PYTHONDIR constant.

2010-06-25  Tom Tromey  <tromey@redhat.com>

	PR python/10808:
	* gdb.texinfo (Basic Python): Document new gdb.execute argument.

2010-06-24  Hui Zhu  <teawater@gmail.com>

	* gdb.texinfo: (Commands for Controlled Output): Add
	documentation for command "eval".

2010-06-21  Stan Shebs  <stan@codesourcery.com>

	* gdb.texinfo: Add explicit @node and @appendix for GFDL.
	* annotate.texinfo: Ditto.
	* gdbint.texinfo: Ditto.
	* stabs.texinfo: Ditto.

2010-06-22  Hui Zhu  <teawater@gmail.com>

	* gdb.texinfo: (Process Record and Replay): Add documentation
	for command "set record memory-query".

2010-06-21  Stan Shebs  <stan@codesourcery.com>

	* gdb.texinfo: Relicense under GFDL version 1.3.
	* annotate.texinfo: Relicense under GFDL version 1.3.
	* gdbint.texinfo: Relicense under GFDL version 1.3.
	* stabs.texinfo: Relicense under GFDL version 1.3.
	* fdl.texi: Update to version 1.3.

2010-06-18  Stan Shebs  <stan@codesourcery.com>

	* gdb.texinfo (Operating System Auxiliary Information): Describe
	"info os" when no arguments given.

	* gdb.texinfo (Debugging Programs with Multiple Threads): Describe
	$_thread.

2010-06-18  Hui Zhu  <teawater@gmail.com>

	* gdb.texinfo: (Process Record and Replay): Add documentation
	for commands "record save" and "record restore".

2010-06-16  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo: Include information about the correct use
	of addresses in the `watch' command.

2010-06-11  Stan Shebs  <stan@codesourcery.com>

	* gdb.texinfo (Observer Mode): New section.
	(General Query Packets): Document QAllow.

2010-06-04  Doug Evans  <dje@google.com>

	* gdb.texinfo (Python API): New node `Disabling Pretty-Printers'.

2010-06-03  Doug Evans  <dje@google.com>

	* gdbint.texinfo (Coding): Add subsection on command names.

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

	* gdb.texinfo (Maintenance Commands): Document maint set dwarf2
	always-disassemble.

2010-06-01  Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo (Set Tracepoints): Mention tracepoints support in
	gdbserver, and add cross reference.
	(Tracepoints support in gdbserver): New subsection.

2010-05-26  Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo (General Query Packets) <qSupported>: Describe the
	`qRelocInsn' feature.
	(Relocate instruction reply packet): New subsection
	of `Tracepoint Packets'.
	(Tracepoint Packets): Mention that packets QTDP and QTStart
	support the qRelocInsn request, and add cross reference to new
	subsection.

2010-05-25  Doug Evans  <dje@google.com>

	* gdb.texinfo (Exception Handling): Document gdb.GdbError.
	(Commands In Python): Document gdb.string_to_argv.

2010-05-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdbint.texinfo (Host Definition): Remove items NORETURN and
	ATTR_NORETURN.

2010-04-29  Phil Muldoon  <pmuldoon@redhat.com>
	    Tom Tromey  <tromey@redhat.com>
	    Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.texinfo (Parameters In Python): New Node.

2010-04-29  Mihail Zenkov  <mihail.zenkov@gmail.com>

	* gdb.texinfo: (Summary) Add mention about D language support.
	(Filenames): Add D suffixes.
	(D): New node.

2010-04-26  Pierre Muller  <muller@ics.u-strasbg.fr>

	* gdbint.texinfo (CANNOT_STEP_HW_WATCHPOINTS): Remove explanation
	of macro deleted from GDB code.

2010-04-24  Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo (Commands to specify files): Describe what how GDB
	looks up DOS-based filesystem paths on the system root.  Document
	the new `set/show target-file-system-kind' commands.

2010-04-23  Doug Evans  <dje@google.com>

	* gdb.texinfo (Python): Move Auto-loading section here ...
	(Python API): from here.
	(Auto-loading): Add docs for .debug_gdb_scripts auto-loaded scripts.
	(Maintenance Commands): Add docs for "maint print section-scripts".

2010-04-20  Chris Moller  <cmoller@redhat.com>

	* gdb.texinfo (Setting Breakpoints): Added description of
	filename-qualified rbreak.
	* refcard.tex (Breakpoints and Watchpoints): Added brief
	description of filename-qualified rbreak.

2010-04-22  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (Data): New @menu reference to Pretty Printing.
	(Python API): Change the reference to Pretty Printing API.
	(Pretty Printing): Move the user part under the Data node.  Reformat
	the sample output to 72 columns.  Create a new reference to Pretty
	Printing API.  Rename the API part ...
	(Pretty Printing API): To a new node name.
	(Selecting Pretty-Printers, Progspaces In Python, Objfiles In Python)
	(GDB/MI Variable Objects): Change references to Pretty Printing API.

2010-04-21  Stan Shebs  <stan@codesourcery.com>

	* gdb.texinfo (Tracepoint Actions): Mention synonymy of actions
	and commands.
	(Listing Tracepoints): Update to reflect current behavior.

2010-04-22  Pierre Muller  <muller@ics.u-strasbg.fr>

	* gdb.texinfo (Examining memory): Update for change in string
	display with explicit size.

2010-04-19  Pedro Alves  <pedro@codesourcery.com>

	PR breakpoints/8554.

	* gdb.texinfo (Save Breakpoints): New node.
	(save-tracepoints): Rename to ...
	(save tracepoints): ... this.  Mention that `save-tracepoints' is
	a deprecated alias to `save tracepoints'.

2010-04-16  Pierre Muller  <muller@ics.u-strasbg.fr>

	* gdb.texinfo ($_tlb): Document new automatic convinience variable.
	(info w32 thread-information-block): Document new command.
	(qGetTIBAddress): Document new gdbserver query.
	(maint set/show show-all-tib): Document new command.

2010-04-15  Doug Evans  <dje@google.com>

	* gdb.texinfo (Python API): Add progspaces section.
	(Selecting Pretty-Printers): Progspace pretty-printers are
	searched too.
	(Progspaces In Python): New section.

	* gdb.texinfo (Command Files): Add docs for new "source -s" option.

2010-04-14  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.texinfo (Pretty Printing): Document behaviour when to_string
	returns None.

2010-04-09  Stan Shebs  <stan@codesourcery.com>

	* gdb.texinfo (gdb/mi Tracepoint Commands) <-trace-status>:
	Describe the `frames-created' field, tweak grammar.

2010-04-09  Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo (gdb/mi Tracepoint Commands) <-trace-status>:
	Describe the `circular' and `disconnected' fields.

2010-04-09  H.J. Lu  <hongjiu.lu@intel.com>

	* gdb.texinfo (maint print registers): Mention unavailable and
	invisible registers.

2010-04-09  Phil Muldoon  <pmuldoon@redhat.com>
	    Thiago Jung Bauermann  <bauerman@br.ibm.com>
	    Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Breakpoints In Python): New Node.

2010-04-08  Stan Shebs  <stan@codesourcery.com>

	* gdb.texinfo (Tracepoint Packets): Describe disconn and circular
	trace status fields.

2010-04-08  H.J. Lu  <hongjiu.lu@intel.com>

	* gdb.texinfo (i386 Features): Make org.gnu.gdb.i386.avx
	optional.  Make org.gnu.gdb.i386.avx requires
	org.gnu.gdb.i386.avx.

2010-04-08  Doug Evans  <dje@google.com>

	* gdb.texinfo (Command Files): Document that gdb skips $cdir in
	search path, and document that gdb only scans the search path if
	the script's path doesn't specify a directory.

2010-04-05  Doug Evans  <dje@google.com>

	* gdb.texinfo (maint show python auto-load): Fix typo.

2010-04-04  Stan Shebs  <stan@codesourcery.com>

	* gdb.texinfo (Setting Breakpoints): "info watch" no longer a synonym.
	(Setting Watchpoints): Update description of "info watch".
	(Disabling Breakpoints): Only "info break" lists all.

	* gdb.texinfo (Tracepoint Restrictions): Document PC inference.
	(tdump): Explain how tdump works.

2010-04-01  Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo (Break Commands): Clarify `commands' changes, and
	add cross reference.

2010-03-31  Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo (TUI Commands): Mention that in some cases, these
	commands error out.

2010-03-30  H.J. Lu  <hongjiu.lu@intel.com>

	* gdb.texinfo (i386 Features): Add org.gnu.gdb.i386.avx.

2010-03-30  H.J. Lu  <hongjiu.lu@intel.com>

	* gdb.texinfo (General Query Packets): Add xmlRegisters.

2010-03-29  Stan Shebs  <stan@codesourcery.com>
	    Nathan Sidwell  <nathan@codesourcery.com>

	* gdb.texinfo (GDB/MI Tracepoint Commands): Add notes about the
	GDBN equivalent.
	(Set Tracepoints): Remove mention that conditional tracepoints
	don't exist.
	(Tracepoint Actions): Clarify when while-stepping collection
	happens, note that while-stepping does not automatically collect
	$pc.

2010-03-29  Stan Shebs  <stan@codesourcery.com>

	* gdb.texinfo (Tracepoint Packets): Describe QTDPsrc.
	(General Query Packets): Describe TracepointSource.

2010-03-27  Matt Rice  <ratmice@gmail.com>

	* gdb.texinfo (ARM): Document arguments to "target sim".
	(Set Catchpoints): Use @dots{} instead of @r{...}.

2010-03-26  Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo (Tracepoint Packets): Remove mention that
	terror:string may be plain text, and drop mention of X prefix.

2010-03-26  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.texinfo (GDB/MI Tracepoint Commands): Add comma after @xref.

2010-03-24  Stan Shebs  <stan@codesourcery.com>

	* gdb.texinfo (Tracepoint Packets): Document trace error status.

2010-03-24  Tom Tromey  <tromey@redhat.com>

	PR breakpoints/9352:
	* gdb.texinfo (Break Commands): Update.

2010-03-24  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.texinfo (GDB/MI Tracepoint Commands): Document MI tracepoint
	commands.

2010-03-16  Stan Shebs  <stan@codesourcery.com>

	* gdb.texinfo (Starting and Stopping Trace Experiments): Describe
	circular-trace-buffer.
	(Tracepoint Packets): Describe QTBuffer, and details of the
	qTStatus reply.

2010-03-12  Stan Shebs  <stan@codesourcery.com>
	    Nathan Sidwell  <nathan@codesourcery.com>

	* gdb.texinfo (Tracepoint Actions): Clarify that while-stepping is
	doing instruction stepping.
	(Tracepoint Restrictions): New node.

2010-03-10  Tom Tromey  <tromey@redhat.com>

	* gdbint.texinfo (Symbol Handling): Update.

2010-03-08  Tom Tromey  <tromey@redhat.com>

	PR cli/9591:
	* gdb.texinfo (Mode Options): Mention lack of pagination and
	confirmation with --batch.
	(Screen Size): Mention --batch.
	(Messages/Warnings): Likewise.

2010-03-05  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Basic Python): Document target_charset and
	target_wide_charset.

2010-03-05  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Data): Link to pretty-printing.
	(Output Formats): Likewise.  Correct text.

2010-03-01  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Types): Describe <struct> and <flags>.

2010-02-28  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.texinfo (Frames In Python): Add block parameter and
	description to read_var text.

2010-02-26  Phil Muldoon  <pmuldoon@redhat.com>
	    Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Types In Python): Describe block argument in
	template_argument and gdb.lookup_type.

2010-02-24  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Cygwin Native): Fix typo.

2010-02-24  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.texinfo (Frames In Python): Add block, find_sal, function
	and select method descriptions.
	(Python API): Add Blocks In Python, Symbols in Python and Symbol
	Tables in Python to menu.
	(Blocks In Python): New node.
	(Symbols In Python): New node.
	(Symbol Tables in Python): New node.

2010-02-24  Vladimir Prus  <vladimir@codesourcery.com>

	Multiexec MI

	gdb/
	* breakpoint.c (clear_syscall_counts): Take struct inferior*.

	gdb/doc/
	* gdb.texinfo (GDB/MI Command Syntax): Document notification
	changes.
	(GDB/MI Program Execution): Document current behaviour of
	--all and --thread-group.
	(GDB/MI Miscellaneous Commands): Document -add-inferior and
	-remove-inferior.
	* observer.texi (inferior_added, inferior_removed): New
	observers.

2010-02-19  Tom Tromey  <tromey@redhat.com>

	* gdbint.texinfo (Getting Started): Fix @node.
	(Debugging GDB): Likewise.

2010-02-13  Joel Brobecker  <brobecker@adacore.com>

	* gdbint.texinfo (Testsuite): New section "Testsuite Configuration",
	documenting the gdb_test_timeout variable.

2010-02-12  Jakob Engblom  <jakob@virtutech.com>

	* gdb.texinfo (MI commands): Added documentation of --reverse
	option to a set of MI commands. Restructured documentation of MI
	commands --exec-continue to reflect the complexity of reverse
	execution.

2010-02-12  Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo (Using the Collected Data): Specify that the address
	range of `tfind outsize' is exclusive, and that the address range
	of `tfind range' is inclusive.
	(Tracepoint Packets): Specify that the address range of
	`QTFrame:range' is inclusive, and that the address range of
	`QTFrame:outside' is exclusive

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

	* gdb.texinfo (GDB/MI Result Records): Clarify ^running.

2010-02-10  Tom Tromey  <tromey@redhat.com>

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

2010-02-09  H.J. Lu  <hongjiu.lu@intel.com>

	* gdb.texinfo (Predefined Target Types): Add i387_ext,
	i386_eflags and i386_mxcsr.

2010-02-08  H.J. Lu  <hongjiu.lu@intel.com>

	* gdb.texinfo: Document i386 target features.

2010-02-05  Doug Evans  <dje@google.com>

	* gdbint.texinfo (Testsuite): Add a new section to document the
	various DejaGnu variables that may be overridden.
	Document INTERNAL_GDBFLAGS.

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

	PR cli/8830:
	* gdb.texinfo (Files): -readnow comes before the filename for file
	and symbol-file.

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

	* gdb.texinfo (Architecture-Specific Protocol Details): New section.
	Document ARM breakpoint types.
	(Register Packet Format): Move into the new section.
	(Packets): Describe the KIND argument for Z0, z0, Z1, and z1 packets.

2010-01-21  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (File Options): Adjust the documentation of this
	switch to refer to the "source" command rather than partially
	duplicating some of the relevant information.
	(Extending GDB): Introduce and document the set/show script-extension
	setting.
	(Command Files): Add note explaining that the "source" command
	is also used to evalute scripts written in other languages.
	Remove the short slightly incorrect reference to sourcing Python
	scripts.
	(Python Commands): Document how to execute a Python script from GDB.

2010-01-19  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Command Files): Fix typo.

2010-01-18  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (File Options): Document -x on .py files.
	(Command Files): Document handling of Python scripts.

2010-01-18  Jie Zhang  <jie.zhang@analog.com>

	* Makefile.in (ANNOTATE_DOC_BUILD_INCLUDES): Add GDBvn.texi.

2010-01-15  Stan Shebs  <stan@codesourcery.com>

	* gdb.texinfo (Trace Files): New section.
	(Tracepoint Packets): Document QTSave and qTBuffer.
	(Trace File Format): New appendix.

2010-01-13  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.texinfo (Values From Inferior): Document lazy_string value
	method.
	(Python API): Add Lazy strings menu item.
	(Lazy Strings In Python): New node.

2010-01-13  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.texinfo (GDB/MI Thread Information): New.
	(GDB/MI Async Records): Document the core field in *stopped.
	(GDB/MI Miscellaneous Commands): Expand -list-thread-groups
	documentation
	(Process list): Document that osdata document may contain
	threads.
	(Remote Serial Protocol): Document qXfer:threads.

2010-01-06  Stan Shebs  <stan@codesourcery.com>

	* gdb.texinfo (Starting and Stopping Trace Experiments): Document
	disconnected tracing.
	(Tracepoint Packets): Document new protocol.

2010-01-05  Stan Shebs  <stan@codesourcery.com>

	* gdb.texinfo (Create and Delete Tracepoints): Describe fast
	tracepoints.
	(Tracepoint Packets): Describe remote protocol for fast
	tracepoints.

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

	Update the "Start of New Year Procedure".
	* gdbint.texinfo: Add the list of files that need to be updated
	manually.  Minor reformatting.

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

	* refcard.tex: Update copyright year in header and text.

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

	* agentexpr.texi: Add 2010 to the list of copyright years.
	* annotate.texinfo: Likewise.
	* gdb.texinfo: Likewise.
	* gdbint.texinfo: Likewise.
	* observer.texi: Likewise.
	* stabs.texinfo: Likewise.

2009-12-31  Stan Shebs  <stan@codesourcery.com>

	* gdb.texinfo (Tracepoint Actions): Describe teval.

2009-12-29  Stan Shebs  <stan@codesourcery.com>

	* gdb.texinfo (Tracepoint Actions): Describe default-collect.

2009-12-28  Stan Shebs  <stan@codesourcery.com>

	* gdb.texinfo (Trace State Variables): New section.
	(Tracepoint Packets): Describe trace state variable packets.
	* agentexpr.texi (Bytecode Descriptions): Describe trace state
	variable bytecodes.

2009-12-28  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Symbols): "info variables" prints definitions, not
	declarations.

2009-12-21  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.texinfo (GDB/MI Miscellaneous Commands): Clarify that
	-gdb-exit behaviour.

2009-12-20  Joel Brobecker  <brobecker@adacore.com>

	* gpl.texi: Update to version 3 of the GPL.

2009-12-20  Joel Brobecker  <brobecker@adacore.com>

	* Makefile.in: Update copyright header.
	* observer.texi: Fix the copyright header of the generated files.

2009-12-08  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.texinfo (Types In Python): Describe range function.

2009-12-03  Richard Ward  <richard.j.ward1@googlemail.com>

	* gdb.texinfo (Types In Python): Describe "is_base_class".

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

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

2009-12-02  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* observer.texi: New memory_changed observer.

2009-12-01  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Reverse Execution): Fix typo.

2009-11-24  Daniel Jacobowitz  <dan@codesourcery.com>

	PR gdb/8704

	* gdb.texinfo (Thread-Specific Breakpoints): Thread specifiers
	are allowed after the breakpoint condition.

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

	PR python/10782:
	* gdb.texinfo (Types In Python): Document Type.pointer.

2009-11-23  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.texinfo (Machine Code): Adjust.

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

	* agentexpr.texi (Tracing On Symmetrix): Delete section.
	(Using Agent Expressions): Delete cross reference.

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

	* gdbint.texinfo, stabs.texinfo: Move the @setchapternewpage
	and @settitle directives up to help makeinfo find them.

2009-11-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (set debug-file-directory, show debug-file-directory)
	(Auto-loading): Use plural and note one can use multiple components now.

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

	* gdb.texinfo (GDB/MI Stack Manipulation): Make
	-stack-list-arguments have the same documentation for parameter
	as -stack-list-locals. Add comas.

2009-10-27  Tom Tromey <tromey@redhat.com>
	    Eli Zaretskii <eliz@gnu.org>

	PR python/10781

	* gdb.texinfo (Values From Inferior): Document cast method.

2009-10-22  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.texinfo (Machine Code): Mention function name in disasssembly
	and adjust example.

2009-10-22  Michael Snyder  <msnyder@vmware.com>

	* gdb.texinfo (Process Record and Replay): Document new form of
	info record command.  Also document the new save and restore
	commands.

2009-10-21  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.texinfo (Machine Code): Mention current pc marker.
	(Memory): Likewise.

2009-10-19  Pedro Alves  <pedro@codesourcery.com>
	    Stan Shebs  <stan@codesourcery.com>

	* observer.texi (new_inferior): Rename to...
	(inferior_appeared): ... this.

	* gdb.texinfo (Inferiors): Rename node to ...
	(Inferiors and Programs): ... this.  Mention running multiple
	programs in the same debug session.
	<info inferiors>: Mention the new 'Executable' column if "info
	inferiors".  Update examples.  Document the "add-inferior",
	"clone-inferior", "remove-inferior" and "maint info
	program-spaces" commands.
	(Process): Rename node to...
	(Forks): ... this.  Document "set|show follow-exec-mode".

2009-10-11  Michael Snyder  <msnyder@vmware.com>

	* gdb.texinfo (ReverseStep): Show default as "unsupported".
	(ReverseContinue): Ditto.

2009-10-08  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.texinfo (Server): Document libthread-db-search-path.

2009-10-08  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdbint.texinfo (i386_stopped_by_hwbp): Remove.

2009-10-06  Michael Eager  <eager@eagercon.com>

	* gdb.texinfo (Contributors): Add self for Xilinx MicroBlaze.
	(Embedded Processors): Add MicroBlaze.
	(MicroBlaze): New.  Describe Xilinx MicroBlaze

2009-10-04  Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo (Remote Protocol): Don't mention vCont;T.

2009-09-26  Pierre Muller  <muller@ics.u-strasbg.fr>

	* gdb.texinfo (Cygwin Native): Mention support for Ctrl-BREAK.

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

	* observer.texi (solib_unloaded): Document explicitly the fact that
	this observer is called before the associated symbols are unloaded.

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

	* gdb.texinfo (GDB/MI Stack Manipulation): Document
	-stack-list-variables.

2009-09-18  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (GDB/MI Variable Objects): -enable-pretty-printing
	is experimental.

2009-09-17  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.texinfo (convenince variables): Mention
	$_siginfo could be empty.

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

	* gdb.texinfo (GDB/MI Variable Objects): Document
	-enable-pretty-printing, -var-set-update-range, dynamic varobjs.
	Expand -var-update documentation.

2009-09-14  Sergio Durigan Junior <sergiodj@linux.vnet.ibm.com>

	* gdb.texinfo (Set Catchpoints): Documentation about the catch syscall
	feature.

2009-09-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdbint.texinfo (Unwinding the Frame ID): Reference outer_frame_id.

2009-09-10  Michael Snyder  <msnyder@vmware.com>

	* gdb.texinfo (qSupported): Mention new ReverseContinue and
	ReverseStep replies to the qSupported query.

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

	Add documentation for set/show interactive-mode.
	* gdb.texinfo (Other Misc Settings): New node.

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

	* gdb.texinfo (Caching Data of Remote Targets): Add note on
	non-stop mode's affect on remote caching.

2009-08-31  Jacob Potter  <jdpotter@google.com>
	    Doug Evans  <dje@google.com>

	* gdb.texinfo (Caching Data of Remote Targets): Update text.
	Mark `set/show remotecache' options as obsolete.
	Document new `set/show stack-cache' option.
	Update text for `info dcache'.

2009-08-27  Doug Evans  <dje@google.com>

	* gdb.texinfo (Symbols): Delete `set print symbol-loading'.
	(Files): Add note on new optional regex arg to `info sharedlibrary'.

2009-08-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* gdbint.texinfo (Releasing GDB): Fix confusing sentence
	about autoconf.

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

	* gdb.texinfo (Debugging Multiple Inferiors): Add "info inferiors"
	small example, and describe its columns.  Replace "inferior-id" by
	"infno" throughout.

2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* gdbint.texinfo (Releasing GDB): Point to
	README-maintainer-mode file for required autoconf version.
	* configure.ac: Do not substitute datarootdir, htmldir,
	pdfdir, docdir.  Do not process --with-datarootdir,
	--with-htmldir, --with-pdfdir, --with-docdir.
	* configure: Regenerate.

	* configure: Regenerate.

2009-08-20  Reid Kleckner  <reid@kleckner.net>

	* gdb.texinfo: Add chapter on JIT interface.

2009-08-07  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.texinfo (Server Prefix): Explain that server prefix suppresses
	confirmation request.

2009-08-05  Jeremy Bennett  <jeremy.bennett@embecosm.com>

	* gdb.texinfo (Separate Debug Files, Remote Protocol): Clarified
	CRC definitions.

2009-08-03  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.texinfo (GDB/MI Breakpoint Commands): Document
	-break-commands.

2009-07-31  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdb.texinfo (Cell Broadband Engine SPU architecture): Document the
	"set spu auto-flush-cache" and "show spu auto-flush-cache" commands.

2009-07-31  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdb.texinfo (Cell Broadband Engine SPU architecture): Document the
	"set spu stop-on-load" and "show spu stop-on-load" commands.

2009-07-31  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdb.texinfo (Target Descriptions): Document <compatible> element.

2009-07-28  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (ARM Features): Document org.gnu.gdb.arm.vfp and
	org.gnu.gdb.arm.neon.

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

	* gdb.texinfo (Target Description Format): Mention the new <osabi>
	optional element.
	(subsection OS ABI): New subsection.

2009-07-14  Stan Shebs  <stan@codesourcery.com>

	* gdb.texinfo (Tracepoint Conditions): New section.
	(General Query Packets): Describe ConditionalTracepoints.
	(Tracepoint Packets): Describe condition field.
	(Maintenance Commands): Describe maint agent-eval.
	* agentexpr.texi (Using Agent Expressions): Mention eval usage.

2009-07-11  Hui Zhu  <teawater@gmail.com>

	* gdb.texinfo (disassemble): Add a new modifier /r
	to "disassemble" command to make it print the raw instructions
	in hex as well as in symbolic form.

2009-07-09  Tom Tromey  <tromey@redhat.com>

	* gdbint.texinfo (Testsuite): Document parallel make check.

2009-07-09  Tom Tromey  <tromey@redhat.com>

	* gdbint.texinfo (Testsuite): Document test transcripts.

2009-07-10  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.texinfo (Values From Inferior): Add length parameter
	description.

2009-07-04  Chris Genly  <chris@genly.us>

	* gdb.texinfo (GDB/MI Variable Objects): Document child definition
	in -var-list-children.  Fix example according to what the code
	does.

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

	* gdb.texinfo (Debugging multiple inferiors): Document the
	"inferior", "detach inferior" and "kill inferior" commands.
	(Debugging Programs with Multiple Processes): Adjust to mention
	generic "inferior" commands.  Delete mention of "detach fork" and
	"delete fork".  Cross reference to "Debugging multiple inferiors"
	section.

2009-07-02  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdbint.texinfo (Item Output Functions): Update signature
	for ui_out_field_core_addr.

2009-07-02  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdbint.texinfo (Examples of Use of @code{ui_out} functions):
	Update example code extrated from breakpoint.c.

2009-06-28  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.texinfo (GDB/MI Program Context): @ignore unimplemented
	MI commands.
	(GDB/MI Symbol Query): Likewise.
	(GDB/MI File Commands): Likewise.
	(GDB/MI File Transfer Commands): Likewise.
	(GDB/MI Target Manipulation): Likewise.
	(GDB/MI Miscellaneous Commands): Likewise.

2009-06-27  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Debugging Optimized Code): New chapter.
	(Compiling for Debugging): Reference it.  Move some
	text to the new section.

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, '13, 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
coding: utf-8
End:
