2021-07-02  Pedro Alves  <pedro@palves.net>

	* gdb.texinfo (TUI): <TUI Mouse Support>: New node/section.

2021-06-25  Andrew Burgess  <andrew.burgess@embecosm.com>

	* gdb.texinfo (Symbols): Document new output format for 'info
	sources'.

2021-06-25  Andrew Burgess  <andrew.burgess@embecosm.com>

	* gdb.texinfo (GDB/MI File Commands): Document --group-by-objfile
	extension for -file-list-exec-source-files.

2021-06-25  Andrew Burgess  <andrew.burgess@embecosm.com>

	* gdb.texinfo (GDB/MI File Commands): Document extensions to
	-file-list-exec-source-files.

2021-06-25  Andrew Burgess  <andrew.burgess@embecosm.com>

	* python.texinfo (Breakpoints In Python): Add BP_CATCHPOINT
	description.

2021-06-25  Andrew Burgess  <andrew.burgess@embecosm.com>

	* guile.texinfo (Breakpoints In Guile): Add BP_CATCHPOINT
	description.

2021-06-21  Andrew Burgess  <andrew.burgess@embecosm.com>

	* gdb.texinfo (RISC-V Features): Mention vector register feature.

2021-06-21  Andrew Burgess  <andrew.burgess@embecosm.com>

	* python.texi (Unwinding Frames in Python): Mention
	PendingFrame.level.
	(Frames In Python): Mention Frame.level.

2021-06-16  Felix Willgerodt  <felix.willgerodt@intel.com>

	* gdb.texinfo (Process Record and Replay): Stop mentioning lines
	for "record function-call-history" and
	"set record function-call-history-size".

2021-06-08  Lancelot Six  <lsix@lancelotsix.com>

	* python.texi (Writing a Pretty-Printer): Use 'is None' instead of
	'== None'.

2021-06-05  Shahab Vahedi  <shahab@synopsys.com>

	* gdb.texinfo (Source and Machine Code): Document 'set
	disassembler-options' support for the ARC target.

2021-06-04  Hannes Domani  <ssbssa@yahoo.de>

	* python.texi (TUI Windows In Python): Document Window.click.

2021-05-29  Hannes Domani  <ssbssa@yahoo.de>

	* python.texi (Writing a Frame Filter): Fix example.

2021-05-27  Hannes Domani  <ssbssa@yahoo.de>

	* python.texi (TUI Windows In Python): Document "full_window"
	argument.

2021-05-27  Hannes Domani  <ssbssa@yahoo.de>

	* python.texi (Symbols In Python): Document gdb.SYMBOL_LOC_LABEL.

2021-05-25  Hannes Domani  <ssbssa@yahoo.de>

	* python.texi (Symbols In Python): Fix gdb.SYMBOL_LOC_COMMON_BLOCK.

2021-05-24  Andrew Burgess  <andrew.burgess@embecosm.com>

	* gdb.texi (Initialization Files): Add '@:' after 'e.g.'.
	(Source Path): Likewise.
	(GDB/MI Development and Front Ends): Likewise.
	(ARM Features): Likewise.
	(gdb man): Likewise.

2021-05-14  Tankut Baris Aktemur  <tankut.baris.aktemur@intel.com>

	* python.texi (Inferiors In Python): Mention the 'connection_num'
	attribute.

2021-05-12  George Barrett  <bob@bob131.so>

	* guile.texi (Values From Inferior In Guile): Add documentation
	for value-const-value.

2021-05-12  George Barrett  <bob@bob131.so>

	* guile.texi (Values From Inferior In Guile): Add documentation
	for value-reference-value.  Add documentation for
	value-rvalue-reference-value.

2021-05-12  George Barrett  <bob@bob131.so>

	* guile.texi (Types In Guile): Add documentation for
	TYPE_CODE_RVALUE_REF.

2021-05-10  Andrew Burgess  <andrew.burgess@embecosm.com>

	* guile.texinfo (Breakpoints In Guile): Reword sentence.
	* python.texinfo (Breakpoints In Python): Reword sentence.

2021-05-09  Andrew Burgess  <andrew.burgess@embecosm.com>

	* python.texinfo (Python Commands): Document 'set debug
	py-unwind' and 'show debug py-unwind'.

2021-05-09  Andrew Burgess  <andrew.burgess@embecosm.com>

	* python.texinfo (Python Commands): Document 'set debug
	py-breakpoint' and 'show debug py-breakpoint'.

2021-05-06  Tankut Baris Aktemur  <tankut.baris.aktemur@intel.com>

	* gdb.texinfo (GDB/MI Breakpoint Commands): Mention the
	'--force' flag of the '-break-condition' command.

2021-05-06  Tankut Baris Aktemur  <tankut.baris.aktemur@intel.com>

	* gdb.texinfo (GDB/MI Breakpoint Commands): Mention the
	'--force-condition' flag of the '-break-insert' and
	'-dprintf-insert' commands.

2021-05-04  Simon Marchi  <simon.marchi@polymtl.ca>

	* python.texi (Types In Python): Re-organize Type.fields doc.
	Mention handling of array types.  Correct doc for when calling
	the method on another type.

2021-04-28  Andrew Burgess  <andrew.burgess@embecosm.com>

	* gdb.texinfo (Initialization Files): Use @env when referencing
	environment variables.
	(Shell Commands): Likewise.
	(Starting): Likewise.
	(Arguments): Likewise.
	(Environment): Likewise.
	(Edit): Likewise.
	(Compiling and Injecting Code): Likewise.
	(Files): Likewise.
	(Command History): Likewise.
	(Screen Size): Likewise.
	(Emacs): Likewise.

2021-04-28  Andrew Burgess  <andrew.burgess@embecosm.com>

	* python.texinfo (Python Commands): Mention new commands.

2021-04-25  Lancelot Six  <lsix@lancelotsix.com>

	PR gdb/22640
	* gdb.texinfo (Symbols): Describe the 'x' and 'd' flags of the
	ptype command, describe 'set print type hex' and 'show print
	type hex' commands.  Update 'ptype/o' examples.

2021-04-21  Tankut Baris Aktemur  <tankut.baris.aktemur@intel.com>

	* gdb.texinfo (GDB/MI Breakpoint Information): Update the
	description for the 'enabled' field of breakpoint locations.

2021-04-15  Tom Tromey  <tom@tromey.com>
	    Andrew Burgess  <andrew.burgess@embecosm.com>

	* gdb.texinfo (Mode Options): Mention "set startup-quietly".

2021-04-15  Andrew Burgess  <andrew.burgess@embecosm.com>

	PR cli/25956
	* gdb.texinfo (File Options): Mention new command line options.
	(Startup): Discuss when early init files are processed.
	(Initialization Files): Add description of early init files.
	(Output Styling): Update description of 'version' style.
	(gdb man): Mention early init files.

2021-04-14  Andrew Burgess  <andrew.burgess@embecosm.com>

	* gdb.texinfo (GDB/MI Miscellaneous Commands): Add missing
	parentheses to GDB prompt in example, and replace '(gdb)' with
	'(@value{GDBP})' in one example where the latter was already in
	use.

2021-03-29  Luis Machado  <luis.machado@linaro.org>

	* gdb.textinfo (Memory Tagging): Make it a @section.

2021-03-24  Luis Machado  <luis.machado@linaro.org>

	* gdb.texinfo (Data): Document memory tagging changes to the "print"
	command.
	(Examining Memory): Document memory tagging changes to the "x"
	command.
	(Memory Tagging): Update with more information on changes to the "x"
	and "print" commands.

2021-03-24  Luis Machado  <luis.machado@linaro.org>

	* gdb.texinfo (Memory Tagging): New subsection and node.
	(AArch64 Memory Tagging Extension): New subsection.

2021-03-24  Luis Machado  <luis.machado@linaro.org>

	* gdb.texinfo (General Query Packets): Document qMemTags and
	QMemTags.  Document the "memory-tagging" feature.
	(ARM-Specific Protocol Details): Document memory tag types.

2021-03-18  Andrew Burgess  <andrew.burgess@embecosm.com>

	* python.texinfo (Parameters In Python): Return empty string in
	small example code.

2021-02-24  Andrew Burgess  <andrew.burgess@embecosm.com>

	* gdb.texinfo (Files): Document new 'maint info target-sections'
	command.

2021-02-17  Lancelot Six  <lsix@lancelotsix.com>

	PR cli/17290
	* gdb.texinfo (Remote Configuration): Fix show remote
	interrupt-sequence and show remote interrupt-on-connect.

2021-02-11  Andrew Burgess  <andrew.burgess@embecosm.com>

	* gdb.texinfo (Files): Update documentation for 'maint info
	sections'.

2021-02-08  Andrew Burgess  <andrew.burgess@embecosm.com>

	* python.texinfo (TUI Windows In Python): Extend description of
	TuiWindow.is_valid.

2021-02-02  Lancelot SIX  <lsix@lancelotsix.com>

	* gdb.texinfo (Inferiors Connections and Programs): Document the
	inferior command when used without argument.

2021-01-27  Tom Tromey  <tromey@adacore.com>

	* gdb.texinfo (Auto-loading extensions): Remove extraneous space.

2021-01-25  Marco Barisione  <mbarisione@undo.io>

	* python.texi: Add parentheses to print statements/functions.

2021-01-25  Andrew Burgess  <andrew.burgess@embecosm.com>

	* gdb.texinfo (Specify Location): Move menu to the end of the
	node.
	(Auto-loading): Likewise.
	(Extending GDB): Likewise.
	(TUI): Likewise.
	(Operating System Information): Likewise.

2021-01-22  Andrew Burgess  <andrew.burgess@embecosm.com>

	PR cli/25956
	* gdb.texinfo (Output Styling): Document version style.

2021-01-22  Andrew Burgess  <andrew.burgess@embecosm.com>

	* gdb.texinfo (Auto-loading extensions): Add additional cross
	references and move @menu to the end of the node.

2021-01-22  Andrew Burgess  <andrew.burgess@embecosm.com>

	* gdb.texinfo (Aliases): Move @menu to the end of the node.

2021-01-22  Andrew Burgess  <andrew.burgess@embecosm.com>

	* gdb.texinfo (PowerPC Embedded): Down case contents of @var.

2021-01-21  Andrew Burgess  <andrew.burgess@embecosm.com>

	* gdb.texinfo (Commands): Update menu.
	(Extending GDB): Likewise.
	(Command aliases default args): Moved later into the document,
	added a cindex entry.  Renamed the section 'Automatically prepend
	default arguments to user-defined aliases' to 'Default Arguments'.
	(Aliases): Moved earlier in the document.  Minor rewording of the
	first paragraph, down-cased the text inside all uses of @var, and
	added a cross reference to the Python code.  Renamed the section
	'Creating new spellings of existing commands' to 'Command
	Aliases'.

2021-01-21  Hannes Domani  <ssbssa@yahoo.de>

	PR python/19151
	* python.texi (Breakpoints In Python): Document
	gdb.BP_HARDWARE_BREAKPOINT.

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

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

2020-12-29  Hannes Domani  <ssbssa@yahoo.de>

	* python.texi (Frame Decorator API): Fix method name.

2020-12-23  Alex Bennée  <alex.bennee@linaro.org>

	* gdb.texinfo (Packets): Clarify language for ? packet.

2020-12-21  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Requirements): Add GMP to list of requirements.

2020-12-18  Hannes Domani  <ssbssa@yahoo.de>

	* python.texi (TUI Windows In Python): Remove erroneous 'a'.

2020-12-18  Hannes Domani  <ssbssa@yahoo.de>

	* python.texi (Values From Inferior): Document the address keyword.

2020-12-17  Simon Marchi  <simon.marchi@polymtl.ca>

	PR gdb/27088
	* gdb.texinfo (Range Checking): Fix "show check range" command
	name.

2020-12-13  Andrew Burgess  <andrew.burgess@embecosm.com>

	* gdb.texinfo (Caching Target Data): Document 'maint flush
	dcache'.

2020-12-13  Andrew Burgess  <andrew.burgess@embecosm.com>

	* gdb.texinfo (Symbols): Document 'maint flush symbol-cache'.
	(Maintenance Commands): Document 'maint flush register-cache'.

2020-12-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* Makefile.in: Delete GDBvn.texi and version.subst only in
	the maintainer-clean target.

2020-11-29  Hannes Domani  <ssbssa@yahoo.de>

	PR python/26974
	* python.texi: Fix docu for static members argument.

2020-11-19  Andrew Burgess  <andrew.burgess@embecosm.com>

	* gdb.texinfo (Debugging Output): Document 'set/show debug
	fortran-array-slicing'.
	(Special Fortran Commands): Document 'set/show fortran
	repack-array-slices'.

2020-11-12  Andrew Burgess  <andrew.burgess@embecosm.com>

	* gdb.texinfo (Maintenance Commands): Update description of 'maint
	print c-tdesc'.

2020-11-02  Andrew Burgess  <andrew.burgess@embecosm.com>

	* gdb.texinfo (Mode Options): Descriptions of initialization files
	has been moved to 'Initialization Files'.
	(Startup): Likewise.
	(Initialization Files): New node.
	(gdb man): Update to mention alternative file paths.
	(gdbinit man): Likewise.

2020-10-27  Tankut Baris Aktemur  <tankut.baris.aktemur@intel.com>

	* gdb.texinfo (Set Breaks): Document the '-force-condition' flag
	of the 'break'command.
	* gdb.texinfo (Conditions): Document the '-force' flag of the
	'condition' command.

2020-10-27  Tankut Baris Aktemur  <tankut.baris.aktemur@intel.com>

	* gdb.texinfo (Set Breaks): Document disabling of breakpoint
	locations for which the breakpoint condition is invalid.

2020-10-06  Michael Forney  <mforney@mforney.org>

	* Makefile.in (HAVE_NATIVE_GCORE_HOST): Add for gcore.1
	install condition.

2020-10-04  Simon Marchi  <simon.marchi@polymtl.ca>

	* gdb.texinfo (Debugging Output): Add set/show debug event-loop.

2020-10-04  Simon Marchi  <simon.marchi@polymtl.ca>

	* gdb.texinfo (Debugging Output): Add empty lines, fix typo.

2020-09-13  Pedro Alves  <pedro@palves.net>

	* gdb.texinfo (GDB/MI Breakpoint Commands): Document
	"-break-insert --qualified" and "-dprintf-insert --qualified".

2020-08-25  Shahab Vahedi  <shahab@synopsys.com>

	* gdb.texinfo (Synopsys ARC): Document LP_START, LP_END and BTA.

2020-08-25  Shahab Vahedi  <shahab@synopsys.com>

	* gdb.texinfo (Synopsys ARC): Update the documentation for ARC
	Features.

2020-08-07  Tom Tromey  <tromey@adacore.com>

	* gdb.texinfo (Ravenscar Profile): Add examples.
	Document runtime initialization limitation.

2020-08-04  Jose E. Marchesi  <jose.marchesi@oracle.com>

	* gdb.texinfo (Contributors): Add information for the eBPF
	support.
	(BPF): New section.

2020-07-28  Andrew Burgess  <andrew.burgess@embecosm.com>

	* python.texi (Unwinding Frames in Python): Update descriptions
	for PendingFrame.read_register and
	gdb.UnwindInfo.add_saved_register.
	(Frames In Python): Update description of Frame.read_register.

2020-07-28  Andrew Burgess  <andrew.burgess@embecosm.com>

	* python.texi (Registers In Python): Document new find function.

2020-07-22  Kevin Buettner  <kevinb@redhat.com>

	* gdb.texinfo (Maintenance Commands): Add documentation for
	new command "maintenance print core-file-backed-mappings".

2020-07-22  Reuben Thomas  <rrt@sc3d.org>

	* gdb.texinfo (Remote Protocol, Overview): Correct the description
	of which remote protocol commands are mandatory for a stub to
	implement.

2020-07-20  Ludovic Courtès  <ludo@gnu.org>

	* doc/guile.texi (Guile Introduction): Mention Guile 3.0.

2020-07-20  Ludovic Courtès  <ludo@gnu.org>

	* guile.texi (Memory Ports in Guile): Mark
	'memory-port-read-buffer-size',
	'set-memory-port-read-buffer-size!',
	'memory-port-write-buffer-size',
	'set-memory-port-read-buffer-size!' as deprecated.
	(Guile Introduction): Clarify which Guile
	versions are supported.

2020-07-13 Paul Carroll <pcarroll@codesourcery.com>

	PR gdb/25716

	* gdb.texinfo (Frame Apply): Remove anchor for 'frame
	apply' and adjust xrefs to it.

2020-07-11  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* gdb.texinfo (Attach): Update exec-file-mismatch doc.

2020-07-08  Hannes Domani  <ssbssa@yahoo.de>

	* gdb.texinfo: Document Windows drive conversion of
	'set auto-load scripts-directory'.

2020-07-06  Andrew Burgess  <andrew.burgess@embecosm.com>

	* gdb.texi (Registers): Add @anchor for 'info registers
	<reggroup>' command.
	* python.texi (Architectures In Python): Document new
	register_groups method.
	(Registers In Python): Document two new object types related to
	register groups.

2020-07-06  Andrew Burgess  <andrew.burgess@embecosm.com>

	* python.texi (Python API): Add new section to the menu.
	(Frames In Python): Add new @anchor.
	(Architectures In Python): Document new registers method.
	(Registers In Python): New section.

2020-07-06  Andrew Burgess  <andrew.burgess@embecosm.com>

	* python.texi (Unwinding Frames in Python): Document
	PendingFrame.architecture method.

2020-06-26  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Shell Commands): More accurate description of use
	of $SHELL.  Reported by Sandra Loosemore <sandra@codesourcery.com>.

2020-06-23  Andrew Burgess  <andrew.burgess@embecosm.com>

	* gdb.texinfo (Maintenance Commands): Document new 'maint print
	xml-desc' command.

2020-06-22  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* gdb.texinfo (Command aliases default args): New node documenting
	how to use default args for a command using aliases.
	(Aliases): Document the new 'DEFAULT-ARGS...' option.
	(Help): Update help aliases text and describe when full alias
	definition is provided.

2020-06-11  Tom Tromey  <tromey@adacore.com>

	* gdb.texinfo (Index Files): Reword.  Remove Ada limitation.

2020-06-10  Jonny Grant  <jg@jguk.org>

	* gdb.texinfo: Remove broken links Previous and Up from
	contents.

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

	* gdb.texinfo (Output Styling): Don't mention completion styling.
	(Editing): Don't mention readline completion styling.

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

	* gdb.texinfo (Output Styling): Mention completion styling.
	(Editing): Mention readline completion styling.

2020-05-19  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Attach): Update exec-file-mismatch description to
	mention build IDs.
	(Separate Debug Files): Add "build id" anchor.

2020-05-15  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* gdb.texinfo (Help): Document the help and apropos changes.
	(Aliases): Document new meaning of -a abbreviation flag.

2020-05-05  Kamil Rytarowski  <n54@gmx.com>

	* gdb.texinfo (info proc, info proc cmdline, info proc cwd)
	(info proc exe, info proc mappings, info proc stat): Mention
	NetBSD support.

2020-04-28  Tom Tromey  <tom@tromey.com>

	* python.texi (Commands In Python): Document gdb.COMMAND_TUI.

2020-04-27  Tom Tromey  <tromey@adacore.com>

	* python.texi (Types In Python): Mention missing fields.  Add
	dynamic type example.

2020-04-24  Tom Tromey  <tromey@adacore.com>

	PR python/23662:
	* python.texi (Types In Python): Document new features.

2020-04-15  Artur Shepilko  <nomadbyte@gmail.com>

	* gdb.texinfo: Transform @var{[host]} to [@var{host}]; this
	clears makeinfo warnings.
	* python.texi: Add a missing period trailing an @xref{} clause;
	this clears a makeinfo warning.

2020-03-06  Tom de Vries  <tdevries@suse.de>

	* gdb.texinfo: Fix "the the".

2020-03-04  Tom de Vries  <tdevries@suse.de>

	* gdb.texinfo: Remove trailing "done." in "Reading symbols from" lines.
	* python.texi: Same.

2020-03-02  Andrew Burgess  <andrew.burgess@embecosm.com>

	* gdb.texinfo (Command History): Extend description for
	GDBHISTFILE and GDBHISTSIZE, add detail about the filename for
	'set history filename' being optional.  Describe the effect of an
	empty history filename on 'set history save on'.

2020-02-24  Andrew Burgess  <andrew.burgess@embecosm.com>

	* gdb.texinfo (Threads): Fix alignment in 'info threads' example
	output.

2020-02-22  Tom Tromey  <tom@tromey.com>

	* python.texi (Python API): Add menu item.
	(TUI Windows In Python): New node.

2020-02-22  Tom Tromey  <tom@tromey.com>

	PR tui/17850:
	* gdb.texinfo (TUI Commands): Document horizontal layouts.

2020-02-22  Tom Tromey  <tom@tromey.com>

	* gdb.texinfo (TUI Overview): Mention user layouts.
	(TUI Commands): Document "tui new-layout".

2020-01-26  Tom Tromey  <tromey@adacore.com>

	* gdb.texinfo (M68K Features): Document floating-point feature
	correspondence.

2020-01-25  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* gdb.texinfo (Attach): Document the new option and the
	set/show commands.
	(Connecting): Reference the exec-file-mismatch option.

2020-01-10  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Starting): Say "current inferior not connected"
	instead of "GDB not connected".
	(Inferiors and Programs): Rename node to ...
	(Inferiors Connections and Programs): ... this.  Update all
	references.  Talk about multiple target connections.  Update "info
	inferiors" info to mention the connections column.  Describe "info
	connections".  Document "add-inferior -no-connection".
	* guile.texi, python.texi: Update cross references.

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

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

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-31  Alan Hayward  <alan.hayward@arm.com>

	* gdb.texinfo: Describe SVE feature.

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-20  Artemiy Volkov  <artemiyv@acm.org>

	PR gdb/14441
	* doc/gdb.texinfo (C Plus Plus Expressions): Mention that GDB
	supports both lvalue and rvalue references.

2017-03-20  Artemiy Volkov  <artemiyv@acm.org>

	PR gdb/14441
	* python.texi (Types in Python): Add TYPE_CODE_RVALUE_REF to
	table of constants.

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-28  Peter Bergner  <bergner@vnet.ibm.com>

	* gdb.texinfo: Document new set/show disassembler-options
	commands.

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-06  Andrew Burgess  <andrew.burgess@embecosm.com>

	* gdb.texinfo (TUI): Restructure documentation on TUI layout and
	focus commands.

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

	* gdb.texinfo (TUI): Add comma after @xref.

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>

	* observer.texi (inferior_call_pre, inferior_call_post)
	(memory_changed, register_changed): New observers.

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-07-19  Ajit Agarwal  <ajitkum@xilinx.com>

	* gdb.texinfo (MicroBlaze Features): Added.

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-12  Paul Koning  <paul_koning@dell.com>

	Add support for Python 3.
	* gdb.texinfo (Inferior.read_memory): Mention that the return
	value is a memoryview object if Python 3.

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-21  Jie Zhang  <jie.zhang@analog.com>

	* gdb.texinfo: Escape "{" and "}".

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  Vladimir Prus  <vladimir@codesourcery.com>

	Implement MI notification for new threads.
	* observer.texi (new_thread): Document.

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-16  Gaius Mulley  <gaius@glam.ac.uk>

        * gdb.texinfo: Add TSIZE definition, removed statement about
	unbounded arrays being unimplemented.

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  Paul Brook  <paul@codesourcery.com>

	* gdb.texinfo: Document ieee_single and ieee_double target types.

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  Steve Ellcey  <sje@cup.hp.com>

	* gdbint.texinfo (warning flags): Add -Wno-char-subscripts.

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-13  Nathan Sidwell  <nathan@codesourcery.com>

	* gdb.texinfo (system): Document behaviour with zero length
	string.

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-29  Steve Ellcey  <sje@cup.hp.com>

	* gdb.texinfo: Remove gdbserve.nlm documentation.

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-03-07  Joel Brobecker  <brobecker@adacore.com>

	* observer.texi (executable_changed): New observer.

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-11  Joel Brobecker  <brobecker@gnat.com>

	* gdbint.texinfo (Host Definition): Remove documentation for
	USE_O_NOCTTY, no longer used.

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-29  Kazu Hirata  <kazu@cs.umass.edu>

	* fdl.texi: Revert the last change.

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-20  George Helffrich  <george@gly.bris.ac.uk>

	* gdb.texinfo: Document edit command.

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-21  Jason Thorpe  <thorpej@wasabisystems.com>

	* gdbint.texinfo: Document new generic OS ABI framework.

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  Paul Eggert  <eggert@twinsun.com>

	* Makefile.in (GDBvn.texi): Change "head -1" to "sed q", since
	POSIX 1003.1-2001 no longer allows "head -1".

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-06  Richard Earnshaw  <rearnsha@arm.com>

	* gdbint.texinfo (FLOAT_INFO): Mark as deprecated.
	(PRINT_FLOAT_INFO): Document it.

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-07  Jim Blandy  <jimb@zwingli.cygnus.com>

	* gdbint.texinfo (SYMBOLS_CAN_START_WITH_DOLLAR): Document.

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.

Sun Aug  8 12:06:47 1999  Fred Fish  <fnf@cygnus.com>

	* gdbint.texinfo (find_sym_fns): This replaces symfile_init.

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:07:16 1996  Fred Fish  <fnf@cygnus.com>

	* gdbint.texinfo: Document that SIGTRAMP_START and SIGTRAMP_END
	are macros that take an single argument.

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.

Wed Sep 20 08:16:03 1995  steve chamberlain  <sac@slash.cygnus.com>

	* gdbint.texinfo (GETENV_PROVIDED, FCLOSE_PROVIDED): Document.

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.

Thu Apr 29 00:03:59 1993  Fred Fish  (fnf@cygnus.com)

	* gdbint.texinfo (LONG_LONG):  Replace with CC_HAS_LONG_LONG.
	Add PRINTF_HAS_LONG_LONG references.

Wed Apr 28 11:39:18 1993  Roland H. Pesch  (pesch@fowanton.cygnus.com)

	* gdb.texinfo: Make node "Shell Commands" unconditional; describe
	`set demangle-style arm' (not cfront); mention can type `q' to
	discard output, when gdb pages.

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.

Mon Mar 29 15:03:25 1993  Fred Fish  (fnf@cygnus.com)

	* gdbinit.texinfo:  Document renaming of tm-29k.h to tm-a29k.h.

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.

Tue Feb 23 11:46:11 1993  Mike Stump  (mrs@cygnus.com)

	* stabs.texi: The `this' pointer is now known by the name
	`this' instead of `$t'.

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.

Wed Feb 10 23:42:37 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.

Thu Dec 17 00:44:57 1992  John Gilmore  (gnu@cygnus.com)

	* gdbint.texinfo (Host Conditionals): Remove
	NAMES_HAVE_UNDERSCORE, SOME_NAMES_HAVE_DOT, document
	MEM_FNS_DECLARED.
	(Target Conditionals):  Remove all of the above.

Tue Dec 15 02:01:00 1992  John Gilmore  (gnu@cygnus.com)

	* gdbint.texinfo: SWAP_HOST_AND_TARGET => SWAP_TARGET_AND_HOST.
	Noticed by Andy Jackson, <arj@cam-orl.co.uk>.

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.

Tue Oct 27 17:08:45 1992  K. Richard Pixley  (rich@cygnus.com)

	* gdbint.texinfo: nm.h now included in defs.h.

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.

Wed Oct 21 03:51:01 1992  John Gilmore  (gnu@cygnus.com)

	* gdbint.texinfo:  Improve REGISTER_U_ADDR and USE_PROC_FS doc.

Tue Oct 20 23:27:56 1992  John Gilmore  (gnu@cygnus.com)

	* gdbint.texinfo: Document obsolete STACK_END_ADDR.
	(all @node commands): Use new form to avoid nitpicking errors.
	* gdbint.texinfo: Document host/native/target split.

Tue Oct 20 21:32:18 1992  K. Richard Pixley  (rich@sendai.cygnus.com)

	* gdbint.texinfo: add PUSH_DUMMY_FRAME, POP_FRAME.

Fri Oct 16 03:34:01 1992  John Gilmore  (gnu@cygnus.com)

	* gdbint.texinfo: Update GET_LONGJMP_TARGET, L_SET doc.

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"

Thu Oct  8 16:27:45 1992  K. Richard Pixley  (rich@sendai.cygnus.com)

	* gdbint.texinfo: document a few more macros, create new section
	for native macros.

Thu Oct  1 01:57:56 1992  John Gilmore  (gnu@cygnus.com)

	* gdb.texinfo: Document command hooks.

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 18:28:28 1992  Roland H. Pesch  (pesch@fowanton.cygnus.com)

	* gdb.texinfo, gdbinv-m.m4.in, gdbinv-s.m4.in: First pass at doc
	for two new remote targets---29K using UDI, and Tandem ST2000
	using STDBUG.

	* all.m4, none.m4: new m4 switch, _ST2000__

	* all.m4: turn on H8/300 stuff for generic manual

	* gdbinv-s.m4.in: remove text on special procedures to continue
	after explicit call to breakpoint() in serial stubs.

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.

Fri Sep  4 18:53:57 1992  Roland H. Pesch  (pesch@fowanton.cygnus.com)

	* gdb.texinfo: fix shameful error of agreement reported by
	jimb@occs.cs.oberlin.edu (Jim Blandy)
	* gdb.texinfo: remove old partial discussion of remote serial
	protocol (via serial debug stubs)
	* gdbinv-m.m4.in, gdbinv-s.m4.in: new section discussing
	use of serial debug stubs

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.

Fri Jun 19 10:28:05 1992  John Gilmore  (gnu at cygnus.com)

	* gdb.texinfo:  Document new am29k setting.

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:
