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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	Remove use of the registered trademark symbol throughout.

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

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

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

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

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

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

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

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

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

	* gdb.texinfo (Stack): Reorder menu.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* python.texi: New method documented.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* gdb.texinfo (Files): Remove documentation of the
	"add-shared-symbol-files" and "assf" commands.
	(Cygwin Native): Remove documentation of the "dll-symbols"
	command.

2014-12-17  Doug Evans  <xdje42@gmail.com>

	* gdb.texinfo (Debugging Output): Document "debug symbol-lookup".

2014-12-12  Phil Muldoon  <pmuldoon@redhat.com>
	    Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (Altering): Update.
	(Compiling and Injecting Code): New node.

2014-12-12  Doug Evans  <dje@google.com>

	* python.texi (Objfiles In Python): Document gdb.lookup_objfile.

2014-12-12  Andreas Arnez  <arnez@linux.vnet.ibm.com>

	* gdb.texinfo: Document "maint print user-registers".

2014-12-08  Doug Evans  <dje@google.com>

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

2014-12-04  Doug Evans  <dje@google.com>

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

2014-12-04  Doug Evans  <dje@google.com>

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

2014-12-02  Nick Bull  <nicholaspbull@gmail.com>

	* python.texi (Events In Python): Document new events
	InferiorCallPreEvent, InferiorCallPostEvent, MemoryChangedEvent
	and RegisterChangedEvent.

2014-11-30  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Add add-auto-load-scripts-directory.
	* gdb.texinfo (Auto-loading): Add add-auto-load-scripts-directory link.
	(objfile-gdbdotext file): Add add-auto-load-scripts-directory.

2014-11-30  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (Auto-loading safe path): Fix add-auto-load-safe-path
	description typo.

2014-10-30  Doug Evans  <dje@google.com>

	* python.texi (Progspaces In Python): Document ability to add
	random attributes to gdb.Progspace objects.
	(Objfiles In Python): Document ability to add random attributes to
	gdb.objfile objects.

2014-10-27  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Continuing and Stepping): Add cross reference to
	info on stepping and signal handlers.
	(Signals): Explain stepping and signal handlers.  Add context
	index entry, and cross references.

2014-10-20  Simon Marchi  <simon.marchi@ericsson.com>

	* python.texi (Breakpoints In Python): Add parenthesis after
	Breakpoint.delete.  Clarify Breakpoint.enabled description so
	that it contains "disable".

2014-10-17  Doug Evans  <dje@google.com>

	* python.texi (Events In Python): Document clear_objfiles event.

2014-10-17  Doug Evans  <dje@google.com>

	* python.texi (Objfiles In Python): Document new progspace attribute.

2014-10-17  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Ada Tasks and Core Files): Delete mention of Tru64.
	(SVR4 Process Information): Delete mention of OSF/1.

2014-10-01  Simon Marchi  <simon.marchi@ericsson.com>

	* gdb.texinfo (Miscellaneous gdb/mi Commands): Document new
	exit-code field in -list-thread-groups output.

2014-09-22  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

	* gdb.texinfo (Set Breaks): Add missing "@end table".

2014-09-22  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Set Breaks): Document that "set breakpoint
	always-inserted off" is the default mode now.  Delete
	documentation of "set breakpoint always-inserted auto".

2014-09-18  Doug Evans  <dje@google.com>

	* python.texi (Symbol Tables In Python): Document "producer"
	attribute of gdb.Symtab objects.

2014-09-16  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Starting) <run command>: Don't mention VxWorks.
	(Embedded OS): Remove VxWorks menu entry.
	(VxWorks): Remove node.

2014-09-13  Doug Evans  <xdje42@gmail.com>

	* gdb.texinfo (Signaling): Document new queue-signal command.

2014-09-06  Doug Evans  <xdje42@gmail.com>

	PR 15276
	* gdb.texinfo (Convenience Funs): Document $_caller_is,
	$_caller_matches, $_any_caller_is, $_any_caller_matches.

2014-09-03  Justin Lebar <jlebar@google.com>

	* python.texi (Types In Python): Type.template_argument(n) returns a
	gdb.Value or a gdb.Type and throws an exception if n is out of
	range.

2014-09-03  Sasha Smundak  <asmundak@google.com>

	* python.texi (Frames in Python): Add read_register description.

2014-08-04  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Debugging Output): Update for change to "set debug
	target".

2014-08-01  Masaki Muranaka  <monaka@monami-software.com>

	Pushed by Joel Brobecker  <brobecker@adacore.com>.
	* Makefile.in (transform): New variable.
	(install-man1, install-man5): Apply $(transform) to man file names.

2014-07-26  Doug Evans  <xdje42@gmail.com>

	PR guile/17177
	* guile.texi (Guile Pretty Printing API): Fix typo.
	Document set-pretty-printers!, pretty-printers.
	(Selecting Guile Pretty-Printers): Update.
	Mention program-space based pretty-printers.

2014-07-25  Pedro Alves  <palves@redhat.com>
	    Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Signaling) <signal command>: Explain what happens
	with multi-threaded programs.

2014-06-27  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (Maintenance Commands): Update the output of
	'maint print dummy-frames' command.

2014-06-24  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Screen Size): Improve indexing.

2014-06-19  Gary Benson  <gbenson@redhat.com>

	* gdb.texinfo (Maintenance Commands): Document new
	"maint set/show catch-demangler-crashes" option.

2014-06-19  Gary Benson  <gbenson@redhat.com>

	* gdb.texinfo (Maintenance Commands): Document new
	"maint demangler-warning" command and new
	"maint set/show demangler-warning" option.

2014-06-09  Siva Chandra Reddy  <sivachandra@google.com>

	* python.texi (Xmethod API): Add space before the opening
	parenthesis in function descriptions.

2014-06-06  Doug Evans  <xdje42@gmail.com>

	* guile.texi (Guile Configuration): Document guile-data-directory.

2014-06-06  Mingjie Xing  <mingjie.xing@gmail.com>

	* gdb.texinfo (Invoking GDB): Add -q and --quiet.

2014-06-04  Doug Evans  <xdje42@gmail.com>

	* guile.texi (Breakpoints In Guile): Update.

2014-06-03  Joel Brobecker  <brobecker@adacore.com>

	* python.texi (Xmethod API): Fix reference to "Progspaces In
	Python".

2014-06-03  Siva Chandra Reddy  <sivachandra@google.com>

	*  python.texi (Xmethods In Python, XMethod API)
	(Writing an Xmethod): New nodes.
	(Python API): New menu entries "Xmethods In Python",
	"Xmethod API", "Writing an Xmethod".

2014-06-02  Doug Evans  <xdje42@gmail.com>

	* guile.texi (Guile API): Add entry for Parameters In Guile.
	(GDB Scheme Data Types): Mention <gdb:parameter> object.
	(Parameters In Guile): New node.

2014-06-02  Doug Evans  <xdje42@gmail.com>

	* guile.texi (Guile API): Add entry for Commands In Guile.
	(Basic Guile) <parse-and-eval>: Add reference.
	(Basic Guile) <string->argv>: Move definition to Commands In Guile.
	(GDB Scheme Data Types): Mention <gdb:command> object.
	(Commands In Guile): New node.

2014-06-02  Doug Evans  <xdje42@gmail.com>

	* guile.texi (Guile API): Add entry for Progspaces In Guile.
	(GDB Scheme Data Types): Mention <gdb:progspace> object.
	(Progspaces In Guile): New node.

2014-05-30  Andrew Burgess  <aburgess@broadcom.com>

	* guile.texi (Frames In Guile): Mention FRAME_UNWIND_MEMORY_ERROR.
	* python.texi (Frames In Python): Mention
	gdb.FRAME_UNWIND_MEMORY_ERROR.

2014-05-29  Pedro Alves  <palves@redhat.com>
	    Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Non-Stop Mode): Remove "set target-async 1"
	from example.
	(Asynchronous and non-stop modes): Document '-gdb-set mi-async'.
	Mention that target-async is now deprecated.
	(Maintenance Commands): Document maint set/show target-async.

2014-05-29  Pedro Alves  <palves@redhat.com>

	* observer.texi (sync_execution_done, command_error): New
	subjects.

2014-05-29  Pedro Alves  <palves@redhat.com>

	PR gdb/13860
	* observer.texi (signal_received, end_stepping_range)
	(signal_exited, exited, no_history): New observer subjects.

2014-05-26  Andy Wingo  <wingo@igalia.com>

	* guile.texi (GDB Scheme Data Types): Remove documentation for
	removed interfaces.  Update spelling of gdb-object-kind.

2014-05-26  Andy Wingo  <wingo@igalia.com>

	* guile.texi (Basic Guile): Fix some typos.

2014-05-26  Andy Wingo  <wingo@igalia.com>

	* guile.texi (Writing a Guile Pretty-Printer)
	(Guile Types Module): Fix excess parentheses in use-modules forms.

2014-05-24  Eli Zaretskii  <eliz@gnu.org>

	* guile.texi (Types In Guile, Basic Guile, Frames In Guile)
	(Breakpoints In Guile, Guile Printing Module)
	(Guile Exception Handling, Values From Inferior In Guile)
	(Objfiles In Guile, Breakpoints In Guile, Memory Ports in Guile):
	Don't use @var at the beginning of a sentence.

	* gdb.texinfo (Frame Filter Management, Trace Files)
	(C Operators, Ada Tasks, Calling, Bootstrapping, ARM)
	(PowerPC Embedded, Define, Annotations for Running)
	(IPA Protocol Commands, Packets, General Query Packets)
	(Tracepoint Packets, Notification Packets, Environment)
	(Inferiors and Programs, Set Breaks, Set Catchpoints)
	(Continuing and Stepping, Signals, Thread-Specific Breakpoints)
	(Frames, Backtrace, Selection, Expressions, Registers)
	(Trace State Variables, Built-In Func/Proc, Signaling, Files)
	(Numbers, GDB/MI Async Records, GDB/MI Data Manipulation)
	(Source Annotations, Using JIT Debug Info Readers, Packets)
	(Stop Reply Packets, Host I/O Packets)
	(Target Description Format): Don't use @var at the beginning of a
	sentence.

	* python.texi (Basic Python, Types In Python)
	(Commands In Python, Frames In Python, Line Tables In Python)
	(Breakpoints In Python, gdb.printing, gdb.types)
	(Type Printing API): Don't use @var at the beginning of a
	sentence.

2014-05-23  Markus Metzger  <markus.t.metzger@intel.com>

	* gdb.texinfo (Process Record and Replay): Document "set/show btrace
	replay-memory-access".

2014-05-21  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Starting): Document "set/show
	auto-connect-native-target".
	(Target Commands): Document "target native".

2014-05-20  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Memory) <compare-sections>: Generalize comments to
	not be remote specific.  Add cross reference to the qCRC packet.
	(Separate Debug Files): Update cross reference to the qCRC packet.
	(General Query Packets) <qCRC packet>: Add anchor.

2014-05-17  Doug Evans  <xdje42@gmail.com>

	Copy over changes from guile.texi.
	* python.texi (Basic Python) <gdb.execute>: Add text.
	(Basic Python) <gdb.post_event>: Remove "main" from "main GDB thread".
	(Values From Inferior) <Python string>: Add text.
	(Values From Inferior) <Value.string>: Clarify string length handling.
	(Pretty Printing API): Add cindex.
	(Types In Python) <TYPE_CODE_*>: Use vtable instead of table.
	Remove unnecessary index of gdb.TYPE_CODE_*.  Replace @findex with
	@vindex.
	(Commands In Python) <COMPLETE_*>: Similarly.
	(Symbols In Python) <SYMBOL_*>: Similarly.
	(Breakpoints In Python) <WP_*>: Similarly.
	(Breakpoints In Python) <BP_*>: Similarly.

2014-05-17  David Taylor <dtaylor@emc.com>

	* gdb.texinfo (General Query Packets): Add a note about thread IDs
	mentioned in the qfThreadInfo reply.

2014-05-16  Doug Evans  <dje@google.com>

	* gdb.texinfo (Mode Options): Add -D.

2014-05-09  Samuel Bronson  <naesten@gmail.com>

	* Makefile.in (PACKAGE): Copy from ../Makefile.in in case of
	"make -C".

2014-04-29  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Debugging Output): Rename to "set debug varobj" and
	"show debug varobj".

2014-05-01  David Taylor  <dtaylor@emc.com>

	* gdb.texinfo (compare-sections): Document the new -r (read-only)
	option.

2014-04-24  Michael Sturm  <michael.sturm@mintel.com>
	    Walfred Tedeschi  <walfred.tedeschi@intel.com>

	* gdb.texinfo (i386 Features): Add description of AVX512
	registers.

2014-03-31  Doug Evans  <dje@google.com>

	* gdb.texinfo (Symbols): Document set/show print symbol-loading.

2014-03-30  Doug Evans  <dje@google.com>

	* gdb.texinfo (Non-Stop Mode): Remove trailing whitespace.
	(Background Execution): Ditto.

2014-03-21  Pedro Alves  <palves@redhat.com>
	    Stan Shebs  <stan@codesourcery.com>
	    Hui Zhu  <hui@codesourcery.com>

	* gdb.texinfo (Packets): Add anchor to "? packet".
	Remove fixme and update introduction of "k packet".
	Add anchor to "vKill packet".

2014-03-12  Stan Shebs  <stan@codesourcery.com>

	* Doxyfile-gdb-api.in (INPUT): Add gdbtypes.h.

2014-02-26  Ludovic Courtès  <ludo@gnu.org>

	* guile.texi (Basic Guile): Document 'history-append!'.

2014-02-20  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Files): Document "add-shared-symbol-files"
	and "assf" as being deprecated.
	(Cygwin Native): Likewise for "dll-symbols".
	(Non-debug DLL Symbols): Remove reference to "dll-symbols"
	as a way to force the loading of symbols from a DLL.

2014-02-19  Siva Chandra Reddy  <sivachandra@google.com>

	* python.texi (Values From Inferior): Add description about the
	new feature.

2014-02-17  Doug Evans  <xdje42@gmail.com>

	* Makefile.in (GDB_DOC_FILES): Add python.texi.
	* gdb.texinfo (Python): Moved to ...
	* python.texi: ... here.  New file.

2014-02-17  Ludovic Courtès  <ludo@gnu.org>

	* guile.texi (Writing a Guile Pretty-Printer) <example>:
	Remove 'string-begins-with' procedure.  Add 'pretty-printer'
	parameter to 'str-lookup-function' procedure.  Look for
	the "std::string<" prefix.
	(Frames In Guile): Add 'frame' parameter to 'frame-read-var'.
	Adjust description.

2014-02-11  Tejas Belagod  <tejas.belagod@arm.com>

	* guile.texi (Values From Inferior In Guile): Remove stray
	parantheses for deffn.
	(Disassembly In Guile): Ditto.

2014-02-10  Stan Shebs  <stan@codesourcery.com>

	Add Doxygen support.
	* Makefile.in (doxy): New action, generates Doxygen files.
	(DOXYGEN): New.
	(doxyedit): New.
	* Doxyfile-base.in: New file.
	* Doxyfile-gdb-api.in: New file.
	* Doxyfile-gdb-xref.in: New file.
	* Doxyfile-gdbserver.in: New file.
	* doxy-index.in: New file.
	* filter-for-doxygen: New file.
	* filter-params.pl: New file.

2014-02-10  Doug Evans  <xdje42@gmail.com>

	* Makefile.in (GDB_DOC_FILES): Add guile.texi.
	* gdb.texinfo (Auto-loading): Add set/show auto-load guile-scripts.
	(Extending GDB): New menu entries Guile, Multiple Extension Languages.
	(Guile docs): Include guile.texi.
	(objfile-gdbdotext file): Add objfile-gdb.scm.
	(dotdebug_gdb_scripts section): Mention Guile scripts.
	(Multiple Extension Languages): New node.
	* guile.texi: New file.

2014-01-28  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Ada Glitches): Document the new "maint ada set/show
	ignore-descriptive-types". commands.

2014-01-22  Doug Evans  <dje@google.com>

	* gdb.texinfo (Server): Mention --debug-format=all|none|timestamp.
	(gdbserver man): Ditto.

2014-01-16  Markus Metzger  <markus.t.metzger@intel.com>

	* gdb.texinfo: Document limited reverse/replay support
	for target record-btrace.

2014-01-16  Markus Metzger  <markus.t.metzger@intel.com>

	* gdb.texinfo (Process Record and Replay): Update documentation.

2014-01-16  Markus Metzger  <markus.t.metzger@intel.com>

	* gdb.texinfo (Process Record and Replay): Document new /c
	modifier accepted by "record function-call-history".
	Add /i modifier to "record function-call-history" example.

2014-01-15  Yuanhui Zhang  <asmwarrior@gmail.com>
	    Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (GDB/MI Output Syntax): Add some missing "nl"
	markers.  Remove one that was misplaced.

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

	* gdb.texinfo (Your Program's Environment) <set environment>:
	Mention the shell, and point at 'set exec-wrapper'.

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

	* gdb.texinfo (Types In Python): Document new attribute Types.name.

2013-12-30  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Types In Python): Clarify the documentation
	of attribute gdb.Field.bitpos.

2013-12-28  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Types In Python): Fix the documentation of
	attribute "bitpos" in class gdb.Field for enum types.  Add
	documentation for attribute "enumval" in that same class.

2013-12-28  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (GDB/MI Support Commands): Change @table into
	@ftable.

2013-12-23  Doug Evans  <xdje42@gmail.com>

	* gdb.texinfo (Auto-loading): Move menu up.  Move discussion of
	auto-loaded objfile scripts and .debug_gdb_scripts section to their
	corresponding section in Extending GDB.
	(Extending GDB): Move menu up.  New menu item "Auto-loading
	extensions".
	(Sequences): New menu item "Auto-loading sequences".
	(Auto-loading sequences): New node.
	(Python): Rename section from Scripting GDB to Extending GDB.
	(Python Auto-loading): Update xref, refer to "Auto-loading extensions".
	Move docs on ways to auto-load extensions to ...
	(Auto-loading extensions): ... here.  New node.

2013-12-23  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (GDB/MI): Add "GDB/MI Support Commands" entry
	in menu.
	(GDB/MI Variable Objects): Adjust reference to "-list-features"
	command, now in a new node.
	(GDB/MI Support Commands): New node, with its contents being
	extracted from the "GDB/MI Miscellaneous Commands" node.
	A small paragraph introducing the section is also added at
	the start.
	(GDB/MI Miscellaneous Commands): Delete the description of the
	-info-gdb-mi-command, -list-features and -list-target-features
	commands, now hosted in the "GDB/MI Support Commands" node.

2013-12-12  Siva Chandra Reddy  <sivachandra@google.com>

	PR python/16113
	* gdb.texinfo (Values From Inferior): Add a note about using
	gdb.Field objects as subscripts on gdb.Value objects.
	(Types In Python): Add description about the new attribute
	"parent_type" of gdb.Field objects.

2013-12-12  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (GDB/MI Miscellaneous Commands): Add @cindex
	entry for section docuumenting the -list-features GDB/MI command.

2013-12-10  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (GDB/MI Miscellaneous Commands): Document the new
	"exec-run-start-option" entry in the output of the "-list-features"
	command.

2013-12-04  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (i386): Fix yesterday's commit.

2013-12-03  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Set Catchpoints): Add @kindex for each command
	documented here.

2013-12-03  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (@direntry): Add menu item for gdbserver.

2013-12-03  Walfred Tedeschi  <walfred.tedeschi@intel.com>

	* gdb.texinfo (i386 Features): Add MPX feature registers.
	(x86 Specific featuresx86 Architecture-specific Issues): Adds
	a subsubsection for MPX and describes the display of the
	boundary registers.

2013-12-03  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (GDB/MI Miscellaneous Commands): Remove the
	documentation of the "ada-exceptions" entry.

2013-12-03  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (GDB/MI Result Records): Fix the syntax of the
	"^error" result record concerning the error message.  Document
	the error code that may also be part of that result record.
	(GDB/MI Miscellaneous Commands): Document the
	"undefined-command-error-code" element in the output of
	the "-list-features" GDB/MI command.

2013-12-03  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (GDB/MI Miscellaneous Commands): Document
	the new -info-gdb-mi-command GDB/MI command.  Document
	the meaning of "-info-gdb-mi-command" in the output of
	-list-features.

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

	* gdb.texinfo (Frames In Python) <gdb.FRAME_UNWIND_NULL_ID>:
	Update comment.

2013-11-24  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (Caching Remote Data): Document new
	"set/show stack-cache" option.

2013-11-24  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (Caching Target Data): Replace "ON" with "on".
	(Maintenance Commands): Replace "ON" and "OFF" with "on" and
	"off" respectively.

2013-11-23  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (GDB/MI Variable Objects): Add the description
	of "displayhint" to the table about child results.

2013-11-21  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (GDB/MI Variable Objects): Add attribute
	'dynamic' for the output of command -var-list-children.

2013-11-21  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (Caching Target Data): Remove "see" before
	@pxref.

2013-11-20  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (Caching Target Data): Update doc for
	per-address-space dcache.

2013-11-20  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (Data): Rename menu item.
	(Caching Remote Data): Rename to ...
	(Caching Target Data): ... it.  Update.

2013-11-18  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (GDB/MI Miscellaneous Commands): Document the new
	"language-option" entry in the output of the "-list-features"
	command.

2013-11-15  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Variables): Note gdb rules for ambiguous cases.
	Add example.

2013-11-14  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Breakpoints In Python): Replace "as" with "in".

2013-11-14  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Show): Add xref anchor for "show language" command.
	(Context management): Place current subsection text into its own
	subsubsection.  Add new subsubsection describing the "--language"
	command option.

2013-11-13  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (GDB/MI Miscellaneous Commands): Delete
	the documentation of "info-ada-exceptions" in the output
	of the "-list-features" command.  Add the documentation
	of the "ada-exception" entry instead.

2013-11-12  Joel Brobecker  <brobecker@adacore.com>


	* gdb.texinfo (GDB/MI Miscellaneous Commands): Fix the first
	word of a couple of sentences to start with a capital letter.

2013-11-12  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Ada): Add entry in menu for new "Ada Exceptions" node.
	(Ada Exceptions): New node.
	(GDB/MI): Add entry in menu for new "GDB/MI Ada Exceptions
	Commands" node.
	(GDB/MI Ada Exceptions Commands): New node.
	(GDB/MI Miscellaneous Commands): Document new "info-ada-exceptions"
	field in the output of the "-list-features" command.
	* NEWS: Add entry for the new "info exceptions" CLI command,
	and for the new "-info-ada-exceptions" GDB/MI command.

2013-11-11  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.texinfo (Symbol Tables In Python): Add linetable method entry.
	(Line Tables In Python): New node.

2013-11-08  Doug Evans  <dje@google.com>

	* gdb.texinfo (Debugging Output): Update text for
	"set debug dwarf2-read".

2013-11-08  Doug Evans  <dje@google.com>

	* gdb.texinfo (Debugging Output): Update text for
	"set debug symtab-create".

2013-11-07  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.texinfo (Commands In Python): Document COMPLETE_EXPRESSION
	constant.

2013-11-07  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.texinfo (Breakpoints In Python): Document temporary
	option in breakpoint constructor, and add documentation to the
	temporary attribute.

2013-11-07  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (GDB/MI Variable Objects): Update doc about the
	output of "-var-info-expression".

2013-11-06  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Starting) <set/show startup-with-shell>: Mention
	non-interactive mode.
	(Environment) <shell startup files warning>: Mention
	non-interactive mode.  Mention .zshenv for Z shell, and talk about
	BASH_ENV instead of .bashrc for BASH.

2013-10-29  Nicolas Blanc  <nicolas.blanc@intel.com>

	* gdb.texinfo (Commands to Specify Files): Add description
	of the remove-symbol-file command.
	* observer.texi: New free_objfile event

2013-10-24  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Starting): Document set/show startup-with-shell.

2013-10-11  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Shared Library GDB/MI Catchpoint Commands):
	New subsection inside which the "-catch-load" and "-catch-unload"
	commands documentation is now placed.
	(Ada Exception GDB/MI Catchpoint Commands): New subsection
	documenting the "-catch-assert" and "-catch-exception" new
	GDB/MI commands.

2013-10-10  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Connecting): Remove unnecessary @w{}.

2013-10-10  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Connecting): Replace "set remotebaud" by "set
	serial baud".
	(Remote Configuration): Replace "set remotebaud" by "set serial
	baud".  Replace "show remotebaud" by "show serial baud".

2013-10-07  Pedro Alves  <palves@redhat.com>

	PR breakpoints/11568
	* gdb.texinfo (Thread-Specific Breakpoints): Mention what happens
	when the thread is removed from the thread list.

2013-10-06  Sergio Durigan Junior  <sergiodj@redhat.com>

	* gdb.texinfo (Convenience Variables): Document $_exitsignal.
	Update entry for $_exitcode.

2013-10-04  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (GDB/MI Program Execution): Document "-exec-run"'s
	new "--start" option.

2013-10-02  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Registers): Expand description of saved registers
	in frames.  Explain <not saved>.

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

	* gdb.texinfo (Debugging Output): Document set/show debug symfile.

2013-09-16  Stan Shebs  <stan@codesourcery.com>

	Remove the internals manual gdbint.texinfo.
	* Makefile.in (INFO_DEPS): Remove gdbint.info.
	(PDFFILES): Remove gdbint.pdf.
	(HTMLFILES): Remove gdbint/index.html.
	(HTMLFILES_INSTALL): Remove gdbint.
	(GDBINT_DOC_FILES): Remove.
	(dvi): Remove gdbint.dvi.
	(ps): Remove gdbint.ps.
	* gdbint.texinfo: Remove file.
	* gdb.texinfo (Maintenance Commands): Remove reference to gdbint.

2013-09-16  Sergio Durigan Junior  <sergiodj@redhat.com>

	* gdb.texinfo (Convenience Functions): Mention new convenience
	function $_isvoid.

2013-09-13  Andreas Arnez  <arnez@linux.vnet.ibm.com>

	* gdb.texinfo (Decimal Floating Point format): Mention S/390.
	(Standard Target Features): Add new node to menu.
	(S/390 and System z Features): New node.

2013-09-13  Sanimir Agovic  <sanimir.agovic@intel.com>

	* gdb.texinfo (GDB/MI Miscellaneous Commands): Use
	-list-target-features in the example.

2013-09-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (MiniDebugInfo): Prepare file debug and use it to create
	mini_debuginfo.  Strip binary before adding mini_debuginfo to it.

2013-09-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Sync documentation with gdb.base/gnu-debugdata.exp.
	* gdb.texinfo (MiniDebugInfo): Add comment and "D" in the example.

2013-09-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (MiniDebugInfo): Fix two trailing dots.

2013-08-27  Pedro Alves  <pedro@codesourcery.com>
	    Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (GDB/MI Stack Manipulation) <-stack-list-locals>:
	Document new --skip-unavailable option.
	<-stack-list-variables>: Document new --skip-unavailable option.

2013-08-26  Doug Evans  <dje@google.com>

	* gdb.texinfo (Maintenance Commands): "maint print objfiles" now takes
	an optional regexp.

2013-08-13  Tom Tromey  <tromey@redhat.com>

	* gdbint.texinfo (Testsuite): Use @table, not @itemize.
	Document GDB_PARALLEL and GDB_INOTIFY.

2013-08-09  Stan Shebs  <stan@codesourcery.com>

	* LRS: Remove file, describes a long-abandoned live-range
	splitting extension to stabs.

2013-07-25  Andrew Burgess  <aburgess@broadcom.com>

	* gdb.texinfo (Output Formats): Mention the new 'z' formatter.

2013-07-17  Doug Evans  <dje@google.com>

	* gdb.texinfo (Print Settings): Document "print raw frame-arguments".

2013-07-02  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Target Commands): Don't mention "target nrom".

2013-06-28  Tom Tromey  <tromey@redhat.com>

	* Makefile.in (version.subst): Use version.in, not
	common/version.in.
	* gdbint.texinfo (Versions and Branches, Releasing GDB):
	Likewise.

2013-06-27  Pedro Alves  <palves@redhat.com>

	* gdbint.texinfo (Algorithms) <Stepping over runtime loader
	dynamic symbol resolution code>: New section, based on infrun.c
	comment.

2013-06-26  Tom Tromey  <tromey@redhat.com>

	* gdbint.texinfo (Versions and Branches): Use common/version.in.
	Update.
	(Releasing GDB): Likewise.

2013-06-26  Pedro Alves  <pedro@codesourcery.com>
	    Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (GDB/MI Tracepoint Commands): Document
	-trace-frame-collected.

2013-06-26  Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo (Traceframe Info Format): Document tvar element
	and its attributes.

2013-06-25  Yao Qi  <yao@codesourcery.com>

	* gdbint.texinfo (Testsuite): Document 'gdb,predefined_tsv'.

2013-06-24  Tom Tromey  <tromey@redhat.com>

	* Makefile.in (POD2MAN1, POD2MAN5): Use version.subst.
	(GDBvn.texi): Use version.subst.
	(version.subst): New target.
	(mostlyclean): Remove version.subst.

2013-06-20  Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo (GDB/MI Data Manipulation)
	<-data-list-register-values>: Document the --skip-unavailable
	option.

2013-06-07  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (Symbols): Add kindex and cindex for
	'maint print msymbols'.

2013-06-05  Simon Marchi  <simon.marchi@ericsson.com>  (tiny change)

	* gdb.texinfo (Miscellaneous gdb/mi Commands): Fix -add-inferior
	response field name (thread-group to inferior).

2013-06-04 Gary Benson  <gbenson@redhat.com>

	* gdb.texinfo (General Query Packets/qSupported): Added
	"qXfer:libraries-svr4:read" and "augmented-libraries-svr4-read".
	to the table of currently defined stub features.
	Added a more detailed entry for "augmented-libraries-svr4-read".
	(General Query Packets/qXfer:libraries-svr4:read): Documented
	the augmented form of this packet.

2013-05-23  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (System-wide Configuration Scripts): Renames
	"Installed System-wide Configuration Scripts". Add associated
	@menu block.

2013-05-23  Yao Qi  <yao@codesourcery.com>
	    Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Packets): Document 'vCont;r'.
	(Continuing and Stepping): Document target-assisted range
	stepping, and the 'set range-stepping' and 'show range-stepping'
	commands.

2013-05-23  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Installed System-wide Configuration Scripts):
	Add subsection describing the scripts now available under
	the data-dir's system-gdbbinit subdirectory.
	* NEWS: Add entry announcing the availability of system-wide
	configuration scripts for ElinOS and Wind River Linux.

2013-05-21  Hui Zhu  <hui@codesourcery.com>

	* gdb.texinfo (GDB/MI Breakpoint Commands): Describe the
	"-dprintf-insert" command.

2013-05-17  Doug Evans  <dje@google.com>

	* gdb.texinfo (Maintenance Commands): Update doc for
	"maint check-psymtabs".  Add doc for "maint check-symtabs",
	"maint expand-symtabs".

2013-05-15  Markus Metzger  <markus.t.metzger@intel.com>

	* gdb.texinfo (Process Record and Replay): Document the
	"record goto" command and its sub-commands.

2013-05-10 Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.texinfo (Backtrace): Add "no-filter" argument.
	(Python API): Add Frame	Filters API, Frame Wrapper API,
	Writing a Frame Filter/Wrapper,	Managing Management of Frame
	Filters chapter entries.
	(Frame Filters API): New Node.
	(Frame Wrapper API): New Node.
	(Writing a Frame Filter): New Node.
	(Managing Frame Filters): New Node.
	(Progspaces In Python): Add note about frame_filters attribute.
	(Objfiles in Python): Ditto.
	(GDB/MI Stack Manipulation): Add -enable-frame-filters command,
	@anchors and --no-frame-filters option to -stack-list-variables,
	-stack-list-frames, -stack-list-locals and -stack-list-arguments
	commands.

2013-05-08  Joel Brobecker  <brobecker@adacore.com>

	* gdbint.texinfo (Native Debugging): Add "AIX Shared Library
	Support" subsection documenting the XML format used to transfer
	shared library info on AIX.

2013-05-08  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Debugging Output): Add documentation of
	"set debug aix-solib" and "show debug aix-solib" commands.

2013-05-06  Sandra Loosemore  <sandra@codesourcery.com>

	* gdb.texinfo (Nios II): New section.
	(Nios II Features): New section.

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

	* gdbint.texinfo (Algorithms): Remove entries documenting
	DEPRECATED_IBM6000_TARGET, SOLIB_ADD, and
	SOLIB_CREATE_INFERIOR_HOOK.

2013-04-29  Tom Tromey  <tromey@redhat.com>

	PR python/14204:
	* gdb.texinfo (Python API): Fix menu entry.
	(Blocks In Python): Fix subsubsection text.  Rewrite intro.
	Define global and static block.  Add example.  Clarify
	block relationship for inline functions.

2013-04-29  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Python API): Mention Python help and keyword
	arguments.  Move pagination text to Basic Python.
	(Basic Python): Put pagination text here.  Document
	close-on-exec, SIGCHLD, and SIGINT.

2013-04-19  Pedro Alves  <palves@redhat.com>

	* gdbint.texinfo (Misc Guidelines) <Compiler Warnings>: Write
	"signedness" instead of "signness".

2013-04-19  Pedro Alves  <palves@redhat.com>

	* gdbint.texinfo (Misc Guidelines) <Compiler Warnings>: Replace
	-Wno-pointer-sign text with text on -Wpointer-sign.

2013-04-16  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Set Catchpoints): Mention earliest version of
	GCC that has the SDT probe points.

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

	* gdb.texinfo (Set Catchpoints): Document regexp syntax for
	exception catchpoints.

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

	* gdb.texinfo (Set Catchpoints): Document $_exception.
	(Convenience Vars): Mention $_exception.

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

	* gdb.texinfo (Set Catchpoints): Reorganize exception
	catchpoints.  Document "catch rethrow".
	(Debugging C Plus Plus): Mention "catch rethrow".

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

	* gdb.texinfo (Set Catchpoints): Remove obsolete text.

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

	* gdb.texinfo (Auto-loading safe path): Add quick -iex using command
	line below the sample output.

2013-04-12  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Mode Options): Document '-configuration'.
	(Help): Document "show configuration".
	(Bug Reporting): Add requirements to include the configuration
	details in bug reports.

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

	* Makefile.in (MAN1S): Add gcore.1.
	Remove "Host, target, and site specific Makefile fragments" comment.
	(@host_makefile_frag@, HAVE_NATIVE_GCORE_TARGET): New.
	(install-man1, uninstall-man1): Conditionalize gcore.1.
	(gcore.1): New.
	* gdb.texinfo (Man Pages): Add gcore man.
	(gcore man): New node.

2013-04-10  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Process Record and Replay): Document that "set
	record full insn-number-max", "set record
	instruction-history-size" and "set record
	function-call-history-size" accept "unlimited".
	(Backtrace): Document that "set backtrace limit" accepts
	"unlimited".
	(List): Document that "set listsize" accepts "unlimited".
	(Print Settings)" Document that "set print max-symbolic-offset",
	"set print elements" and "set print repeats" accept "unlimited".
	(Starting and Stopping Trace Experiments): Document that "set
	trace-buffer-size" accepts "unlimited".
	(Remote Configuration): Document that "set tcp connect-timeout"
	accepts "unlimited".
	(Command History): Document that "set history size" accepts
	"unlimited".
	(Screen Size): Document that "set height" and "set width" accepts
	"unlimited".  Adjust "set pagination"'s description to suggest
	"set height unlimited" instead of "set height 0".

2013-04-10  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (Trace Files): Add "target ctf".

2013-04-06  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* Makefile.in (POD2MAN1, POD2MAN5): Replace $(VERSION) by ../version.in.

	* Makefile.in (install-man1, install-man5, uninstall-man1)
	(uninstall-man5): Replace $(MANS) by $(MAN1S) and $(MAN5S) respectively.

	* Makefile.in (gdb.1, gdbserver.1, gdbinit.5): Use $(srcdir).

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

	* gdb.texinfo (gdbserver man): Rename tty to comm.  Swap --attach
	parameters order.  Remove "On some targets" for --attach.  Document the
	--multi parameter and extended-remote command.  Document all the
	options.

2013-04-05  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (gdb man): Mention option -p.  Include Fortran to
	the list of supported languages.

2013-04-05  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Convert man pages to texinfo, new gdbinit.5 texinfo page.
	* Makefile.in (mandir, man1dir, man5dir, SYSTEM_GDBINIT, MANCONF,
	(TEXI2POD, POD2MAN1, POD2MAN5, MAN1S, MAN5S, MANS, man): New.
	(diststuff): Add man.
	(install-man, install-man1, install-man5, uninstall-man, uninstall-man1)
	(uninstall-man5): New.
	(STAGESTUFF): Add *.1 and *.5.
	(GDBvn.texi): Add SYSTEM_GDBINIT.
	(gdb.1, gdbserver.1, gdbinit.5): New.
	(maintainer-clean realclean): Add $(MANS).
	(install): Add install-man.
	(uninstall): Add uninstall-man.
	* gdb.texinfo (@include gdb-cfg.texi): Wrap it by @c man begin INCLUDE.
	(@copying): Wrap it by @c man begin COPYRIGHT.
	(Top): Add Man Pages.
	(Man Pages, gdb man, gdbserver man, gdbinit man): New.

2013-04-02  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Debugging Output): Document "set/show debug
	aarch64", "set/show debug coff-pe-read" and "set/show debug
	mach-o".

2013-04-02  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Remote Configuration) <set remote @var{name}-packet
	table>: Add entry for "trace-buffer-size".

2013-03-28  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Remote Configuration) <set remote @var{name}-packet
	table>: Add entry for "trace-status".

2013-03-28  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Maintenance Commands): Use @enumerate, not "@table
	@bullet", which is invalid (makeinfo 5.1 barfs).

2013-03-28  Pedro Alves  <palves@redhat.com>

	PR gdb/15294

	* gdb.texinfo (List) <set listsize>: Adjust to document that
	listsize 0 means no limit, and remove mention of -1.

2013-03-22  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (Embedded Processors): Remove menu item
	"OpenRISC 1000".
	(OpenRISC 1000): Remove.

2013-03-21  Doug Evans  <dje@google.com>

	* gdb.texinfo (Maintenance Commands): Add docs for
	"mt set per-command {space,time,symtab} {on,off}".

2013-03-14  Hui Zhu  <hui@codesourcery.com>
	    Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (Trace Files): Add "tsave -ctf".

2013-03-13  Keith Seitz  <keiths@redhat.com>

	* gdb.texinfo (Maintenance Commands): Add missing ')' for
	"maint agent" reference to Dynamic printf.

2013-03-11  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (General Query Packets): Don't use colon in index
	entries visible to Info format.

2013-03-11  Markus Metzger  <markus.t.metzger@intel.com>

	* gdb.texinfo (Process Record and Replay): Document record
	changes.

2013-03-11  Markus Metzger  <markus.t.metzger@intel.com>

	* gdb.texinfo (Requirements): List qXfer:btrace:read requiring expat.
	(General Query Packets): Describe Qbtrace:bts, Qbtrace:off, and
	qXfer:btrace:read.

2013-03-09  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (General Query Packets, Tracepoint Packets): Don't
	use colons in @anchor and @cindex entries.

2013-03-09  Hafiz Abid Qadeer  <abidh@codesourcery.com>

	* gdb.texinfo (QTBuffer:size): Add cindex and anchor.

2013-03-08  Stan Shebs  <stan@codesourcery.com>
	    Hafiz Abid Qadeer  <abidh@codesourcery.com>

	* gdb.texinfo (Starting and Stopping Trace Experiments): Document
	trace-buffer-size set and show commands.
	(Tracepoint Packets): Document QTBuffer:size.
	(General Query Packets): Document QTBuffer:size.

2013-02-21  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo: Remove bad @syncodeindex.
	(Values From Inferior, Types In Python, Inferiors In Python)
	(Events In Python, Threads In Python, Frames In Python, Blocks In
	Python, Symbols In Python, Symbol Tables In Python): Remove
	@tables.
	(Packets, General Query Packets, Tracepoint Packets)
	(Host I/O Packets): Use @w{} for empty @item.

2013-02-20  Siva Chandra Reddy <sivachandra@google.com>

	* gdb.texinfo (Architectures In Python): Add description about
	the new method gdb.Architecture.disassemble.

2013-02-15  Pedro Alves  <pedro@codesourcery.com>
	    Hafiz Abid Qadeer  <abidh@codesourcery.com>

	* gdb.texinfo (GDB/MI Tracepoint Commands) <-trace-status>:
	Document the "trace-file" field.

2013-02-07  Doug Evans  <dje@google.com>

	* gdb.texinfo (Machine Code): Clarify argument to disassemble
	command.

2013-02-06  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (GDB/MI Async Records): Document new MI
	notification "=tsv-modified".  Update the document of MI
	notification "=tsv-created".
	* observer.texi (GDB Observers): New observer tsv_modified.
	Update observer tsv_created and tsv_delete.

2013-02-05  Yufeng Zhang  <yufeng.zhang@arm.com>

	* gdb.texinfo (AArch64 Features): New section; document
	org.gnu.gdb.aarch64.core and org.gnu.gdb.aarch64.fpu.
	(Architectures): Add new AArch64 section to document AArch64
	architecture specific commands.
	(ABI): Add description of the new OS ABI "Newlib" and its influence
	on the longjmp handling.

2013-02-03  Eldar Gaynetdinov <hal9000ed2k@gmail.com>
	    Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (Backtrace): Added description of 'filename-display'
	variable in 'set/show backtrace' section.

2013-01-31  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Target Commands): Fix typo.

2013-01-23  Siva Chandra Reddy  <sivachandra@google.com>

	* doc/gdb.texinfo (Architectures In Python): New sub-sub-section
	describing the gdb.Architecture class.
	(Frames In Python): Add description about the new method
	gdb.Frame.architecture().

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

	* gdb.texinfo (Index Section Format): Document .gdb_index version 8.

2013-01-21  Marc Khouzam  <marc.khouzam@ericsson.com>

	* gdb.texinfo (GDB/MI Breakpoint Commands): Document new
	'thread-groups' field when printing a breakpoint in MI.

2012-01-17  Sanjoy Das <sanjoy@playingwithpointers.com>
	* gdb.texinfo (Using JIT Debug Info Readers): Change documentation
	to reflect that jit-reader-load now supports absolute file-names.

2013-01-16  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Set Catchpoints): Document "catch signal".
	(Signals): Likewise.

2013-01-16  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (GDB/MI Breakpoint Information): Document
	"catch-type" field.
	(GDB/MI Catchpoint Commands): Add "catch-type" to examples.

2013-01-07  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Mode Options): Don't mention -epoch.
	(Data, Emacs): Remove obsolete comments.

2013-01-02  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (GDB/MI Output Records): Update menu.
	(GDB/MI Breakpoint Information): New node.
	(GDB/MI Breakpoint Commands) <-break-info>: Link to new node.
	<-break-insert>: Likewise.

2012-12-31  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (Remote Non-Stop): Move paragraphs to ...
	(Packets): Move "vStopped" packet to ...
	(Notification Packets): ... here.  Describe the components
	of notification.  Add a table of supported notifications.
	Add an example on the process of he async notification.

2012-12-25  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (GDB/MI Data Manipulation) (fullname): Make it always
	present.
	(GDB/MI File Commands) (-file-list-exec-source-files): Make the
	fullname output always present.

2012-12-23  Pierre Muller  <muller@sourceware.org>

	* gdbint.texinfo (Function prototypes): Require use of "extern"
	modifier for function prototypes in headers.

2012-12-19  Joel Brobecker  <brobecker@adacore.com>

	* refcard.tex: Update copyright notice to GPL v3 or later.
	Update contact info.

2012-12-16  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdbint.texinfo (Coding Standards) (C Usage): New rule for 0 vs. NULL.

2012-12-15  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (Debugging Output): Document 'set debug
	notification' and 'show debug notification'.

2012-12-15  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (Listing Tracepoints): New item and example about
	'installed on target' output.
	Add more in the example about 'installed on target'.
	(GDB/MI Breakpoint Commands): Doc about 'installed field.

2012-12-14  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (SVR4 Process Information): Mention core files.

2012-12-12 Mircea Gherzan <mircea.gherzan@intel.com>

	* gdb.texinfo (GDB/MI Catchpoint Commands): New section.

2012-12-11  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo: Remove all mentions of Unixware throughout.

2012-12-09  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdbint.texinfo (Host Definition): Remove CC_HAS_LONG_LONG.

2012-11-29  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (SVR4 Process Information): Document missing
	"info proc" subcommands.

2012-11-29  Yao Qi  <yao@codesourcery.com>

	PR gdb/1477.
	* gdb.texinfo (Print Settings): Correct the default 'demangle-style'
	to 'auto' instead of 'gnu'.

2012-11-26  Tom Tromey  <tromey@redhat.com>

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

2012-11-16  Doug Evans  <dje@google.com>

	* gdb.texinfo (System-wide configuration): If the system-wide init
	file lives in the data-directory, and --data-directory is provided,
	look for it there.

2012-11-15  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Signaling): Fix typo.

2012-11-13  Giuseppe Montalto  <giuseppe.montalto@st.com>

	* gdb.texinfo (GDB/MI Data Manipulation): Document new optional
	parameter "count" of -data-write-memory-bytes, and add an example.

2012-11-12  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Symbols): Document "info type-printers",
	"enable type-printer" and "disable type-printer".
	(Python API): Add new node to menu.
	(Type Printing API): New node.
	(Progspaces In Python): Document type_printers field.
	(Objfiles In Python): Likewise.
	(gdb.types) <get_type_recognizers, apply_type_recognizers,
	register_type_printer, TypePrinter>: Document.

2012-11-12  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Symbols): Document "set print type methods",
	"set print type typedefs", and flags to ptype and whatis.

2012-11-09  Andrew Burgess  <aburgess@broadcom.com>

	* gdb.texinfo (GDB/MI Data Manipulation): Add fullname field to
	the example -data-disassemble output.  Extend the description of
	the -data-disassemble results to document all fields.  Document
	the cli disassemble command as being related to -data-disassemble.

2012-11-09  Yao Qi  <yao@codesourcery.com>

	PR gdb/14777.
	* gdb.texinfo (OS Information): Remove doc on command
	'info udot'.

2012-11-08  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Startup): Minor rewording, and clarify scope of
	gdb.ini warning for Windows port.

2012-11-08  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (Search): Add kindex for 'fo'.

2012-11-05  Tom Tromey  <tromey@redhat.com>

	PR python/14802:
	* gdb.texinfo (Functions In Python): Add example.

2012-11-03  Yao Qi  <yao@codesourcery.com>

	* observer.texi (GDB Observers): Remove observer
	'tracepoint_modified', 'tracepoint_created' and
	'tracepoint_deleted'.

2012-10-26  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (General Query Packets): Use @itemx for QAgent.

2012-10-25  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (General Query Packets): Use @itemx.

2012-10-17  Yao Qi  <yao@codesourcery.com>

	* observer.texi (GDB Observers): Update observer
	'memory_changed'.
	* gdb.texinfo (GDB/MI Async Records): Document for
	"memory-changed" notification.

2012-10-15  Doug Evans  <dje@google.com>

	* gdb.texinfo (Mode Options): Document -nh.
	Elaborate on docs for -nx.

2012-09-26  Siddhesh Poyarekar  <siddhesh@redhat.com>

	* observer.texi (memory_changed): Expand parameter LEN to ssize_t.

2012-09-21  Yao Qi  <yao@codesourcery.com>
	    Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (GDB/MI Async Records): Document notification
	'record-started' and 'record-stopped'.
	* observer.texi (GDB Observers): New observer 'record-changed'.

2012-09-19  Thomas Schwinge  <thomas@codesourcery.com>

	* gdb.texinfo: Document the removal of SH's 'regs' command.

2012-09-18  Sergio Durigan Junior  <sergiodj@redhat.com>

	* gdb.texinfo (jump): Mention new alias `j' for `jump'.

2012-09-18  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (GDB/MI Async Records): Document new MI
	notifications '=tsv-created' and '=tsv-deleted'.
	* observer.texi (GDB Observers): New observer tsv_created and
	tsv_deleted.

2012-09-18  Yao Qi  <yao@codesourcery.com>

	* observer.texi (GDB Observers): New observer 'traceframe_changed'.
	* gdb.texinfo (GDB/MI Async Records): Mention new MI notification
	'=traceframe-changed'.

2012-09-17  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (List): Describe the meaning of 0 and -1 in
	'set listsize'.

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

	* gdbint.texinfo (Defining Other Architecture Features): Clarify *pcptr
	encoding for gdbarch_breakpoint_from_pc, bp_addr for
	gdbarch_push_dummy_call and bp_addr for gdbarch_push_dummy_code.

2012-08-27  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (objfile-gdb.py file): New paragraph for .exe stripping.

2012-08-23  Khoo Yit Phang <khooyp@cs.umd.edu>

	Document how to return from "python-interactive" to GDB.
	* gdb.texinfo (Python Commands): Update documentation.

2012-08-22  Khoo Yit Phang <khooyp@cs.umd.edu>

	Add a new "python-interactive" command that starts a standard
	Python interactive prompt with "pi" as alias, and add "py" as
	an alias to "python".
	* gdb.texinfo (Python Commands): Document the new commands.

2012-08-22  Tom Tromey  <tromey@redhat.com>

	* gdbint.texinfo (Host Definition): Remove documentation for
	SIGWINCH_HANDLER and SIGWINCH_HANDLER_BODY.

2012-08-17  Keith Seitz  <keiths@redhat.com>

	PR c++/13356
	* gdb.texinfo (Type and Range Checking): Remove warning.
	Remove spurious commas.
	Update text and examples for re-implementation of set/show
	check type.
	(C and C++ Type and Range Checks): Likewise.

2012-08-16  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (Types In Python): Mention gdb.TYPE_CODE_BITSTRING
	is deprecated.

2012-08-13  Doug Evans  <dje@google.com>

	* gdb.texinfo (Convenience Vars): Update text for "show convenience"
	to include functions.

2012-08-10  Doug Evans  <dje@google.com>

	* gdb.texinfo (Convenience Funs): New node.
	(Types In Python): Document Type.vector.

2012-08-09  Yao Qi  <yao@codesourcery.com>

	* observer.texi: New observer command_param_changed.
	* gdb.texinfo (GDB/MI Async Records): Doc for '=cmd-param-changed'.

2012-08-07  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdbint.texinfo (Debugging GDB): In section
	'Debugging @value{GDBN} with itself' change .gdbinit for gdb-gdb.gdb.
	Mention also gdb-gdb.py.

2012-08-07  Yao Qi  <yao@codesourcery.com>

	Revert the folloing patch:
	2012-08-06  Yao Qi  <yao@codesourcery.com>
	* gdb.texinfo (Remote Configuration): Add kindex for 'set
	remote hardware-watchpoint-limit' and 'set
	remote hardware-breakpoint-limit'.

2012-08-06  Nathaniel Flath  <flat0103@gmail.com>

	* gdb.texinfo (Working Directory): Added information about new
	default argument for 'cd' command.

2012-08-06  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (Remote Configuration): Add kindex for 'set
	remote hardware-watchpoint-limit' and 'set
	remote hardware-breakpoint-limit'.

2012-08-06  Yao Qi  <yao@codesourcery.com>

	Fix PR14371.

	* gdb.texinfo (GDB/MI Async Records): Fix the doc for
	'=breakpoint-deleted'.

2012-08-02  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (Native): Remove node Neutrino.

2012-07-27  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (IPA Protocol Commands): Document new command
	'close'.

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

    	* gdb.texinfo (Maintenance Commands): Document maint info bfds.

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

	* gdb.texinfo (Mode Options): Delete --use-deprecated-index-sections.
	(Index Files): Document how to control the use of deprecated index
	sections.
	(Index Section Format): Replace --use-deprecated-index-sections with
	"set use-deprecated-index-sections on".

2012-07-12  Eli Zaretskii  <eliz@gnu.org>

	* gdbint.texinfo: Remove @syncodeindex directives that put all the
	indices into a single node "Index".  Instead, join function and
	variable indices into a single index, separate from the concept
	index.  Requested in
	http://sourceware.org/ml/gdb-patches/2012-07/msg00146.html.
	(Top): Update the top-level menu: instead of one "Index" there are
	now separate entries "Concept Index" and "Function and Variable
	Index".
	(Concept Index, Function and Variable Index): New nodes.
	(Index): Node deleted.

2012-07-05  Hui Zhu  <hui_zhu@mentor.com>

	* gdb.texinfo (Maintenance Commands): Change help for "maint agent"
	and "maint agent-eval".

2012-07-03  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo: Separate the index into 2 indices, cp and fn, to
	avoid file-name clashes between Index.html and index.html on
	case-insensitive filesystems.  See the discussion starting in
	http://sourceware.org/ml/gdb-patches/2012-06/msg00457.html for the
	details of the problem.
	(Top): Update the master menu for the above.
	(Concept Index, Command and Variable Index): New nodes, instead of
	the old "Index" node that was deleted.  All cross-references
	updated.

2012-07-02  Stan Shebs  <stan@codesourcery.com>

	* gdb.texinfo (Dynamic Printf): Mention agent style and
	disconnected dprintf.
	(Maintenance Commands): Describe maint agent-printf.
	(General Query Packets): Mention BreakpointCommands feature.
	(Packets): Document commands extension to Z0 packet.
	* agentexpr.texi (Bytecode Descriptions): Document printf
	bytecode.

2012-07-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (File Options): Change -ix and -iex commands that apply
	only after gdbinit files.
	(Startup): Move -iex and -iex commands down after gdbinit files.

2012-07-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (Auto-loading safe path): Note the shell wildcard
	possibility.

2012-06-29  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Index Section Format): Update for version 7.

2012-06-28  Stan Shebs  <stan@codesourcery.com>

	* gdb.texinfo (Miscellaneous GDB/MI Commands): Update -info-os
	example, add note about title column.

2012-06-26  Siva Chandra Reddy  <sivachandra@google.com>

	* gdb.texinfo (Symbol Tables In Python): Add description about
	the new 'last' attribute of gdb.Symtab_and line.

2012-06-26  Siva Chandra Reddy  <sivachandra@google.com>

	* gdb.texinfo (Symbol Tables In Python): Correct the description
	of the 'pc' attribute of gdb.Symtab_and_line.

2012-06-26  Doug Evans  <dje@google.com>

	* gdb.texinfo (Debugging Output): Document debug options dwarf2-read
	and symtab-create.

2012-06-25  Keith Seitz  <keiths@redhat.com>

	* gdb.texinfo (GDB/MI Breakpoint Commands): Remove "-r" option
	from example.  Remove "rbreak" from list of corresponding
	gdb commands.

2012-06-23  Doug Evans  <dje@google.com>

	* gdb.texinfo (Index Section Format): Document version 7 format.

2012-06-22  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo: Add missing cindex for some packets.

2012-06-20  Keith Seitz  <keiths@redhat.com>

	* gdb.texinfo (GDB/MI Breakpoint Commands): Re-order options
	for -break-insert and document -p.

2012-06-20  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (Inferiors In Python): Replace "gdb.read_memory"
	and "gdb.write_memory" with "Inferior.read_memory" and
	"Inferior.write_memory".

2012-06-15  Patrice Dumas  <pertusus@free.fr>  (tiny change)

	* gdb.texinfo (Summary): Add a link to "Free Documentation".
	(Free Documentation): Add @node line.
	(Continuing and Stepping) <advance location>: Use @item instead of
	@itemx.
	(Reverse Execution) <set exec-direction reverse>: Use @item instead of
	@itemx.
	(Embedded Processors): Put the link to "PA" to its correct place,
	according to document structure.
	(Python API): Put the link to "Lazy Strings In Python" to its
	correct place.
	(Index): Use @@ in @tex block to get a literal @.

	* gdbint.texinfo: Fix the @subtitle line.

	* stabs.texinfo (Top): Put the link to "Symbol Types Index" to its
	correct place.

2012-06-08  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (In-Process Agent): Add 'In-Process Agent
	Protocol'.
	(In-Process Agent Protocol, IPA Protocol Objects)
	(IPA Protocol Commands): New nodes.
	(Tracepoint Packets): Add anchors.

2012-06-06  Thomas Schwinge  <thomas@codesourcery.com>

	* gdb.texinfo: Document the deprecation of SH's 'regs' command.

2012-06-06  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo: Update copyright year.

2012-05-23  Stan Shebs  <stan@codesourcery.com>
	    Kwok Cheung Yeung  <kcy@codesourcery.com>

	* gdb.texinfo (Miscellaneous GDB/MI Commands): Document -info-os.

2012-05-20  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (Separate Debug Files): New anchor debug-file-directory.
	Mention also --with-separate-debug-dir.
	(Auto-loading): Prepend $debugdir in the sample output.
	(Auto-loading safe path): Likewise.  Mention also $debugdir for the
	auto-load safe-path variable.
	(objfile-gdb.py file): Remove the extra debug-file-directory paragraph.
	Mention also $debugdir for 'set auto-load scripts-directory'.

2012-05-19  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Continuing and Stepping, Selection, Byte Order)
	(MIPS Embedded, MIPS, MIPS Register packet Format)
	(Target Descriptions, MIPS Features): Use @acronym{MIPS} where
	appropriate.

2012-05-18  Sandra Loosemore  <sandra@codesourcery.com>
	    Maciej W. Rozycki  <macro@codesourcery.com>

	* gdb.texinfo (MIPS): Document "set mips compression" and "show
	mips compression".
	(MIPS Breakpoint Kinds): New subsubsection.

2012-05-18  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Architecture-Specific Protocol Details): Define
	nodes for subsections.  Add @acronym mark-ups and adjust
	formatting.

2012-05-18  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Rename $ddir to $datadir.
	* gdb.texinfo (Auto-loading, Auto-loading safe path)
	(objfile-gdb.py file): Rename $ddir to $datadir.

2012-05-18  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Print Settings): Document 'set print symbol'.

2012-05-14  Stan Shebs  <stan@codesourcery.com>

	* gdb.texinfo (Dynamic Printf): New subsection.

2012-05-13  Siva Chandra Reddy  <sivachandra@google.com>

	* gdb.texinfo (Basic Python): Add description about the function
	gdb.find_pc_line

2012-05-12  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Separate Debug Files): Use plural form for global
	debugging information directory.

2012-05-11  Stan Shebs  <stan@codesourcery.com>
	    Kwok Cheung Yeung  <kcy@codesourcery.com>

	* gdb.texinfo (Operating System Auxiliary Information): Document new
	'info os' subcommands.

2012-05-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (Auto-loading, Init File in the Current Directory)
	(libthread_db.so.1 file, objfile-gdb.gdb file, objfile-gdb.py file)
	(dotdebug_gdb_scripts section): Add reference
	to 'Auto-loading safe path'.

2012-05-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Implement multi-component --with-auto-load-dir.
	* gdb.texinfo (Auto-loading): New references
	for 'set auto-load scripts-directory'
	and 'show auto-load scripts-directory'.
	(Auto-loading safe path): Describe the new default.  Move $ddir
	substituation reference to 'objfile-gdb.py file'.
	(objfile-gdb.py file): Describe script-name alias.  Change real-name to
	script-name.  Describe new 'set auto-load scripts-directory'
	and 'show auto-load scripts-directory'.

2012-05-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Provide $ddir substitution for --with-auto-load-safe-path.
	* gdb.texinfo (Auto-loading): Replace /usr/local by $ddir/auto-load.
	(Auto-loading safe path): Likewise.  Mention the default value,
	$ddir substitution, --with-auto-load-safe-path and
	--without-auto-load-safe-path.
	* observer.texi (gdb_datadir_changed): New.

2012-05-09  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (Auto-loading): Wrap too long lines in @smallexample.
	Twice.

	* gdb.texinfo (Separate Debug Files, Auto-loading safe path): Replace
	directory separator by path separator.

2012-05-06  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (Auto-loading safe path): Make 'directories'
	for 'set auto-load safe-path' optional.  Mention if it is omitted.
	Change disabling security protection condition to "/", twice.

2012-05-03  Siva Chandra Reddy  <sivachandra@google.com>

	* gdb.texinfo (Symbol Tables In Python): Add documentation about
	the new methods global_block and static_block on gdb.Symtab
	objects.

2012-05-02  Siva Chandra Reddy  <sivachandra@google.com>

	* gdb.texinfo (Blocks In Python): Add a note saying that future
	improvements to GDB and its infrastructure can move symbols
	across blocks within a symbol table.

2012-04-29  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (Architectures): Remove menu entry `A29K'.
	(A29K): Remove.

2012-04-27  Sergio Durigan Junior  <sergiodj@redhat.com>
	    Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Static Probe Points): New entry, explaining SystemTap
	and generic static probe support on GDB.

2012-04-25  Doug Evans  <dje@google.com>

	* gdb.texinfo (Go): Fix thinko.

	* gdb.texinfo (Supported Languages): Add Go.
	(Go): New node.

2012-04-25  Yao Qi  <yao@codesourcery.com>

	* gdbint.texinfo (Testsuite): New section `Board settings'.

2012-04-23  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (Auto-loading safe path): Remove trailing [@dots{}].
	Three times.

	* gdb.texinfo (Auto-loading safe path): Add trailing @dots{}.
	Three times.

2012-04-22  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (Auto-loading safe path): Replace @itemize @bullet
	by @table @asis.  Fix formatting of one item.

2012-04-18  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (Auto-loading verbose mode): Fix smallexample typo.

2012-04-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	New option "set debug auto-load".
	* gdb.texinfo (Auto-loading): New menu item for auto-load verbose mode.
	(auto-load verbose mode): New node.

2012-04-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	New option "set auto-load safe-path".
	* gdb.texinfo (Auto-loading): Extend the "show auto-load"
	and "info auto-load" examples for safe-path.  Put there also references
	for "set auto-load safe-path" and "show auto-load safe-path".
	New menu item for Auto-loading safe path.
	(Auto-loading safe path): New node.
	(Python Auto-loading): Update the expected output from "Missing"
	to "No".

2012-04-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	auto-load: Implementation.
	* gdb.texinfo (Mode Options): New anchor for -nx.
	(Startup): New anchors for Option -init-eval-command,
	Home Directory Init File
	and Init File in the Current Directory during Startup.
	Mention set auto-load local-gdbinit with a reference.
	Change the sample code to "set auto-load python-scripts".
	(Threads): New anchor set libthread-db-search-path.
	Provide references to libthread_db.so.1 file.
	(Controlling GDB): New menu item for Auto-loading.
	(Auto-loading, Init File in the Current Directory)
	(libthread_db.so.1 file, objfile-gdb.gdb file): New nodes.
	(Python): Rename the menu item Auto-loading to Python Auto-loading.
	(Writing a Pretty-Printer, Objfiles In Python): Update the renamed
	reference.
	(Auto-loading): Rename to ...
	(Python Auto-loading): ... here.  Change "set auto-load-scripts" to
	"set auto-load python-scripts", new anchor for it.  Change
	"show auto-load-scripts" to "show auto-load python-scripts", new anchor
	for it.  Change "info auto-load-scripts"
	to "info auto-load python-scripts", new anchor for it.  Change "scripts"
	to "Python scripts".

2012-04-14  Anton Gorenkov <xgsa@yandex.ru>

	PR mi/13393
	* gdb.texinfo (Print Settings): Extend the description for "set print
	object".
	(GDB/MI Variable Objects): Extend the description for -var-create and
	-var-list-children.

2012-04-11  Siva Chandra Reddy  <sivachandra@google.com>

	* gdb.texinfo (Examining Data): Document the 'explore' command.

2012-03-28  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (GDB/MI Variable Objects): Document what happens
	to the children of a varobj and its update range when -var-update
	returns that the varobj's type changed.

2012-03-27  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (Auto-loading): Move @menu to the end of @node.
	Create two new links fir 'objfile-gdb.py file'
	and 'dotdebug_gdb_scripts section'.

2012-03-27  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (Auto-loading): Rename node reference
	'.debug_gdb_scripts section' to 'dotdebug_gdb_scripts section'.
	Twice.
	(.debug_gdb_scripts section): Rename the node ...
	(dotdebug_gdb_scripts section): ... here.
	(Maintenance Commands): Also rename this node reference.

2012-03-22  Siva Chandra Reddy  <sivachandra@google.com>

	* gdb.texinfo (Python API/Values From Inferior): Add description
	about the new method Value.referenced_value.  Add description on
	how Value.dereference is different (and similar) to
	Value.referenced_value.

2012-03-19  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (File Options): Describe --init-command=FILE, -ix and
	--init-eval-command=COMMAND, -iex.
	(Startup): Describe -iex and -ix.  Simplify the example
	for "set auto-load-scripts off".

2012-03-16  Gary Benson  <gbenson@redhat.com>

	PR breakpoints/10738
	* gdb.texinfo (Inline Functions): Remove the now-unnecessary @item
	stating that GDB cannot set breakpoints on inlined functions.
	(Mode Options): Document --use-deprecated-index-sections.
	(Index Section Format): Document new index section version format.

2012-03-15  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Debugging C Plus Plus): Document "info vtbl".

2012-03-13  Doug Evans  <dje@google.com>

	* gdb.texinfo (Help): Change apropos example to use "alias" instead
	of "reload".
	(Symbols): Delete docs for set/show symbol-reloading.
	* gdbint.texinfo (Defining Other Architecture Features): Delete
	SYMBOL_RELOADING_DEFAULT.
	* refcard.tex: Delete reference to symbol-reloading.

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

	* gdb.texinfo (General Query Packets): Document new
	QProgramSignals packet.
	* gdb.texinfo (Remote configuration): Mention
	"program-signals-packet".

2012-03-05  Tristan Gingold  <gingold@adacore.com>

	* gdb.texinfo (General Query Packets): Document xfer:uib:read.

2012-03-03  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (In-Process Agent): New node.
	Document new commands.
	(General Query Packets): Add packet `QAgent'.

2012-03-01  Maciej W. Rozycki  <macro@codesourcery.com>

	* gdb.texinfo (MIPS Features): Add org.gnu.gdb.mips.dsp.

2012-03-01  Scott J. Goldman <scottjg@vmware.com>

	* gdb.texinfo (Commands In Python): Put example python macro in
	COMMAND_USER category rather than COMMAND_OBSCURE.
	Document gdb.COMMAND_USER.
	(User-defined Commands): Update documentation to clarify
	"set/show max-user-call-depth" and "show user" don't apply to python
	commands.  Update documentation to clarify "help user-defined" may
	also include python commands defined as COMMAND_USER.

2012-02-25  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (Startup): Add option -ex description to the option -x
	description.

2012-02-24  Luis Machado  <lgustavo@codesourcery.com>

	* gdb.texinfo (Setting Breakpoints): Mention and explain the
	condition-evaluation breakpoint parameter.
	Mention condition-evaluation mode being shown in "info break".
	(Break Conditions): Add description for target-side
	conditional breakpoints.
	(Remote Configuration): Mention conditional-breakpoints-packet.
	(Packets): Add cond-expr parameter to Z0/Z1 packets and explain
	cond-expr.
	(General Query Packets): Mention new ConditionalBreakpoint feature.

2012-02-22  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Blocks In Python): Clarify block iteration.

2012-02-17  Tom Tromey  <tromey@redhat.com>

	PR python/10753:
	* gdb.texinfo (objfile-gdb.py file): Fix location of auto-load
	directory.

2012-02-14  Stan Shebs  <stan@codesourcery.com>

	* gdb.texinfo (Disabling Breakpoints): Document enable count.

2012-02-13  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (MIPS boards): Refer to mips-elf instead of
	mips-idt-ecoff.

2012-02-09  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (Symbols In Python): Add missing `@end defvar'.

2012-02-07  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Symbols In Python): Document Symbol.needs_frame and
	Symbol.value.

2012-02-07  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Symbols In Python): Document Symbol.line.

2012-01-27  Thomas Schwinge  <thomas@codesourcery.com>

	* gdb.textinfo (Packets): Move vCont paragraph to the correct place.

2012-01-24  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Set Catchpoints): Document "catch load" and "catch
	unload".
	(Files): Mention new catch commands.
	(GDB/MI Async Records): Likewise.

2012-01-24  Gary Benson  <gbenson@redhat.com>

	Delete #if 0'd out code.
	* gdb.texinfo (Frame Info): Remove "info catch".

2012-01-20  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* gdb.texinfo (Remote Configuration): Document
	"set remote hostio-readlink-packet" command.
	(General Query Packets): Document vFile:readlink packet.

2012-01-16  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Specify Location): Document relative file name
	handling.

2012-01-16  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (gdb.printing): Document FlagEnumerationPrinter.

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

	* gdbint.texinfo (Coding Standards): Require braces for two lines of
	code.

2012-01-11  Paul Hilfinger  <hilfingr@adacore.com>

	* gdb.texinfo (Variables): Document use of :: for non-static
	variables.

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

	* gdbint.texinfo (Start of New Year Procedure): Update
	to replace use of copyright.sh by use of copyright.py.

2012-01-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Remove the gdbtui binary.
	* all-cfg.texi (GDBTUI): Remove.
	* gdb.texinfo (Mode Options): Remove the GDBTUI reference.
	(TUI): Remove GDBTUI pindex.  Remove the GDBTUI reference.
	* gdbint.texinfo (Testsuite): Replace `gdbtui' by `gdb -tui'.

2011-12-23  Kevin Pouget  <kevin.pouget@st.com>

	Introduce gdb.FinishBreakpoint in Python.
	* gdb.texinfo (Finish Breakpoints in Python): New subsection.
	(Python API): Add menu entry for Finish Breakpoints.

2011-12-19  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdbint.texinfo (Testsuite): Describe KFAIL and XFAIL in Writing
	tests.

2011-12-16  Doug Evans  <dje@google.com>

	* gdb.texinfo (Server): Document -/stdio argument to gdbserver.

2011-12-16  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.texinfo (Python Commands): Remove "maint set/show print
	stack".  Add documentation for "set/show python print-stack".

2011-12-14  Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo (Implementing a Remote Stub): Explain that you
	should transfer control to the stub in the startup code instead of
	in main.  Mention the need to get past the initial breakpoint.

2011-12-06  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Set Breaks): Update for new behavior.

2011-12-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (Requirements, Remote Protocol): Reference also `Library
	List Format for SVR4 Targets'.
	(General Query Packets): New item qXfer:libraries-svr4:read.
	(Library List Format for SVR4 Targets): New node.

2011-12-01  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Writing a Pretty-Printer): Use append method, not
	add.

2011-11-22  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (GDB/MI Async Records): Document new *stopped
	reasons.

2011-11-20  Stan Shebs  <stan@codesourcery.com>

	* gdb.texinfo (Starting and Stopping Trace Experiments): Document
	note-related options and variables.
	(Tracepoint Packets): Document packet changes.

2011-11-20  Sanjoy Das  <sdas@igalia.com>

	* gdb.texinfo (JIT Interface): Add documentation on writing and
	usind JIT debug info readers.
	(Custom Debug Info, Using JIT Debug Info Readers, Writing JIT
	Debug Info Readers): New nodes.

2011-11-18  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (Create and Delete Tracepoints): Mention pending
	tracepoint.

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

	* gdb.texinfo (Files): Document basenames-may-differ.

2011-11-14  Doug Evans  <dje@google.com>

	* gdb.texinfo (Shell Commands): Document "!".

2011-11-14  Stan Shebs  <stan@codesourcery.com>
	    Kwok Cheung Yeung  <kcy@codesourcery.com>

	* gdb.texinfo (Create and Delete Tracepoints): Describe what is
	needed to get shorter fast tracepoints.
	(Tracepoint Packets): Document new qTMinFTPILen packet.

2011-11-14  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (Create and Delete Tracepoints): Describe changed
	behavior of tracepoint.
	(General Query Packets): New feature InstallInTrace.
	(Remote Configuration): Document "set remote
	install-in-trace-packet".

2011-11-12  Matt Rice  <ratmice@gmail.com>

	* gdb.texinfo (C Preprocessor Macros): Remove info definitions.
	Add arguments to info macro.

2011-11-10  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Compilation): Don't mention -gdwarf-2.  Link to GCC
	manual.
	(Variables): Don't mention -gdwarf-2.  Link to Compilation node.
	(Macros): Add a footnote.
	(C): Remove paragraph about compiler options.
	(C Constants): Mention wide character and string constants.
	(C Plus Plus Expressions): Update compiler option advice.  Mention
	using declarations.  Mention ADL.  Remove old HP compiler
	information.

2011-11-10  Tom Tromey  <tromey@redhat.com>

	PR c++/9257:
	* gdb.texinfo (Print Settings): Add an extra note about the need
	for a vtable.

2011-11-08  Maciej W. Rozycki  <macro@codesourcery.com>

	* gdb.texinfo (MIPS): Remove duplicate "auto" reference from
	"set mips abi" documentation.

2011-11-04  Doug Evans  <dje@google.com>

	* gdb.texinfo (Maintenance Commands): Update docs of "maint time".

2011-11-03  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Stopping): Add menu entry.
	(Continuing and Stepping): Restore @node.  Use @section, not
	@subsection.

2011-11-03  Maciej W. Rozycki  <macro@codesourcery.com>

	* gdb.texinfo (Skipping Over Functions and Files): Remove node
	designation.  Fix "Specify Location" cross-reference.

2011-11-02  Stan Shebs  <stan@codesourcery.com>

	* gdb.texinfo (Tracepoint Action Lists): Document collect/s.
	(General Query Packets): Describe tracenz feature.
	* agentexpr.texi (Bytecode Descriptions): Describe tracenz.

2011-10-28  Paul Koning  <paul_koning@dell.com>

	* gdb.texinfo (gdb.types): Rename deepitems to deep_items.

2011-10-27  Kevin Pouget  <kevin.pouget@st.com>

	* gdb.texinfo ((Frames In Python): Document
	gdb.FRAME_UNWIND_FIRST_ERROR contant.

2011-10-26  Paul Koning  <paul_koning@dell.com>

	* gdb.texinfo (gdb.types): Document new deepitems function.

2011-10-25  Paul Koning  <paul_koning@dell.com>

	PR python/13327

	* gdb.texinfo (Values From Inferior): Add is_lazy attribute,
	fetch_lazy method.

2011-10-20  Phil Muldoon  <pmuldoon@redhat.com>

	PR python/12656

	* gdb.texinfo (Blocks In Python): Document is_static, is_global,
	global_block, static_block function.

2011-10-19  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Commands In Python): Add missing "@"s.

2011-10-13  Kevin Pouget  <kevin.pouget@st.com>

	PR python/13285 Document named constants for frame unwind stop reasons
	* gdb.texinfo (Frames In Python): Document gdb.FRAME_UNWIND_*
	constants.

2011-10-12  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix compatibility with texinfo versions older than 4.12.
	* Makefile.in (MAKEINFO): Set to @MAKEINFO@.
	(MAKEINFOFLAGS, MAKEINFO_EXTRA_FLAGS, MAKEINFO_CMD): New.
	(MAKEHTMLFLAGS): Use MAKEINFO_CMD.
	(gdb.info, gdbint.info, stabs.info, annotate.info): Use MAKEINFO_CMD.
	* gdb.texinfo (Tail Call Frames): Convert @arrow{} to @click, when possible.
	Make the conversion conditional on HAVE_MAKEINFO_CLICK, using variables
	CALLSEQ1A, CALLSEQ1B, CALLSEQ2A and CALLSEQ2B.

2011-10-09  Doug Evans  <dje@google.com>

	* gdb.texinfo (Extending GDB): Document alias command.

2011-10-09  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Support @entry in input expressions.
	* gdb.texinfo (Variables): Describe @entry names suffix.
	(Print Settings): Add anchor for `set print entry-values'.

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

	Display @entry parameter values (without references).
	* gdb.texinfo (Tail Call Frames): Add anchor.  Add self tail call
	example.
	(Print Settings): New description of set print entry-values and show
	print entry-values.

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

	Recognize virtual tail call frames.
	* gdb.texinfo (Optimized Code): Add reference to Tail Call Frames.
	(Tail Call Frames): New node.
	(Frames In Python): Add gdb.TAILCALL_FRAME.

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

	* gdb.texinfo (gdb.printing): Document new `replace' arg to
	register_pretty_printer.

2011-10-07  Phil Muldoon  <pmuldoon@redhat.com>

	PR python/12930
	PR python/12802

	* gdb.texinfo (Breakpoints In Python): Clarify behavior in the
	stop method.

2011-10-07  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* gdb.texinfo (Starting your Program): "set disable-randomization"
	is no longer Linux-specific.
	(Remote Configuration): Document "set remote
	disable-randomization-packet".
	(General Query Packets): Document "QDisableRandomization" packet
	and add it to "qSupported" list.

2011-10-07  Kevin Pouget  <kevin.pouget@st.com>

	Allow Python notification of new object-file loadings.
	* gdb.texinfo (Events In Python): Document `gdb.NewObjFileEvent'
	event type.

2011-10-04  Kevin Pouget  <kevin.pouget@st.com>

	PR python/12691: Add the inferior to Python exited event
	* gdb.texinfo (Events In Python): Describe exited inferior attribute.

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

	* gdb.texinfo (GDB/MI Miscellaneous Commands): Minor
	rephasing.

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

	* gdb.texinfo (GDB/MI Ada Tasking Commands): New node.
	(GDB/MI Miscellaneous Commands): Add `ada-task-info'
	as possible feature returned by the `-list-features'
	command.

2011-09-28  Paul Koning  <paul_koning@dell.com>

	* gdb.texinfo (gdb.Type): Document field access by dictionary
	key syntax.

2011-09-28  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (Files): Update options for `add-symbol-file'.
	Add one space after option `-s'.  Remove @r{} markup.

2011-09-27  Stan Shebs  <stan@codesourcery.com>

	* gdb.texinfo (Tracepoint Action Lists): Document $_ret.

2011-09-16  Hui Zhu  <teawater@gmail.com>

	* gdb.texinfo (Tracepoint Restrictions): Change *$esp@300
	to *(unsigned char *)$esp@300.

2011-09-15  Paul Koning  <paul_koning@dell.com>

	* gdb.texinfo: Make style of Python functions and methods match
	the syntax of Python.  Also put class and module names explicitly
	on function, member, and variable names, matching Python
	documentation conventions.

2011-09-15  Kevin Pouget  <kevin.pouget@st.com>

	PR Python/12692 Add gdb.selected_inferior() to Python interface.
	* gdb.texinfo (Inferiors In Python): Describe new
	gdb.selected_inferior() function.

2011-09-15  Kevin Pouget  <kevin.pouget@st.com>

	Handle multiple breakpoint hits in Python interface:
	* gdb.texinfo (Events In Python): New function documentation:
	gdb.BreakpointEvent.breakpoints. Indicate that
	gdb.BreakpointEvent.breakpoint is now deprecated.

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

	* gdb.texinfo: Set EDITION to "Tenth" and change ISBN.

2011-08-25  Andrew Oakley  <andrew@ado.is-a-geek.net>

	* gdb.texinfo (Types In Python): Document 'bitpos' for enums.

2011-08-17  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.texinfo (Prompt): Add set/show extended-prompt
	documentation
	(Basic Python): Add prompt_hook anchor.
	(Python modules): Reword module text to reflect multiple modules.
	(gdb.prompt): Document gdb.prompt module.

2011-08-14  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (General Query Packets): Document qXfer:fdpic:read packet.

2011-08-14  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (Standard Target Features): Document C6x features.
	(TIC6x Features): New node.

2011-08-12  Doug Evans  <dje@google.com>

	* gdb.texinfo (Symbols In Python): Document symbol.type.

2011-08-09  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.texinfo (Python): Document command and function
	auto-loading.

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

	* gdb.texinfo (whatis, ptype): Highlight their differences.  Describe
	typedefs unrolling.  Extend the sample code by an inner typedef and
	outer typedefs unrolling.

2011-07-26  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.texinfo (Caching Remote Data): Document {set,show} dcache
	size and line-size.

2011-07-21  Matt Rice  <ratmice@gmail.com>

	PR macros/12999
	* gdb.texinfo (Macros): Add info definitions and info macros commands.
	Update text and cindex entries for info macro command.

2011-07-21  Phil Muldoon  <pmuldoon@redhat.com>

	* observer.texi (GDB Observers): Add before_prompt observer.
	* gdb.texinfo (Basic Python): Add documentation for prompt
	substitution.

2011-07-11  Phil Muldoon  <pmuldoon@redhat.com>

	PR python/12438
	* gdb.texinfo (Python Commands): Add deprecate note to maint
	  set/show python print-stack.  Document set/show python
	  print-backtrace.

2011-07-05  Thiago Jung Bauermann  <bauerman.ibm.com>

	* gdb.texinfo: Fix typos.

2011-07-01  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Debugging Output): Document set debug
	check-physname.

2011-06-29  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (GDB/MI Miscellaneous Commands): Document
	breakpoint-notifications feature.

2011-06-29  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* gdb.texinfo (Target Description): Remove warning about
	possibly unstable format.

2011-06-03  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (GDB/MI Async Records): Document 'exit-code' field.
	(Events In Python): Note that exit_code is optional.

2011-05-17  Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo (Remote Protocol) <Overview>: Mention vCont is
	required for multi-threading support.
	(Remote Protocol) <Packets>: Mention that 'c', 's', 'C', 'S' and
	Hc are deprecated for multi-threading debugging.  Point readers at
	the vCont packet.

2011-05-15  Doug Evans  <dje@google.com>

	* gdb.texinfo (Auto-loading): Document printing of missing scripts.

2011-05-13  Doug Evans  <dje@google.com>

	* gdb.texinfo (Threads): Document $sdir,$pdir.
	(Server): Document $pdir exception.

	* gdb.texinfo (Auto-loading): Document "info auto-load-scripts".

	* gdb.texinfo (Threads): Clarify default value for
	libthread-db-search-path.

	* gdb.texinfo (Completion): Update example.
	(Debugging Output): Delete `set/show debug lin-lwp-async'.

2011-05-12  Kwok Cheung Yeung  <kcy@codesourcery.com>

	* gdb.texinfo: Document change in the behaviour of the enable and
	disable GDB commands when applied to tracepoints.
	Document the EnableDisableTracepoints remote stub feature.
	Document QTEnable and QTDisable in the list of tracepoint packets.

2011-05-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* Makefile.in (GDB_DOC_SOURCE_INCLUDES): Rename inc-hist.texinfo to
	hsuser.texi.
	* gdb.texinfo <!SYSTEM_READLINE>: Rename inc-hist.texinfo inclusion and
	comment to hsuser.texi.  Change rluser.texi name in the comment.

2011-05-10  Doug Evans  <dje@google.com>

	* gdb.texinfo (Threads): If an empty path is provided for
	libthread-db-search-path it is reset to its default value.
	(Server): Ditto.

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

	* gdb.texinfo (Requirements): Fix typo.  Mention --with-iconv-bin.

2011-05-06  Sergio Durigan Junior  <sergiodj@linux.vnet.ibm.com>
	    Thiago Jung Bauermann  <bauerman@br.ibm.com>

	Implement support for PowerPC BookE masked watchpoints.
	* gdb.texinfo (Set Watchpoints): Document mask parameter.
	(PowerPC Embedded): Mention support of masked watchpoints.

2011-05-03  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (In Memoriam): Replace litteral uses of `GDB' with
	`@value{GDBN}'.

2011-05-03  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (titlepage): Remove dedication.
	(In Memoriam): New appendix.

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

	* gdb.texinfo (Index Section Format): Change the version to 5.
	Describe the different formula.

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

	* gdb.texinfo (Starting and Stopping Trace Experiments): New anchor
	for disconnected tracing.
	(Multi-Process Mode for @code{gdbserver}): Mention --multi and
	extended-remote relationship.  Mention --once.
	(TCP port allocation lifecycle of @code{gdbserver}): New.

2011-04-23  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Server): Improve indexing.  Index all optional
	switches to gdbserver.

2011-04-20  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Index Section Format): New node.
	(Top): Add new node to menu.

2011-04-20  Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo (Maintenance Commands): Document `maint print
	remote-registers'.

2011-04-20  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Trace File Format): Move node later.

2011-04-19  Tom Tromey  <tromey@redhat.com>

	* gdbint.texinfo (Register Information Functions): Remove
	duplicate "the".
	* gdb.texinfo (Emacs): Remove duplicate "to".
	(GDB/MI Variable Objects): Remove duplicate "the".
	(General Query Packets): Likewise.

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

	* gdb.texinfo (GDB/MI Output Records): Fix menu entry for
	"GDB/MI Ada Exception Information" node.

2011-04-01  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (GDB/MI Ada Exception Information): Document
	the "exception-name" field in the *stopped async record.

2011-03-31  Thiago Jung Bauermann  <bauerman@br.ibm.com>
	    Sergio Durigan Junior  <sergiodj@linux.vnet.ibm.com>

	Implement support for PowerPC BookE ranged breakpoints.
	* gdb.texinfo (PowerPC Embedded): Document ranged breakpoints.

2011-03-28  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Set Tracepoints): Fix typo.

2011-03-24  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Specify Location): Document `function:label'
	linespec.

2011-03-18  Phil Muldoon  <pmuldoon@redhat.com>

	PR python/12149

	* gdb.texinfo (Basic Python): Update gdb.write and flush text.

2011-03-17  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.texinfo (Blocks In Python): Add is_valid method description.
	(Inferiors In Python): Likewise.
	(Threads In Python): Likewise.
	(Symbols In Python): Likewise.
	(Objfiles In Python): Likewise.
	(Symbol Tables In Python): Likewise.

2011-03-15  Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo (Auto Display) <undisplay, enable display, disable
	display>: Explain that the commands accept number ranges.

2011-03-14  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.texinfo (Breakpoints In Python): Add description and example
	of Python stop function operation.

2011-03-10  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.texinfo (Parameters In Python): Document get_set_string and
	get_show_string methods.

2011-02-28  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (Tracepoint Conditions): Fix missing parenthesis.

	* gdb.texinfo (Starting and Stopping Trace Experiments): Fix
	circular-trace-buffer name.

2011-02-28  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Inferiors and Programs): Fix small error introduced
	in the previous change.

2011-02-27  Michael Snyder  <msnyder@vmware.com>

	* gdb.texinfo (Inferiors and Programs): Update commands to show
	that they can accept multiple arguments.

2011-02-24  Joel Brobecker  <brobecker@adacore.com>

	Revert the following patch (code patch was not approved):
	2011-02-21  Hui Zhu  <teawater@gmail.com>
	* agentexpr.texi (bytecode descriptions): add printf.
	* gdb.texinfo (tracepoint action lists): add printf.

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

	* gdb.texinfo (Symbols In Python): Fix mention of C++, use C@t{++}.

2011-02-23  Michael Snyder  <msnyder@vmware.com>

	* gdb.texinfo (Set Breaks): Add @dots{} to arguments of info break.
	(Set Watchpoints): Add @dots{} to argument of info watchpoints.
	(Listing Tracepoints): Add @dots{} to argument of info tracepoints.

2011-02-22  Doug Evans  <dje@google.com>

	* gdb.texinfo (Symbols In Python): Document lookup_global_symbol.
	Clarify behaviour of lookup_symbol when `block' argument is omitted,
	add description of result, fix @defun formatting.

2011-02-21  Hui Zhu  <teawater@gmail.com>

	* agentexpr.texi (Bytecode Descriptions): Add printf.
	* gdb.texinfo (Tracepoint Action Lists): Add printf.

2011-02-18  Tom Tromey  <tromey@redhat.com>

	* agentexpr.texi (Bytecode Descriptions): Document pick and rot.

2011-02-14  Michael Snyder  <msnyder@vmware.com>

	* gdb.texinfo (threads): Document argument for "info threads" cmd.
	Document new command "thread find".

2011-02-14  Michael Snyder  <msnyder@vmware.com>

	* gdb.texinfo (Threads): Update example of new thread message.

2011-02-14  Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo (Remote Configuration): Mention set/show remote
	traceframe-info.
	(Tools/Packages Optional for Building GDB): Mention that expat is
	used for traceframe info.
	(Remote Protocol) <Menu>: Add "Traceframe Info Format".
	(General Query Packets) <qSupported>: Describe the
	qXfer:traceframe-info:read feature.
	(qXfer::read): Describe qXfer:traceframe-info:read.
	(Traceframe Info Format): New section.

2011-02-04  Pedro Alves  <pedro@codesourcery.com>

	* gdbint.texinfo (Formatting): Mention some formatting guidelines
	for casts and unary operators.

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

	* gdb.texinfo (GDB/MI Async Records): Document that symbols-loaded
	is not useful.

2011-01-25  Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo: s/value optimized out/optimized out/g

2011-01-21  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Other Misc Settings): Rework part of the
	documentation of the "set interactive mode" command.

2011-01-19  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Threads): Document thread name output and `thread
	name' command.
	(Threads In Python): Document Thread.name attribute.
	(GDB/MI Thread Commands): Document thread attributes.

2011-01-12  Andrew Burgess  <aburgess@broadcom.com>

	* gdb.texinfo (GDB/MI Data Manipulation): Update to reflect
	changes in mi/mi-cmd-disas.c

2011-01-12  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Threads): Remove duplicate text.  Update examples.
	Fix "thread apply" text.

2011-01-11  Sergio Durigan Junior  <sergiodj@linux.vnet.ibm.com>
	    Thiago Jung Bauermann  <bauerman@br.ibm.com>

	Implement support for PowerPC BookE ranged watchpoints.
	* gdb.texinfo (PowerPC Embedded): Document ranged watchpoints and
	the "set powerpc exact-watchpoints" flag.

2011-01-07  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Python API): Add descriptions to @menu items.

2011-01-06  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Frames In Python): Document gdb.newest_thread.

2010-01-06  Paul Pluzhnikov  <ppluzhnikov@google.com>

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

2011-01-06  Tom Tromey  <tromey@redhat.com>

	PR python/12133:
	* gdb.texinfo (Frames In Python): Document various frame
	constants.

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

	* doc/agentexpr.texi, doc/all-cfg.texi, doc/annotate.texinfo,
	doc/gdb.texinfo, doc/gdbint.texinfo, doc/observer.texi,
	doc/refcard.tex, doc/stabs.texinfo: Copyright year update.

2011-01-03  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* Makefile.in (diststuff): Remove gdb-cfg.texi and GDBvn.texi.
	(clean): Add GDBvn.texi.

2010-12-29  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Ada Glitches): Remove paragraph describing the
	occasional case where the debugger prints an array address
	instead of the array itself.

2010-12-23  Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo (Packets) <read registers packet>: Document support
	for registers that were not collected.

2010-12-15  Doug Evans  <dje@google.com>

	* gdb.texinfo (Startup): Document auto-loading of scripts during
	startup.
	(Auto-loading): Delete "maint set python auto-load on|off".
	Add "set auto-load-scripts on|off".

2010-12-07  Doug Evans  <dje@google.com>

	* gdb.texinfo (Mode Options): Document -data-directory.
	(Data Files): Add reference to -data-directory.

2010-11-29  Doug Evans  <dje@google.com>

	* gdb.texinfo (Pretty-Printer Introduction): Change
	printer-name:subprinter-name to printer-name;subprinter-name.

2010-11-29  Phil Muldoon  <pmuldoon@redhat.com>

	PR python/12199

	* gdb.texinfo (Breakpoints In Python): Document "delete" method.

2010-11-23  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Top): Check SYSTEM_READLINE.
	(Editing): Likewise.
	(Command History): Likewise.
	(TUI Keys): Likewise.
	(Bug Reporting): Conditionally include rluser.texi and
	inc-history.texinfo.
	* Makefile.in (READLINE_TEXI_INCFLAG): New variable.
	(GDB_DOC_SOURCE_INCLUDES): Add comment.
	(GDBvn.texi): Set SYSTEM_READLINE when appropriate.
	(gdb.dvi): Use READLINE_TEXI_INCFLAG.
	(gdb.pdf): Likewise.
	(gdb.info): Likewise.
	(gdb/index.html): Likewise.

2010-11-23  Tom Tromey  <tromey@redhat.com>

	* Makefile.in (Makefile): Run ../config.status.
	(distclean): Update.
	* configure: Remove.
	* configure.ac: Remove.

2010-11-12  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Basic Python): Update.  Add xref.
	(Exception Handling): Document new exception classes.
	(Types In Python): Update.
	(Frames In Python): Update.

2010-11-11  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.texinfo (Breakpoints In Python): Document "internal"
	parameter, and visible attribute.

2010-11-05  Doug Evans  <dje@google.com>

	* gdb.texinfo (Source Path): Document "set directories".

2010-11-05  Ken Werner  <ken.werner@de.ibm.com>

	* gdb.texinfo: (Summary) Add mention about OpenCL C language support.
	(OpenCL C): New node.

2010-11-02  Doug Evans  <dje@google.com>

	* gdb.texinfo (Pretty Printing): Expand into three sections,
	introduction, example, and commands.
	(Python API): Delete section Disabling Pretty-Printers, merge into
	Selecting Pretty-Printers.
	(Writing a Pretty-Printer): New section.  Move the pretty-printer
	example here, and reformat to match python coding style.  Add a second
	example using the gdb.printing module.
	(Python modules): Add gdb.printing.

2010-10-29  Doug Evans  <dje@google.com>

	* gdb.texinfo (Python): Fix long line.

2010-10-20  Doug Evans  <dje@google.com>

	* gdbint.texinfo (Misc Guidelines): Renamed from Coding.
	All references updated.  Correct sections marked as subsections.
	(Coding Standards): New chapter.  Move the coding standard related
	subsections here.  Add section on Python coding standards.

2010-10-13  Doug Evans  <dje@google.com>

	* gdb.texinfo (Python): Add "Python modules".
	(Types in Python): Add reference to gdb.types section.
	(Python modules): New node.

2010-10-11  Doug Evans  <dje@google.com>

	* gdb.texinfo (Values From Inferior): Add reference to "Types in
	Python" from gdb.Value.type description.

2010-09-28  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Ravenscar Profile): New node.

2010-09-22  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Values From Inferior): Mention Value.__init__.

2010-09-22  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Values From Inferior): Clarify that
	value.dynamic_type works only in C++ programs with RTTI.

2010-09-15  Paul Bolle  <pebolle@tiscali.nl>

	* gdb.texinfo (Character Sets): Correctly reference host-charset
	in example.

2010-09-13  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (GDB/MI Stack Manipulation) <-stack-list-frames>:
	Document "fullname" and "from".

2010-09-01  Marc Khouzam  <marc.khouzam@ericsson.com>

	* gdb.texinfo (GDB/MI Miscellaneous Commands): Document new
	feature `reverse' output by -list-target-features.

2010-08-31  H.J. Lu  <hongjiu.lu@intel.com>

	* gdb.texinfo (i386 Features): Remove an extra "@item".

2010-08-30  Tom Tromey  <tromey@redhat.com>

	PR python/11792:
	* gdb.texinfo (Values From Inferior): Document dynamic_type.

2010-08-24  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (ARM Features): Document
	org.gnu.gdb.arm.m-profile.

2010-08-23  Tom Tromey  <tromey@redhat.com>

	PR python/11145:
	* gdb.texinfo (Values From Inferior): Document dynamic_cast and
	reinterpret_cast methods.

2010-08-23  Tom Tromey  <tromey@redhat.com>

	PR python/11915:
	* gdb.texinfo (Types In Python): Document array method.

2010-08-18  Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.texinfo (PowerPC Embedded): Mention support for the DVC register.

2010-08-16   Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Set Watchpoints): Document -location option.

2010-08-13  Doug Evans  <dje@google.com>

	* gdb.texinfo (.debug_gdb_scripts section): Fix typo.

2010-08-13  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.texinfo (GDB/MI Data Manipulation): Document
	-data-read-memory-raw and -data-write-memory-raw.

2010-08-11  Tom Tromey  <tromey@redhat.com>
	    Phil Muldoon <pmuldoon@redhat.com>

	* gdb.texinfo (Basic Python): Describe post_event API.

2010-08-11  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.texinfo (Basic Python): Describe solib_address and
	decode_line Python APIs

2010-08-10  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Pretty Printing API): Document
	gdb.default_visualizer.

2010-08-10  Tom Tromey  <tromey@redhat.com>

	Revert gdb-add-index addition:
	* gdb.texinfo (Index Files): Don't document gdb-add-index.

2010-08-07  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Eli Zaretskii <eliz@gnu.org>

	* gdb.texinfo (Mode Options) <-batch>
	(Basic Python) <gdb.execute>: Describe setting width and height.

2010-07-31  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.texinfo (Threads): Document 'debug libthread-db'.

2010-07-30  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Index Files): Mention gdb-add-index.

2010-07-30  Hui Zhu  <teawater@gmail.com>

	* gdb.texinfo (Inferiors and Programs): Update the introduce of
	"detach inferior" and "kill inferior".

2010-07-28  CHENG Renquan  <rqcheng@smu.edu.sg>

	* gdb.texinfo (Machine Code): Update description of two forms of
	arguments, and add new example to demonstrate the new form.

2010-07-27  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.texinfo (Values From Inferior): Add value inferior function
	call description.

2010-07-19  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (Active Targets): Fix wrong comma placement.

2010-07-19  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Eli Zaretskii  <eliz@gnu.org>

	Make core files the process_stratum.
	* gdb.texinfo (Active Targets): Remove core_stratum.  Include
	record_stratum example.

2010-07-13  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Index Files): New node.

2010-07-13  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (GDB/MI Variable Objects): Remove extra 'for'.

2010-07-13  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Specify Location): Document labels.

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

	* gdb.texinfo (Create and Delete Tracepoints): Add more index
	entries for fast tracepoints and static tracepoints.

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

	* gdb.texinfo (General Query Packets) <qfThreadInfo,
	qsThreadInfo>: Spell out `l' as ell.

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

	* gdb.texinfo (Convenience Variables): Document $_sdata.
	(Commands to Set Tracepoints): Describe static tracepoints.  Add
	`Listing Static Tracepoint Markers' menu entry.  Document
	"strace".
	(Tracepoint Action Lists): Document collecting $_sdata.
	(Listing Static Tracepoint Markers): New subsection.
	(Tracepoints support in gdbserver): Mention static tracepoints.
	(remote packets, enabling and disabling): Mention
	read-sdata-object.
	(General Query Packets) <qSupported>: Document qXfer:sdata:read
	and StaticTracepoint.
	Mention qTfSTM, qTsSTM and qTSTMat as tracepoint packets.
	Document qXfer:sdata:read.
	(Tracepoint packets): Document qTfSTM, qTsSTM and qTSTMat.

2010-06-29  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Threads In Python): Fix unmatched @end table.

2010-06-28  Phil Muldoon  <pmuldoon@redhat.com>
	    Tom Tromey  <tromey@redhat.com>
	    Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.texinfo (Inferiors In Python): New node.
	* gdb.texinfo (Threads In Python): New node.

2010-06-28  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Python): Document what the python directory is
	and what its location is.
	(Basic Python): Document the gdb.PYTHONDIR constant.

2010-06-25  Tom Tromey  <tromey@redhat.com>

	PR python/10808:
	* gdb.texinfo (Basic Python): Document new gdb.execute argument.

2010-06-24  Hui Zhu  <teawater@gmail.com>

	* gdb.texinfo: (Commands for Controlled Output): Add
	documentation for command "eval".

2010-06-21  Stan Shebs  <stan@codesourcery.com>

	* gdb.texinfo: Add explicit @node and @appendix for GFDL.
	* annotate.texinfo: Ditto.
	* gdbint.texinfo: Ditto.
	* stabs.texinfo: Ditto.

2010-06-22  Hui Zhu  <teawater@gmail.com>

	* gdb.texinfo: (Process Record and Replay): Add documentation
	for command "set record memory-query".

2010-06-21  Stan Shebs  <stan@codesourcery.com>

	* gdb.texinfo: Relicense under GFDL version 1.3.
	* annotate.texinfo: Relicense under GFDL version 1.3.
	* gdbint.texinfo: Relicense under GFDL version 1.3.
	* stabs.texinfo: Relicense under GFDL version 1.3.
	* fdl.texi: Update to version 1.3.

2010-06-18  Stan Shebs  <stan@codesourcery.com>

	* gdb.texinfo (Operating System Auxiliary Information): Describe
	"info os" when no arguments given.

	* gdb.texinfo (Debugging Programs with Multiple Threads): Describe
	$_thread.

2010-06-18  Hui Zhu  <teawater@gmail.com>

	* gdb.texinfo: (Process Record and Replay): Add documentation
	for commands "record save" and "record restore".

2010-06-16  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo: Include information about the correct use
	of addresses in the `watch' command.

2010-06-11  Stan Shebs  <stan@codesourcery.com>

	* gdb.texinfo (Observer Mode): New section.
	(General Query Packets): Document QAllow.

2010-06-04  Doug Evans  <dje@google.com>

	* gdb.texinfo (Python API): New node `Disabling Pretty-Printers'.

2010-06-03  Doug Evans  <dje@google.com>

	* gdbint.texinfo (Coding): Add subsection on command names.

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

	* gdb.texinfo (Maintenance Commands): Document maint set dwarf2
	always-disassemble.

2010-06-01  Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo (Set Tracepoints): Mention tracepoints support in
	gdbserver, and add cross reference.
	(Tracepoints support in gdbserver): New subsection.

2010-05-26  Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo (General Query Packets) <qSupported>: Describe the
	`qRelocInsn' feature.
	(Relocate instruction reply packet): New subsection
	of `Tracepoint Packets'.
	(Tracepoint Packets): Mention that packets QTDP and QTStart
	support the qRelocInsn request, and add cross reference to new
	subsection.

2010-05-25  Doug Evans  <dje@google.com>

	* gdb.texinfo (Exception Handling): Document gdb.GdbError.
	(Commands In Python): Document gdb.string_to_argv.

2010-05-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdbint.texinfo (Host Definition): Remove items NORETURN and
	ATTR_NORETURN.

2010-04-29  Phil Muldoon  <pmuldoon@redhat.com>
	    Tom Tromey  <tromey@redhat.com>
	    Thiago Jung Bauermann  <bauerman@br.ibm.com>

	* gdb.texinfo (Parameters In Python): New Node.

2010-04-29  Mihail Zenkov  <mihail.zenkov@gmail.com>

	* gdb.texinfo: (Summary) Add mention about D language support.
	(Filenames): Add D suffixes.
	(D): New node.

2010-04-26  Pierre Muller  <muller@ics.u-strasbg.fr>

	* gdbint.texinfo (CANNOT_STEP_HW_WATCHPOINTS): Remove explanation
	of macro deleted from GDB code.

2010-04-24  Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo (Commands to specify files): Describe what how GDB
	looks up DOS-based filesystem paths on the system root.  Document
	the new `set/show target-file-system-kind' commands.

2010-04-23  Doug Evans  <dje@google.com>

	* gdb.texinfo (Python): Move Auto-loading section here ...
	(Python API): from here.
	(Auto-loading): Add docs for .debug_gdb_scripts auto-loaded scripts.
	(Maintenance Commands): Add docs for "maint print section-scripts".

2010-04-20  Chris Moller  <cmoller@redhat.com>

	* gdb.texinfo (Setting Breakpoints): Added description of
	filename-qualified rbreak.
	* refcard.tex (Breakpoints and Watchpoints): Added brief
	description of filename-qualified rbreak.

2010-04-22  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (Data): New @menu reference to Pretty Printing.
	(Python API): Change the reference to Pretty Printing API.
	(Pretty Printing): Move the user part under the Data node.  Reformat
	the sample output to 72 columns.  Create a new reference to Pretty
	Printing API.  Rename the API part ...
	(Pretty Printing API): To a new node name.
	(Selecting Pretty-Printers, Progspaces In Python, Objfiles In Python)
	(GDB/MI Variable Objects): Change references to Pretty Printing API.

2010-04-21  Stan Shebs  <stan@codesourcery.com>

	* gdb.texinfo (Tracepoint Actions): Mention synonymy of actions
	and commands.
	(Listing Tracepoints): Update to reflect current behavior.

2010-04-22  Pierre Muller  <muller@ics.u-strasbg.fr>

	* gdb.texinfo (Examining memory): Update for change in string
	display with explicit size.

2010-04-19  Pedro Alves  <pedro@codesourcery.com>

	PR breakpoints/8554.

	* gdb.texinfo (Save Breakpoints): New node.
	(save-tracepoints): Rename to ...
	(save tracepoints): ... this.  Mention that `save-tracepoints' is
	a deprecated alias to `save tracepoints'.

2010-04-16  Pierre Muller  <muller@ics.u-strasbg.fr>

	* gdb.texinfo ($_tlb): Document new automatic convinience variable.
	(info w32 thread-information-block): Document new command.
	(qGetTIBAddress): Document new gdbserver query.
	(maint set/show show-all-tib): Document new command.

2010-04-15  Doug Evans  <dje@google.com>

	* gdb.texinfo (Python API): Add progspaces section.
	(Selecting Pretty-Printers): Progspace pretty-printers are
	searched too.
	(Progspaces In Python): New section.

	* gdb.texinfo (Command Files): Add docs for new "source -s" option.

2010-04-14  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.texinfo (Pretty Printing): Document behaviour when to_string
	returns None.

2010-04-09  Stan Shebs  <stan@codesourcery.com>

	* gdb.texinfo (gdb/mi Tracepoint Commands) <-trace-status>:
	Describe the `frames-created' field, tweak grammar.

2010-04-09  Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo (gdb/mi Tracepoint Commands) <-trace-status>:
	Describe the `circular' and `disconnected' fields.

2010-04-09  H.J. Lu  <hongjiu.lu@intel.com>

	* gdb.texinfo (maint print registers): Mention unavailable and
	invisible registers.

2010-04-09  Phil Muldoon  <pmuldoon@redhat.com>
	    Thiago Jung Bauermann  <bauerman@br.ibm.com>
	    Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Breakpoints In Python): New Node.

2010-04-08  Stan Shebs  <stan@codesourcery.com>

	* gdb.texinfo (Tracepoint Packets): Describe disconn and circular
	trace status fields.

2010-04-08  H.J. Lu  <hongjiu.lu@intel.com>

	* gdb.texinfo (i386 Features): Make org.gnu.gdb.i386.avx
	optional.  Make org.gnu.gdb.i386.avx requires
	org.gnu.gdb.i386.avx.

2010-04-08  Doug Evans  <dje@google.com>

	* gdb.texinfo (Command Files): Document that gdb skips $cdir in
	search path, and document that gdb only scans the search path if
	the script's path doesn't specify a directory.

2010-04-05  Doug Evans  <dje@google.com>

	* gdb.texinfo (maint show python auto-load): Fix typo.

2010-04-04  Stan Shebs  <stan@codesourcery.com>

	* gdb.texinfo (Setting Breakpoints): "info watch" no longer a synonym.
	(Setting Watchpoints): Update description of "info watch".
	(Disabling Breakpoints): Only "info break" lists all.

	* gdb.texinfo (Tracepoint Restrictions): Document PC inference.
	(tdump): Explain how tdump works.

2010-04-01  Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo (Break Commands): Clarify `commands' changes, and
	add cross reference.

2010-03-31  Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo (TUI Commands): Mention that in some cases, these
	commands error out.

2010-03-30  H.J. Lu  <hongjiu.lu@intel.com>

	* gdb.texinfo (i386 Features): Add org.gnu.gdb.i386.avx.

2010-03-30  H.J. Lu  <hongjiu.lu@intel.com>

	* gdb.texinfo (General Query Packets): Add xmlRegisters.

2010-03-29  Stan Shebs  <stan@codesourcery.com>
	    Nathan Sidwell  <nathan@codesourcery.com>

	* gdb.texinfo (GDB/MI Tracepoint Commands): Add notes about the
	GDBN equivalent.
	(Set Tracepoints): Remove mention that conditional tracepoints
	don't exist.
	(Tracepoint Actions): Clarify when while-stepping collection
	happens, note that while-stepping does not automatically collect
	$pc.

2010-03-29  Stan Shebs  <stan@codesourcery.com>

	* gdb.texinfo (Tracepoint Packets): Describe QTDPsrc.
	(General Query Packets): Describe TracepointSource.

2010-03-27  Matt Rice  <ratmice@gmail.com>

	* gdb.texinfo (ARM): Document arguments to "target sim".
	(Set Catchpoints): Use @dots{} instead of @r{...}.

2010-03-26  Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo (Tracepoint Packets): Remove mention that
	terror:string may be plain text, and drop mention of X prefix.

2010-03-26  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.texinfo (GDB/MI Tracepoint Commands): Add comma after @xref.

2010-03-24  Stan Shebs  <stan@codesourcery.com>

	* gdb.texinfo (Tracepoint Packets): Document trace error status.

2010-03-24  Tom Tromey  <tromey@redhat.com>

	PR breakpoints/9352:
	* gdb.texinfo (Break Commands): Update.

2010-03-24  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.texinfo (GDB/MI Tracepoint Commands): Document MI tracepoint
	commands.

2010-03-16  Stan Shebs  <stan@codesourcery.com>

	* gdb.texinfo (Starting and Stopping Trace Experiments): Describe
	circular-trace-buffer.
	(Tracepoint Packets): Describe QTBuffer, and details of the
	qTStatus reply.

2010-03-12  Stan Shebs  <stan@codesourcery.com>
	    Nathan Sidwell  <nathan@codesourcery.com>

	* gdb.texinfo (Tracepoint Actions): Clarify that while-stepping is
	doing instruction stepping.
	(Tracepoint Restrictions): New node.

2010-03-10  Tom Tromey  <tromey@redhat.com>

	* gdbint.texinfo (Symbol Handling): Update.

2010-03-08  Tom Tromey  <tromey@redhat.com>

	PR cli/9591:
	* gdb.texinfo (Mode Options): Mention lack of pagination and
	confirmation with --batch.
	(Screen Size): Mention --batch.
	(Messages/Warnings): Likewise.

2010-03-05  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Basic Python): Document target_charset and
	target_wide_charset.

2010-03-05  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Data): Link to pretty-printing.
	(Output Formats): Likewise.  Correct text.

2010-03-01  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Types): Describe <struct> and <flags>.

2010-02-28  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.texinfo (Frames In Python): Add block parameter and
	description to read_var text.

2010-02-26  Phil Muldoon  <pmuldoon@redhat.com>
	    Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Types In Python): Describe block argument in
	template_argument and gdb.lookup_type.

2010-02-24  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Cygwin Native): Fix typo.

2010-02-24  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.texinfo (Frames In Python): Add block, find_sal, function
	and select method descriptions.
	(Python API): Add Blocks In Python, Symbols in Python and Symbol
	Tables in Python to menu.
	(Blocks In Python): New node.
	(Symbols In Python): New node.
	(Symbol Tables in Python): New node.

2010-02-24  Vladimir Prus  <vladimir@codesourcery.com>

	Multiexec MI

	gdb/
	* breakpoint.c (clear_syscall_counts): Take struct inferior*.

	gdb/doc/
	* gdb.texinfo (GDB/MI Command Syntax): Document notification
	changes.
	(GDB/MI Program Execution): Document current behaviour of
	--all and --thread-group.
	(GDB/MI Miscellaneous Commands): Document -add-inferior and
	-remove-inferior.
	* observer.texi (inferior_added, inferior_removed): New
	observers.

2010-02-19  Tom Tromey  <tromey@redhat.com>

	* gdbint.texinfo (Getting Started): Fix @node.
	(Debugging GDB): Likewise.

2010-02-13  Joel Brobecker  <brobecker@adacore.com>

	* gdbint.texinfo (Testsuite): New section "Testsuite Configuration",
	documenting the gdb_test_timeout variable.

2010-02-12  Jakob Engblom  <jakob@virtutech.com>

	* gdb.texinfo (MI commands): Added documentation of --reverse
	option to a set of MI commands. Restructured documentation of MI
	commands --exec-continue to reflect the complexity of reverse
	execution.

2010-02-12  Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo (Using the Collected Data): Specify that the address
	range of `tfind outsize' is exclusive, and that the address range
	of `tfind range' is inclusive.
	(Tracepoint Packets): Specify that the address range of
	`QTFrame:range' is inclusive, and that the address range of
	`QTFrame:outside' is exclusive

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

	* gdb.texinfo (GDB/MI Result Records): Clarify ^running.

2010-02-10  Tom Tromey  <tromey@redhat.com>

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

2010-02-09  H.J. Lu  <hongjiu.lu@intel.com>

	* gdb.texinfo (Predefined Target Types): Add i387_ext,
	i386_eflags and i386_mxcsr.

2010-02-08  H.J. Lu  <hongjiu.lu@intel.com>

	* gdb.texinfo: Document i386 target features.

2010-02-05  Doug Evans  <dje@google.com>

	* gdbint.texinfo (Testsuite): Add a new section to document the
	various DejaGnu variables that may be overridden.
	Document INTERNAL_GDBFLAGS.

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

	PR cli/8830:
	* gdb.texinfo (Files): -readnow comes before the filename for file
	and symbol-file.

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

	* gdb.texinfo (Architecture-Specific Protocol Details): New section.
	Document ARM breakpoint types.
	(Register Packet Format): Move into the new section.
	(Packets): Describe the KIND argument for Z0, z0, Z1, and z1 packets.

2010-01-21  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (File Options): Adjust the documentation of this
	switch to refer to the "source" command rather than partially
	duplicating some of the relevant information.
	(Extending GDB): Introduce and document the set/show script-extension
	setting.
	(Command Files): Add note explaining that the "source" command
	is also used to evalute scripts written in other languages.
	Remove the short slightly incorrect reference to sourcing Python
	scripts.
	(Python Commands): Document how to execute a Python script from GDB.

2010-01-19  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Command Files): Fix typo.

2010-01-18  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (File Options): Document -x on .py files.
	(Command Files): Document handling of Python scripts.

2010-01-18  Jie Zhang  <jie.zhang@analog.com>

	* Makefile.in (ANNOTATE_DOC_BUILD_INCLUDES): Add GDBvn.texi.

2010-01-15  Stan Shebs  <stan@codesourcery.com>

	* gdb.texinfo (Trace Files): New section.
	(Tracepoint Packets): Document QTSave and qTBuffer.
	(Trace File Format): New appendix.

2010-01-13  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.texinfo (Values From Inferior): Document lazy_string value
	method.
	(Python API): Add Lazy strings menu item.
	(Lazy Strings In Python): New node.

2010-01-13  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.texinfo (GDB/MI Thread Information): New.
	(GDB/MI Async Records): Document the core field in *stopped.
	(GDB/MI Miscellaneous Commands): Expand -list-thread-groups
	documentation
	(Process list): Document that osdata document may contain
	threads.
	(Remote Serial Protocol): Document qXfer:threads.

2010-01-06  Stan Shebs  <stan@codesourcery.com>

	* gdb.texinfo (Starting and Stopping Trace Experiments): Document
	disconnected tracing.
	(Tracepoint Packets): Document new protocol.

2010-01-05  Stan Shebs  <stan@codesourcery.com>

	* gdb.texinfo (Create and Delete Tracepoints): Describe fast
	tracepoints.
	(Tracepoint Packets): Describe remote protocol for fast
	tracepoints.

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

	Update the "Start of New Year Procedure".
	* gdbint.texinfo: Add the list of files that need to be updated
	manually.  Minor reformatting.

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

	* refcard.tex: Update copyright year in header and text.

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

	* agentexpr.texi: Add 2010 to the list of copyright years.
	* annotate.texinfo: Likewise.
	* gdb.texinfo: Likewise.
	* gdbint.texinfo: Likewise.
	* observer.texi: Likewise.
	* stabs.texinfo: Likewise.

2009-12-31  Stan Shebs  <stan@codesourcery.com>

	* gdb.texinfo (Tracepoint Actions): Describe teval.

2009-12-29  Stan Shebs  <stan@codesourcery.com>

	* gdb.texinfo (Tracepoint Actions): Describe default-collect.

2009-12-28  Stan Shebs  <stan@codesourcery.com>

	* gdb.texinfo (Trace State Variables): New section.
	(Tracepoint Packets): Describe trace state variable packets.
	* agentexpr.texi (Bytecode Descriptions): Describe trace state
	variable bytecodes.

2009-12-28  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Symbols): "info variables" prints definitions, not
	declarations.

2009-12-21  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.texinfo (GDB/MI Miscellaneous Commands): Clarify that
	-gdb-exit behaviour.

2009-12-20  Joel Brobecker  <brobecker@adacore.com>

	* gpl.texi: Update to version 3 of the GPL.

2009-12-20  Joel Brobecker  <brobecker@adacore.com>

	* Makefile.in: Update copyright header.
	* observer.texi: Fix the copyright header of the generated files.

2009-12-08  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.texinfo (Types In Python): Describe range function.

2009-12-03  Richard Ward  <richard.j.ward1@googlemail.com>

	* gdb.texinfo (Types In Python): Describe "is_base_class".

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

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

2009-12-02  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* observer.texi: New memory_changed observer.

2009-12-01  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Reverse Execution): Fix typo.

2009-11-24  Daniel Jacobowitz  <dan@codesourcery.com>

	PR gdb/8704

	* gdb.texinfo (Thread-Specific Breakpoints): Thread specifiers
	are allowed after the breakpoint condition.

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

	PR python/10782:
	* gdb.texinfo (Types In Python): Document Type.pointer.

2009-11-23  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.texinfo (Machine Code): Adjust.

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

	* agentexpr.texi (Tracing On Symmetrix): Delete section.
	(Using Agent Expressions): Delete cross reference.

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

	* gdbint.texinfo, stabs.texinfo: Move the @setchapternewpage
	and @settitle directives up to help makeinfo find them.

2009-11-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (set debug-file-directory, show debug-file-directory)
	(Auto-loading): Use plural and note one can use multiple components now.

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

	* gdb.texinfo (GDB/MI Stack Manipulation): Make
	-stack-list-arguments have the same documentation for parameter
	as -stack-list-locals. Add comas.

2009-10-27  Tom Tromey <tromey@redhat.com>
	    Eli Zaretskii <eliz@gnu.org>

	PR python/10781

	* gdb.texinfo (Values From Inferior): Document cast method.

2009-10-22  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.texinfo (Machine Code): Mention function name in disasssembly
	and adjust example.

2009-10-22  Michael Snyder  <msnyder@vmware.com>

	* gdb.texinfo (Process Record and Replay): Document new form of
	info record command.  Also document the new save and restore
	commands.

2009-10-21  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.texinfo (Machine Code): Mention current pc marker.
	(Memory): Likewise.

2009-10-19  Pedro Alves  <pedro@codesourcery.com>
	    Stan Shebs  <stan@codesourcery.com>

	* observer.texi (new_inferior): Rename to...
	(inferior_appeared): ... this.

	* gdb.texinfo (Inferiors): Rename node to ...
	(Inferiors and Programs): ... this.  Mention running multiple
	programs in the same debug session.
	<info inferiors>: Mention the new 'Executable' column if "info
	inferiors".  Update examples.  Document the "add-inferior",
	"clone-inferior", "remove-inferior" and "maint info
	program-spaces" commands.
	(Process): Rename node to...
	(Forks): ... this.  Document "set|show follow-exec-mode".

2009-10-11  Michael Snyder  <msnyder@vmware.com>

	* gdb.texinfo (ReverseStep): Show default as "unsupported".
	(ReverseContinue): Ditto.

2009-10-08  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.texinfo (Server): Document libthread-db-search-path.

2009-10-08  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdbint.texinfo (i386_stopped_by_hwbp): Remove.

2009-10-06  Michael Eager  <eager@eagercon.com>

	* gdb.texinfo (Contributors): Add self for Xilinx MicroBlaze.
	(Embedded Processors): Add MicroBlaze.
	(MicroBlaze): New.  Describe Xilinx MicroBlaze

2009-10-04  Pedro Alves  <pedro@codesourcery.com>

	* gdb.texinfo (Remote Protocol): Don't mention vCont;T.

2009-09-26  Pierre Muller  <muller@ics.u-strasbg.fr>

	* gdb.texinfo (Cygwin Native): Mention support for Ctrl-BREAK.

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

	* observer.texi (solib_unloaded): Document explicitly the fact that
	this observer is called before the associated symbols are unloaded.

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

	* gdb.texinfo (GDB/MI Stack Manipulation): Document
	-stack-list-variables.

2009-09-18  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (GDB/MI Variable Objects): -enable-pretty-printing
	is experimental.

2009-09-17  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.texinfo (convenince variables): Mention
	$_siginfo could be empty.

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

	* gdb.texinfo (GDB/MI Variable Objects): Document
	-enable-pretty-printing, -var-set-update-range, dynamic varobjs.
	Expand -var-update documentation.

2009-09-14  Sergio Durigan Junior <sergiodj@linux.vnet.ibm.com>

	* gdb.texinfo (Set Catchpoints): Documentation about the catch syscall
	feature.

2009-09-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdbint.texinfo (Unwinding the Frame ID): Reference outer_frame_id.

2009-09-10  Michael Snyder  <msnyder@vmware.com>

	* gdb.texinfo (qSupported): Mention new ReverseContinue and
	ReverseStep replies to the qSupported query.

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

	Add documentation for set/show interactive-mode.
	* gdb.texinfo (Other Misc Settings): New node.

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

	* gdb.texinfo (Caching Data of Remote Targets): Add note on
	non-stop mode's affect on remote caching.

2009-08-31  Jacob Potter  <jdpotter@google.com>
	    Doug Evans  <dje@google.com>

	* gdb.texinfo (Caching Data of Remote Targets): Update text.
	Mark `set/show remotecache' options as obsolete.
	Document new `set/show stack-cache' option.
	Update text for `info dcache'.

2009-08-27  Doug Evans  <dje@google.com>

	* gdb.texinfo (Symbols): Delete `set print symbol-loading'.
	(Files): Add note on new optional regex arg to `info sharedlibrary'.

2009-08-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* gdbint.texinfo (Releasing GDB): Fix confusing sentence
	about autoconf.

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

	* gdb.texinfo (Debugging Multiple Inferiors): Add "info inferiors"
	small example, and describe its columns.  Replace "inferior-id" by
	"infno" throughout.

2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* gdbint.texinfo (Releasing GDB): Point to
	README-maintainer-mode file for required autoconf version.
	* configure.ac: Do not substitute datarootdir, htmldir,
	pdfdir, docdir.  Do not process --with-datarootdir,
	--with-htmldir, --with-pdfdir, --with-docdir.
	* configure: Regenerate.

	* configure: Regenerate.

2009-08-20  Reid Kleckner  <reid@kleckner.net>

	* gdb.texinfo: Add chapter on JIT interface.

2009-08-07  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.texinfo (Server Prefix): Explain that server prefix suppresses
	confirmation request.

2009-08-05  Jeremy Bennett  <jeremy.bennett@embecosm.com>

	* gdb.texinfo (Separate Debug Files, Remote Protocol): Clarified
	CRC definitions.

2009-08-03  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.texinfo (GDB/MI Breakpoint Commands): Document
	-break-commands.

2009-07-31  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdb.texinfo (Cell Broadband Engine SPU architecture): Document the
	"set spu auto-flush-cache" and "show spu auto-flush-cache" commands.

2009-07-31  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdb.texinfo (Cell Broadband Engine SPU architecture): Document the
	"set spu stop-on-load" and "show spu stop-on-load" commands.

2009-07-31  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdb.texinfo (Target Descriptions): Document <compatible> element.

2009-07-28  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (ARM Features): Document org.gnu.gdb.arm.vfp and
	org.gnu.gdb.arm.neon.

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

	* gdb.texinfo (Target Description Format): Mention the new <osabi>
	optional element.
	(subsection OS ABI): New subsection.

2009-07-14  Stan Shebs  <stan@codesourcery.com>

	* gdb.texinfo (Tracepoint Conditions): New section.
	(General Query Packets): Describe ConditionalTracepoints.
	(Tracepoint Packets): Describe condition field.
	(Maintenance Commands): Describe maint agent-eval.
	* agentexpr.texi (Using Agent Expressions): Mention eval usage.

2009-07-11  Hui Zhu  <teawater@gmail.com>

	* gdb.texinfo (disassemble): Add a new modifier /r
	to "disassemble" command to make it print the raw instructions
	in hex as well as in symbolic form.

2009-07-09  Tom Tromey  <tromey@redhat.com>

	* gdbint.texinfo (Testsuite): Document parallel make check.

2009-07-09  Tom Tromey  <tromey@redhat.com>

	* gdbint.texinfo (Testsuite): Document test transcripts.

2009-07-10  Phil Muldoon  <pmuldoon@redhat.com>

	* gdb.texinfo (Values From Inferior): Add length parameter
	description.

2009-07-04  Chris Genly  <chris@genly.us>

	* gdb.texinfo (GDB/MI Variable Objects): Document child definition
	in -var-list-children.  Fix example according to what the code
	does.

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

	* gdb.texinfo (Debugging multiple inferiors): Document the
	"inferior", "detach inferior" and "kill inferior" commands.
	(Debugging Programs with Multiple Processes): Adjust to mention
	generic "inferior" commands.  Delete mention of "detach fork" and
	"delete fork".  Cross reference to "Debugging multiple inferiors"
	section.

2009-07-02  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdbint.texinfo (Item Output Functions): Update signature
	for ui_out_field_core_addr.

2009-07-02  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdbint.texinfo (Examples of Use of @code{ui_out} functions):
	Update example code extrated from breakpoint.c.

2009-06-28  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.texinfo (GDB/MI Program Context): @ignore unimplemented
	MI commands.
	(GDB/MI Symbol Query): Likewise.
	(GDB/MI File Commands): Likewise.
	(GDB/MI File Transfer Commands): Likewise.
	(GDB/MI Target Manipulation): Likewise.
	(GDB/MI Miscellaneous Commands): Likewise.

2009-06-27  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Debugging Optimized Code): New chapter.
	(Compiling for Debugging): Reference it.  Move some
	text to the new section.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* gdb.texinfo (Threads): Document libthread-db-search-path.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* observer.texi (about_to_proceed): New.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* observer.texi (test_notification): New observer.

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

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

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

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

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

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

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

	* gdbint.texinfo (Values): New chapter.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	Fixes for makeinfo --html.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	MI non-stop and multiprocess docs.

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

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

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

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

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

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

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

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

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

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

	* gdb.texinfo (Symbols): Mention printing containing
	image name in "info symbol".
	(Maint translate-address): Likewise.

2008-11-18  Joel Brobecker  <brobecker@adacore.com>

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

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

	* gdb.texinfo (GDB/MI Async Records): Document
	=thread-selected.

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

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

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

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

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

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

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

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

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

	* observer.texi (thread_stop_requested): New.

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

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

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

	* gdb.texinfo: Add documentation for reverse execution.

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

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

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

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

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

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

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

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

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

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

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

	* gdb.texinfo (info dcache): Update.

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

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

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

	* gdb.texinfo (Inferiors): New section.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* observer.texi (thread_ptid_changed): New.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* gdbint.texinfo: Remove FUNCTION_EPILOGUE_SIZE.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* observer.texi (thread_exit): New.

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

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

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

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

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

	* gdbint.texinfo (Algorithms): Describe
	target_watchpoint_addr_within_range.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* gdbint.texinfo (PC_LOAD_SEGMENT): Remove description.

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

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

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

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

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

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

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

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

	* gdb.texinfo: Replace REGISTER_NAME by gdbarch_register_name.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2007-06-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (MIPS Features): New subsection.

2007-06-12  Ulrich Weigand  <uweigand@de.ibm.com>
	    Markus Deuling  <deuling@de.ibm.com>

	* gdb.texinfo (General Query Packets): Document qXfer:spu:read
	and qXfer:spu:write packets and mention them under qSupported.

2007-06-12  Ulrich Weigand  <uweigand@de.ibm.com>
	    Markus Deuling  <deuling@de.ibm.com>

	* gdb.texinfo (Architectures): Add new SPU section to document
	Cell Broadband Engine SPU architecture specific commands.

2007-06-09  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.texinfo (GDB/MI Variable Objects): Editorial
	comments.

2007-06-07  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.texinfo (Emacs): Describe GDB under Emacs 22.1.

2007-05-29  Jim Blandy  <jimb@codesourcery.com>

	* gdb.texinfo (Overview): Doc fix.

2007-05-22  Maciej W. Rozycki  <macro@mips.com>

	* gdb.texinfo (Remote Configuration): Document "set/show
	remoteflow".

2007-05-16  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (MIPS): Remove documentation for set mips
	saved-gpreg-size, show mips saved-gpreg-size, and set mips
	stack-arg-size.

2007-05-14  Bob Wilson  <bob.wilson@acm.org>

	* all-cfg.texi (GDBTUI): New.
	* gdb.texinfo (Mode Options): Use GDBTUI variable.
	(TUI, TUI Overview, TUI Keys, TUI Single Key Mode, TUI Commands)
	(TUI Configuration): Edit to improve clarity and fix problems of
	both style and content.

2007-05-11  Ulrich Weigand  <uweigand@de.ibm.com>

	* observer.texi (GDB Observers): New observer "new_objfile".

2007-05-08  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdbint.texinfo (Native Conditionals): Remove USE_PROC_FS.

2007-04-14  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.texinfo (GDB/MI Variable Objects): Document
	frozen variables objects.

2007-04-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Memory): Reference Remote Debugging chapter.
	(Character Sets, Caching Data of Remote Targets): Likewise.
	(Targets): Delete Remote node.  Move its text...
	(Debugging Remote Programs): ...to here.  Delete description
	of the "remote" command.
	(Remote configuration): Delete description of "set remotedevice"
	and "show remotedevice".
	(Embedded Processors): Delete H8/300, H8/500, and SH nodes.

2007-04-11  Bob Wilson  <bob.wilson@acm.org>

	* gdb.texinfo (Contributors, Continuing and Stepping)
	(Fortran Defaults, HPPA, TUI, TUI Commands, Configure Options)
	(General Query Packets, File-I/O Remote Protocol Extension)
	(Protocol Basics, The F Reply Packet, Write)
	(Protocol-specific Representation of Datatypes, Memory Transfer):
	Fix hyphenation, punctuation and grammar problems.
	(Cygwin Native): Likewise.  Also fix misuse of @pxref and use
	'section' instead of 'subsection' in the text.
	(Non-debug DLL Symbols): Avoid 'subsubsection' in the text.
	(i386): Remove period from section name.
	(Installing GDB, Requirements, Running Configure,  Separate Objdir)
	(Config Names, Configure Options): Use @file{configure}.

2007-04-11  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdbint.texinfo (Writing Tests): Mention gdb_test_multiple
	and tab expansion.

2007-04-10  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdbint.texinfo (SOM): Correct location of the SOM reader.

2007-04-02  Bob Wilson  <bob.wilson@acm.org>

	* gdb.texinfo: Consistently capitalize all significant words in
	node names, chapter titles, section titles, and headings.  Update
	cross references to match.
	(Starting and Stopping Trace Experiment): Make node name plural.
	(Breakpoint related warnings): Hyphenate "Breakpoint-related".

2007-03-30  Pedro Alves  <pedro_alves@portugalmail.pt>

	* gdb.texinfo (WinCE): Delete obsolete subsection.

2007-03-30  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (M68K): Remove obsolete ROM monitors.
	* gdbint.texinfo (DWARF 1): Delete section and other dwarfread.c
	references.

2007-03-30  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Startup): Delete references to some alternate
	names for .gdbinit.
	(Thread): Remove LynxOS reference.
	(Tandem ST2000): Delete target-specific documentation.
	* gdbint.texinfo (Symbol Handling): Remove mention of NLM.
	(Target Architecture Definition): Remove mention of GDB_OSABI_NETWARE
	and GDB_OSABI_LYNXOS.

2007-03-29  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdbint.texi (Native Conditionals): Remove PTRACE_ARG3_TYPE.

2007-03-27  Ulrich Weigand  <uweigand@de.ibm.com>

	* gdbint.texinfo (Target Conditionals): Remove mention of
	DEPRECATED_REMOTE_BREAKPOINT, DEPRECATED_BIG_REMOTE_BREAKPOINT,
	and DEPRECATED_LITTLE_REMOTE_BREAKPOINT.

2007-03-27  Brooks Moses  <brooks.moses@codesourcery.com>

	* Makefile.in: Add "pdfdir" installation
	directory, PDFTEX macro, support for "install-pdf" target,
	and rules for making a pdf version of refcard.texi.
	* refcard.tex: Specify paper size for PDF output.

2007-03-26  Bob Wilson  <bob.wilson@acm.org>

	* gdb.texinfo (Omissions from Ada, Additions to Ada): Wrap long lines.

2007-03-26  Bob Wilson  <bob.wilson@acm.org>

	* gdb.texinfo (Invoking GDB): Use @value{GDBP}.
	(Source Path, Character Sets, Macros, Define)
	(GDB/MI Result Records, GDB/MI Simple Examples)
	(GDB/MI Program Execution, GDB/MI File Commands)
	(Maintenance Commands, Packets, File-I/O Overview): Use @value{GDBN}.
	(Bug Reporting): Use @value{GCC}.

2007-03-26  Bob Wilson  <bob.wilson@acm.org>

	* gdb.texinfo (Help): Fix formatting of examples.
	(Variables): Use @ifnotinfo instead of @iftex.
	(Non-debug DLL symbols): Use @ref instead of @pxref.
	(Sparclet File): Use @samp instead of quotes.

2007-03-26  Bob Wilson  <bob.wilson@acm.org>

	* gdb.texinfo (Variables, C): Update cross reference to GCC docs.

2007-03-26  Bob Wilson  <bob.wilson@acm.org>

	* gdb.texinfo (Top): Move TUI and Annotations menu entries to match
	the order of the nodes.
	(C Operators, C Constants, Debugging C): Remove extra menus.
	(Method Names in Commands): Do not specify next/prev/up nodes.

2007-03-26  Bob Wilson  <bob.wilson@acm.org>

	* gdb.texinfo (File Options): Add missing parenthesis.
	(Breakpoints, Special Fortran commands, PowerPC): Fix typos.

2007-02-26  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Monitor commands for gdbserver): New subsection.

2007-02-26  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Standard Target Features): Mention
	case insensitivity.
	(ARM Features): Describe org.gnu.gdb.xscale.iwmmxt.

2007-02-18  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.texinfo (Top): Put Appendix A after numbered sections.
	(Files): Add section name to argument list for pxref.
	(Non-debug DLL symbols): Don't use `see' for pxref.
	(Embedded Processors): Fix typo.
	(GDB/MI Breakpoint Commands): Execution commands generate
	*stopped not ^done.

2007-02-13  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.texinfo (GDB/MI Variable Objects): Describe meanings of
	values for in_scope.  Mention that only root variables can be
	updated.
	(GDB/MI Development and Front Ends): Explain new values may be
	added to existing fields.

2007-02-08  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (-target-disconnect): Use @smallexample.
	(Requirements): Add anchor for Expat.  Update description.
	(Target Descriptions): Mention Expat.
	(Target Description Format): Document new elements.  Use
	@smallexample.
	(Predefined Target Types, Standard Target Features): New sections.
	* gdbint.texinfo (Target Descriptions): New section.

2007-02-07  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Target Description Format): Add section on XInclude.

2006-02-03  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.texinfo (GDB/MI Miscellaneous Commands): Describe the new
	command -enable-timings.

2007-02-02  Markus Deuling  <deuling@de.ibm.com>  (tiny change)

	* gdbint.texinfo (Operation System ABI Variant Handling): Update
	descriptions for new/deleted elements in gdb_osabi.  Add missing
	description for function generic_elf_osabi_sniff_abi_tag_sections.

2007-01-29  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Maintenance Commands): Add documentation for
	the new "maint print target-stack" command.

2007-01-26  Jan Kratochvil <jan.kratochvil@redhat.com>
	    Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo: Describe CHAR array vs. string identification rules.

2007-01-26  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Compilation, Files, Bootstrapping, Bug Reporting):
	Use @value{NGCC} instead of @value{GCC}.

2007-01-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>  (tiny change)

	* agentexpr.texi: Fix typos.
	* annotate.texinfo: Likewise.
	* gdb.texinfo: Likewise.
	* gdbint.texinfo: Likewise.
	* observer.texi: Likewise.
	* stabs.texinfo: Likewise.

2007-01-20  Markus Deuling  <deuling@de.ibm.com>  (tiny change)

	* gdbint.texinfo (Support Libraries): Remove mmalloc
	entry.  Describe readline library.

2007-01-09  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Target Descriptions): New section.
	(General Query Packets): Add QPassSignals anchor.  Mention
	qXfer:features:read under qSupported.  Expand mentions of
	qXfer:memory-map:read and QPassSignals.  Document
	qXfer:features:read.

2007-01-08  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Commands to specify files): Describe
	"set sysroot" and "show sysroot".
	(Using the `gdbserver' program): Lowercase argument
	to @var.  Expand description of setting up GDB on the
	host.

2007-01-05  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Set Catchpoints): Add documentation for the new
	catch exception, catch exception unhandled, and catch assert
	commands.

2007-01-04  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Debugging Output): Document "set debug xml"
	and "show debug xml".

2007-01-04  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdbint.texinfo (Compiler Warnings): Update for -Wall use.

2007-01-01  Joel Brobecker  <brobecker@adacore.com>

	* gdbint.texinfo (Start of New Year Procedure): Add missing item.

2006-12-08  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.texinfo (GDB/MI Variable Objects): Wrap historical
	note in @ignore, to be removed later if nobody complains.

2006-12-04  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.texinfo (GDB/MI Variable Objects): Describe -c option
	of -var-delete.

2006-11-22  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.texinfo (Setting breakpoints): Document
	automatic software/hardware breakpoint usage and
	the "set breakpoint auto-hw" command.

2006-11-21  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.texinfo (Memory Access Checking): New.

2006-11-16  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Remote configuration): Mention
	"pass-signals-packet".
	(General Query Packets): Document QPassSignals.  Fix
	a typo.

2006-11-14  Maxim Grigoriev  <maxim@tensilica.com>

	* gdb.texinfo (Contributors): Add contributors of Xtensa port.

2006-11-14  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Remote configuration): Rewrite documentation for
	packet configuration commands.
	(OS Information): Adjust reference to qXfer:auxv:read.
	(General Query Packets): Remove references to read-aux-vector-packet
	and set remote get-thread-local-storage-address.

2006-11-10  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdbint.texinfo (Target Architecture Definition): Add new
	Initializing a New Architecture section.

2006-10-31  David Taylor  <dtaylor@emc.com>

	* stabs.texinfo (Macro define and undefine): New node describing
	stabs for #define and #undef.

2006-10-27  Andreas Schwab  <schwab@suse.de>

	* gdb.texinfo (Processes): Rename "detach-fork" to "detach fork".

2006-10-21  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Breakpoints, Set Watchpoints): Elaborate and
	clarify on the possible meanings of ``expression'' watched by
	watchpoints.  Add indexing.
	(Prompting, Errors, Invalidation, Annotations for Running)
	(Source Annotations): Fix index entries by adding "annotation" to
	them, to discriminate from index entries that point to the more
	general topic descriptions.

2006-10-17  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdbint.texinfo (Target Vector Definition): Move most
	content into Existing Targets.  Add a menu.
	(Existing Targets): New section, moved from Target Vector
	Definition.  Use @subsection.
	(Managing Execution State): New section.

2006-10-16  Bob Wilson  <bob.wilson@acm.org>

	* gdb.texinfo (ST2000): Use Ctrl- instead of C-.

2006-10-15  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Sample Session, Invocation, Quitting GDB)
	(Command Syntax, Signals, Backtrace, Connecting)
	(Remote configuration, Renesas Boards, Console I/O): Fix last
	change: use Ctrl- instead of C-, except wrt Emacs.
	(File-I/O Examples): Put Ctrl-c in @kbd.
	(Cygwin Native, File-I/O Overview, The Ctrl-C message)
	(Console I/O): Use @samp with Ctrl-.
	(Signals, Set Breaks, Set Watchpoints): Document optional
	arguments to `info signals'  `handle', `info breakpoints', and
	`info watchpoints'.

2006-10-14  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Backtrace): Fix last change.

2006-10-14  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.texinfo (Backtrace): Order correctly and add other cases.

2006-10-10  Bob Wilson  <bob.wilson@acm.org>

	* gdb.texinfo (Command Syntax, Connecting, Remote configuration)
	(Renesas Boards, ST2000, TUI Keys, TUI Single Key Mode)
	(TUI Commands, Emacs, Console I/O): Fix @key and @kbd usage.

2006-09-21  Vladimir Prus  <vladimir@codesourcery.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Packets): Document vFlashErase,
	vFlashWrite and vFlashDone packets.
	(General Query Packets): Document qXfer:memory-map:read.
	Add a new feature for qXfer:memory-map:read.
	(Memory map format): New section.
	(Target Commands): Mention that gdb can write flash.

2006-09-21  Vladimir Prus  <vladimir@codesourcery.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Memory Region Attributes): Mention target-supplied
	memory regions and "mem auto".

2006-09-21  Nathan Sidwell  <nathan@codesourcery.com>

	* gdbint.texinfo (Array Containers): New section.

2006-09-17  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.texinfo (GDB/MI Stack Manipulation): Mention that
	-stack-list-arguments HIGH_FRAME argument can be larger then the
	actual number of frames.

2006-09-07  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.texinfo (GDB/MI Stack Manipulation): Mention that
	-stack-list-locals HIGH_FRAME argument can be larger then the
	actual number of frames.

2006-09-02  Bob Wilson  <bob.wilson@acm.org>

	* gdb.texinfo (Packets, Stop Reply Packets, General Query Packets,
	Register Packet Format, Tracepoint Packets): Fix spelling errors.

2006-09-02  Eli Zaretskii  <eliz@gnu.org>

	* gdbint.texinfo (Overall Structure): New section "Source Tree
	Structure".

2006-08-17  Jim Blandy  <jimb@codesourcery.com>

	* gdb.texinfo (Stop Reply Packets): Note similarity of 'S' and 'T'
	responses.

2006-08-08  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Source Path): Add documentation for new
	substitute-path commands.

2006-08-08  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Installing GDB): Update menu.  Move text to...
	(Running Configure): ...here.
	(Requirements): New node.  Mention expat.

2006-08-08  Vladimir Prus  <vladimir@codesourcery.com>

	* gdb.texinfo (Target Commands): Remove
	'set download-write-size' and 'show download-write-size'.

2006-08-01  Daniel Jacobowitz  <dan@codesourcery.com>

	* stabs.texinfo (Member Type Descriptor): Correct example for
	pointer to member types.

2006-07-21  Andrew Stubbs  <andrew.stubbs@st.com>

	* gdb.texinfo (Optional warnings and messages): Add
	'set/show trace-commands'.
	(Command files): Add '-v' to source command.

2006-07-12  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (OS Information): Update qPart reference to
	qXfer.
	(Remote configuration): Likewise.
	(Overview): Move @cindex to the start of a paragraph.  Talk
	about binary data encoding.
	(Packets): Refer to the overview for the details of the X
	packet encoding.
	(General Query Packets): Remove qPart description.  Add qXfer
	description.  Add an anchor to qSupported.  Correct feature
	table title.  Add a new feature for qXfer:auxv:read.
	(Interrupts): Add a missing parenthesis.

2006-07-05  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (KOD): Remove node.
	(GDB/MI Kod Commands): Remove commented out node.

2006-07-01  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (GDB/MI Output Syntax, GDB/MI Simple Examples)
	(GDB/MI Breakpoint Commands, GDB/MI Program Context)
	(GDB/MI Thread Commands, GDB/MI Program Execution)
	(GDB/MI Stack Manipulation, GDB/MI Variable Objects)
	(GDB/MI Data Manipulation, GDB/MI Symbol Query)
	(GDB/MI File Commands, GDB/MI Target Manipulation)
	(GDB/MI Miscellaneous Commands): Change (@value{GDBP})->(gdb),
	since the MI prompt is hard-wired into the code.

2006-07-01  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.texinfo (GDB/MI Compatibility with CLI): Qualify more carefully.
	(GDB/MI Simple Examples): Use @subheading for "A Bad Command".
	(GDB/MI Data Manipulation): Remove description of unimplemented
	display related commands as variable objects perform this function
	and are superior: -display-delete, -display-disable,
	-display-enable, -display-insert and -display-list.  Move
	-environment-cd, -environment-directory, -environment-path
	and -environment-pwd to "Program Context".
	(GDB/MI Program Control): Rename to "Program Execution".  Move
	-exec-arguments -exec-abort to...
	(GDB/MI Program Context): ...here.  New node split from "Data
	 Manipulation".

2006-06-21  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Remote configuration): Document set / show
	remote supported-packets.
	(General Query Packets): Document qSupported packet.

2006-06-10  Sandra Loosemore <sandra@codesourcery.com>

	* gdb.texinfo (File-I/O overview): Copy edit for grammar, spelling,
	and font markup.
	(Protocol basics): Likewise.
	(The F request packet): Likewise.
	(The F reply packet): Likewise.
	(Memory transfer): Move this node to be a subsubsection of
	"Protocol specific representation of datatypes".
	(The Ctrl-C message): More copy editing.
	(Console I/O): Likewise.
	(The isatty call): Delete this node, and merge its content into
	the "isatty" node.  Fixed references elsewhere.
	(The system call): Delete this node, and merge its content into
	the "system" node.  Fixed references elsewhere.
	(open): Reformat to use @table, and add appropriate font markup.
	(close): Likewise.
	(read): Likewise.
	(write): Likewise.
	(lseek): Likewise.
	(rename): Likewise.
	(unlink): Likewise.
	(stat/fstat): Likewise.
	(gettimeofday): Likewise.
	(isatty): Likewise.
	(system): Likewise, plus minor changes to fix confusing wording.
	(Integral datatypes): Fix font markup.
	(Pointer values): Likewise.
	(struct stat): Fix markup to use @table, plus minor copy editing.
	(struct timeval): Fix font markup, plus minor copy editing.
	(Constants): Minor copy editing.
	(Errno values): Add font markup.
	(File-I/O Examples): Likewise.

2006-06-10  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.texinfo (GDB/MI): Remove duplicate acknowledgements.
	(GDB/MI Simple Examples): Move node up one level.  Use real
	examples.
	(GDB/MI Compatibility with CLI): Update.
	(GDB/MI Result Records): Add "connected" and "exit" result
	classes.
	(GDB/MI Stream Records): Clarify target output.
	(GDB/MI Command Description Format): Modify example description.
	(GDB/MI Breakpoint Table Commands): Rename to...
	(GDB/MI Breakpoint Commands): ...this
	(GDB/MI Breakpoint Commands): Add optional thread field.
	(GDB/MI Program Control): Add an introduction.  Move "Program
	termination" examples into exec-run description.
	(GDB/MI File Commands): Mention similar CLI commands.
	(GDB/MI Miscellaneous Commands): Move to end.  Mention "show version"
	is similar to "-gdb-version".

2006-06-09  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Symbols): Fix "(gdb)"=>"(@value{GDBP})".

2006-06-02  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.texinfo (GDB/MI Development and Front Ends): Use
	sourceware.org for mailing lists.
	(GDB/MI File Commands): New node split from Program Control.

2006-06-01  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.texinfo (GDB/MI Development and Front Ends): New node.

2006-05-22  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Cygwin Native): Fix last change.

2006-05-22  Christopher Faylor  <cgf@timesys.com>

	* gdb.texinfo (Cygwin Native): Document set/show cygwin-exceptions.

2006-05-15  Nick Roberts  <nickrob@snap.net.nz>

	* gdbint.texinfo (Algorithms): Correct spelling and punctuation.
	(Releasing GDB, Testsuite): Remove details for including DejaGnu.

2006-05-14  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (General Query Packets): Recommend not starting
	new packets with qC and clarify.

2006-05-13  Gaius Mulley  <gaius@glam.ac.uk>

	* gdb.texinfo (M2 Types): New section.

2006-05-10  Daniel Jacobowitz  <dan@codesourcery.com>

	* agentexpr.texi: Add a copyright and license notice.
	* observer.texi: Likewise, with GPL clause for function prototypes.
	Remove trailing whitespace.

2006-05-05  Jim Blandy  <jimb@codesourcery.com>

	* gdb.texinfo (General Query Packets): Document conventions for
	terminating packet names, and their violations.

2006-05-05  Daniel Jacobowitz  <dan@codesourcery.com>

	* Makefile.in (GDB_DOC_SOURCE_INCLUDES): Update for readline 5.1.
	* gdb.texinfo: Likewise.

2006-05-05  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Remote Configuration): Remove "set remotedebug"
	and "show remotedebug".
	(Debugging Output): Add additional index entries.

2006-04-27  Michael Snyder  <msnyder@redhat.com>

	* gdb.texinfo (delete-fork): Command renamed to "delete fork".

2006-04-22  Andrew Cagney  <cagney@redhat.com>

	* gdb.texinfo (Contributors): Credit frame unwinder contributors.
	* gdbint.texinfo (Algorithms): Fix errors in frame documentation.

2006-04-18  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdbint.texinfo (x86 Watchpoints, Target Conditionals): Update insert
	and remove breakpoint prototypes.
	(Watchpoints): Move description of target_insert_hw_breakpoint and
	target_remove_hw_breakpoint ...
	(Breakpoints): ... to here.  Document target_insert_breakpoint and
	target_remove_breakpoint.

2006-04-17  Jim Blandy  <jimb@codesourcery.com>

	* gdb.texinfo (Packets): Note that 'addr' arguments to s, S, c,
	and C packets are optional.

2006-04-14  Frederic Riss  <frederic.riss@st.com>

	* gdb.texinfo (Specifying source directories): Update the description
	of the source file search to reflect the fact that the source path
	always contains at least $cdir and $cwd.

2006-03-31  Michael Snyder  <msnyder@redhat.com>

	* gdb.texinfo: Update copyright dates.

2006-03-31  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Overview): Add an index entry to "empty response".

2006-03-28  Jim Blandy  <jimb@codesourcery.com>

	* gdbint.texinfo (Prologue Analysis): New section.

2006-03-07  Jim Blandy  <jimb@red-bean.com>

	* gdb.texinfo (Connecting): Document 'target remote pipe'.

	* gdb.texinfo (Target Commands): Update text describing how to
	specify a target.  Refer to the detailed section on remote
	debugging, not the brief mention.

	* gdb.texinfo (Connecting): Organize the different 'target remote'
	connection methods into a table.  Add a 'target remote' index
	entry. (!!!)

2006-02-17  Fred Fish  <fnf@specifix.com>

	* gdb.texinfo (Symbols): Update descriptions of 'whatis' and
	'ptype' commands to reflect the fact that the only significant
	difference between them is that ptype prints the complete type
	description instead of just the name.

2006-02-13  Wu Zhou  <woodzltc@cn.ibm.com>

	* gdbint.texinfo (Watchpoints): Delete
	TARGET_REGION_SIZE_OK_FOR_HW_WATCHPOINT.

2006-02-10  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.texinfo (GDB/MI Breakpoint Table Commands): Add fullname and
	times fields where needed.  Fix typos.  Update general form given
	for output of -break-insert.
	(GDB/MI): Abbreviate some unnecessarily long fullnames.

2006-02-06  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdbint.texinfo (Symbol Handling): Add a section
	on memory management.

2006-02-06  Vladimir Prus  <ghost@cs.msu.su>

	* gdb.texinfo (Breakpoint table commands): Document the fullname
	field in -break-list output.

2006-02-03  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Cygwin Native): Fix typos.  Clarify the types of
	debugging information produced by the various "set debug..."
	options.

2006-02-01  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Files): Remove obsolete bits from the description
	of "symbol-file".

2006-01-25  Jim Blandy  <jimb@redhat.com>

	* gdbint.texinfo (Testsuite): Explain how to run selected tests.

2006-01-24  Jim Blandy  <jimb@redhat.com>

	* gdbint.texinfo (Frames): Document the basics of GDB's register
	unwinding model, and explain the existence of the "sentinel" frame.

2006-01-23  Andrew Stubbs  <andrew.stubbs@st.com>

	* gdb.texinfo (Choosing files): Mention that -directory is used
	for script files.
	(Specifying source directories): Likewise.
	(Command files): Explain how script files are found.

2006-01-21  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Backtrace): Describe how to get backtrace of all
	the threads in a multi-threaded program.
	(Threads): The threadno argument of "thread apply" can be a range
	of numbers.

2006-01-18  Jim Blandy  <jimb@redhat.com>

	* gdbint.texinfo (Coding): Add entry for -Wno-pointer-sign to list
	of warning flags.

2006-01-13  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Sequences): Improve menu annotations.
	(Define): Add index entries for arguments of user-defined
	commands.  Move the description of flow-control commands...
	(Command Files): ...to here.  Document loop_break and
	loop_continue.
	(Define, Command Files): Document `end' and add index entries for
	it.

2006-01-04  Michael Snyder  <msnyder@redhat.com>

	* gdb.texinfo: Add documentation for linux-fork.
	* gdbint.texinfo: Add internal documentation for checkpoints.

2006-01-02  Paul N. Hilfinger  <hilfinger@gnat.com>

	* gdb.texinfo (Omissions from Ada): Document that there is now
	limited aggregate support.

2005-12-28  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Registers): Describe how to refer to SSE and MMX
	registers and the likes.

2005-12-24  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Target Commands, Bug Reporting, File Options)
	(Symbols): Fix usage of "e.g.".
	(Memory Region Attributes): Fix usage of "etc."

	* gdbint.texinfo (libgdb, Symbol Handling, Native Debugging)
	(Coding): Fix usage of "e.g.".

2005-12-23  Eli Zaretskii  <eliz@gnu.org>

	* stabs.texinfo:
	* refcard.tex:
	* gpl.texi:
	* gdbint.texinfo:
	* gdb.texinfo:
	* gdb-cfg.texi:
	* fdl.texi:
	* annotate.texinfo:
	* all-cfg.texi:
	* Makefile.in: Add (C) after Copyright.  Update the FSF
	address.

2005-12-03  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Connecting): Explain that `monitor' is a way to
	extend GDB with commands for external monitor.

2005-12-02  Andrew Stubbs  <andrew.stubbs@st.com>

	* gdb.texinfo (Convenience variables): Add init-if-undefined command.

2005-11-25  Joel Brobecker  <brobecker@adacore.com>

	* gdbint.texinfo (Start of New Year Procedure): New chapter.

2005-11-21  Jim Blandy  <jimb@redhat.com>

	* gdb.texinfo (Tracepoint Packets): Document restrictions on
	placement of 'R' actions in tracepoint action packets; document
	dependence of 'X' and 'M' actions on a preceding 'R' action for
	their registers.

2005-11-19  Jim Blandy  <jimb@redhat.com>

	* gdb.texinfo (Tracepoint Packets): New node.
	(General Query Packets): Add entries for the tracepoint packets,
	referring to the "Tracepoint Packets" node.
	(Tracepoints): Add reference to "Tracepoint Packets".

2005-11-18  Kevin Buettner  <kevinb@redhat.com>

	* gdb.texinfo (set remotebreak): Add anchor.
	(X packet): Likewise.
	(Remote Protocol): Add new section `Interrupts' and new index
	entry `interrupts (remote protocol)'.

2005-11-18  Jim Blandy  <jimb@redhat.com>

	* gdb.texinfo (Packets): Move information out of 'q' and 'Q'
	entries into the General Query Packets section.  Add a
	cross-reference to that section.  Drop description of replies, as
	these are covered in the descriptions of each packet.
	(General Query Packets): Add introductory text.  Explain naming
	conventions, and how the end of a name is recognized.

2005-11-17  Kevin Buettner  <kevinb@redhat.com>

	* gdb.texinfo (Remote configuration): Fix typo in description of
	"set remotebreak" command.

2005-11-16  Jim Blandy  <jimb@redhat.com>

	* gdb.texinfo (Packets, Stop Reply Packets)
	(General Query Packets): Various formatting cleanups.
	- Use @samp for packet contents.
	- Drop summaries from packet @item lines; the same information appears
	  immediately below in the description.
	- Delete paragraph breaks after packet @item commands, so that the
	  description appears directly to the right of the packet prototype
	  in the printed manual, if it fits.
	- Place spaces in packet prototypes between @vars and non-@var
	  letters, and explain that they're just for formatting.
	- Use @dots{} instead of '...'.
	- Fix uses of @code where @var was needed.
	- Replace "deprecated" markers with English text spelling out the
	  packet's status and the preferred alternatives.
	- Remove "(reserved)" markers on 'A' and 'I' packets; it's unclear
	  what this ever meant.
	- Remove "(draft)" markers on 'i' packets; nobody has commented on
	  this for a long time.
	- Remove "(draft)" markers on 'z' and 'Z' packets; these have been
	  implemented several times, and have been in use for years.

2005-11-15  Jim Blandy  <jimb@redhat.com>

	* gdb.texinfo (Packets): Add index entries for 'm' packet
	disclaimers.

	* gdb.texinfo (Packets): Clarify lack of restrictions on behavior
	of stub when processing an 'm' packet.

	* gdb.texinfo (Packets): Mention that packets beginning with
	letters are reserved once, at the top, instead of actually listing
	them all and saying "reserved".

2005-11-15  Andrew Stubbs  <andrew.stubbs@st.com>

	* gdb.texinfo (User-defined commands): Add $argc. Add missing 'end'.
	Change @var{$arg0 to @code{$arg0.

2005-11-14  Wu Zhou  <woodzltc@cn.ibm.com>

	* gdb.texinfo (Fortran): Add some words about Fortran debugging.

2005-11-12  Jim Blandy  <jimb@redhat.com>

	* gdb.texinfo (General Query Packets): Put packets in alphabetical
	order.  Remove extraneous 'z'.

2005-11-07  Andrew Stubbs  <andrew.stubbs@st.com>

	* gdb.texinfo (Choosing files): Add --eval-command.

2005-11-04  Andrew Stubbs  <andrew.stubbs@st.com>

	* gdb.texinfo (Choosing modes): Add --return-child-result.


2005-11-01  Andrew Stubbs  <andrew.stubbs@st.com>

	* gdb.texinfo (Choosing modes): Add --batch-silent.

2005-10-28  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (GDB/MI Variable Objects): Fix @pxref usage under
	"The -var-update Command".

2005-10-03  Joel Brobecker  <brobecker@adacore.com>

	* gdb.texinfo (Print Settings): Add documentation for set/show
	print array-indexes.

2005-09-17  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Contributors): Thank Andrew Cagney for releases
	6.2 and 6.3.

2005-08-27  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (File Options): Don't document --mapped, it's gone
	since 19-Jan-2004.
	(Files): Likewise.
	(Variables, Symbols): Document the "<incomplete type>" message and
	its reasons.

2005-08-01  Fred Fish  <fnf@specifix.com>

	* gdb.texinfo (SETUP_ARBITRARY_FRAME): Remove obsolete reference.

2005-07-15  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.texinfo (GDB/MI Variable Objects): Describe print-values
	option for -var-list-children and -var-update.
	(GDB/MI Stack Manipulation): Simplify description of
	print-values option for -stack-list-locals.
	(GDB/MI Command Description Format): Clarify.
	(Mode Options): Spelling of superseded.

2005-07-12  Bob Rossi  <bob@brasko.net>

	* gdb.texinfo (GDB/MI Miscellaneous Commands): Fix -inferior-tty-show
	corresponding GDB command comment.

2005-07-06  Bob Rossi  <bob@brasko.net>

	* gdb.texinfo (GDB/MI Miscellaneous Commands): Add -inferior-tty-set
	and -inferior-tty-show.
	(Input/Output): Document "set/show inferior-tty" and tty alias.

2005-07-02  Nathan J. Williams  <nathanw@wasabisystems.com>

	* gdb.texinfo (Packets): Change description of 'D' packet to note
	that GDB does wait for a response.

2005-06-22  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.texinfo (History) Rename "Command History".
	(Command History): Move node "Server Prefix" from section on
	Annotations here.

2005-06-19  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.texinfo (GDB/MI Stack Manipulation):
	Re-instate -stack-info-frame with example.  Say that it gets
	info on selected frame, not current frame.

2005-06-18  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Server): Clarify that `file' should be used before
	connecting to the server.
	(Files): Add an xref to the above description.
	(Output Formats): More detailed description of the `c' format.
	(Memory): List explicitly all the formats supported by `x'.
	(Threads): Add an @cindex entry for "thread apply".
	(Files): Document the possibility of loading unlinked object
	files.  Add more indexing for solib-absolute-prefix and
	--with-sysroot.
	(Machine Code): Document possible problems with locations in
	shared libraries.
	(Backtrace): Document that free-standing environments do not need
	to have a `main' function.

2005-06-18  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.texinfo (GDB/MI Stack Manipulation): Remove reference to
	-stack-info-frame.

2005-06-07  Andrew Cagney  <cagney@gnu.org>

	* gdb.texinfo (Contributors): Note the original multi-arch
	contributors.

2005-06-03  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Registers): Add index entries for the standard
	registers.
	(Frames): Add cross-reference from frame pointer description to
	the Registers node.
	(Annotations Overview): Fix the reference to GDB name.

2005-06-01  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Set Watchpoints): Remove @vindex entry for
	can-use-hw-watchpoints.

2005-05-28  Bob Rossi  <bob@brasko.net>

	* gdb.texinfo (GDB/MI Out-of-band Records): Add bullet enumerating
	the possible reasons why an exec async record would be returned to FE.

2005-05-26  Andrew Cagney  <cagney@gnu.org>

	* gdb.texinfo: Note that Elena Zannoni, Fernando Nasser, and
	Andrew Cagney implemented the original GDB/MI.

2005-05-23  Orjan Friberg  <orjanf@axis.com>

	* gdb.texinfo (CRIS): Update the cris-version and cris-dwarf2-cfi
	documentation.  Add documentation for cris-mode.

2005-05-20  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Numbers): Explain the example and make the wording
	more acurate.

2005-05-17  Daniel Jacobowitz  <dan@codesourcery.com>
	    Dennis Brueni  <dennis@slickedit.com>

	* gdb.texinfo (GDB/MI Breakpoint Table Commands)
	(GDB/MI Data Manipulation, GDB/MI Program Control)
	(GDB/MI Stack Manipulation): Update examples to include the fullname
	attribute in stack frames.

2005-05-12  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Startup): Fix last change.  Treat gdb.ini like we
	do with other non-standard names of init files.

2005-05-11  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Command Files): Move the description of the startup
	from here...
	(Startup): ...to this new subsection of the Invocation chapter.
	Rearrange the description of init files more logically and add a
	cross-reference to "Command Files".  Document the special gdbinit
	name for CISCO 68k.  Expand the description of what GDB does
	during startup.
	(History): Add index entry for HISTSIZE.

2005-05-02  Mark Kettenis  <kettenis@gnu.org>

	* gdb.texinfo (Files): Remove documentation for auto-solib-limit.

2005-05-02  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (SVR4 Process Information, The isatty call)
	(The system call): Don't use foo(N) notation for man pages and
	functions.
	(Compilation, DJGPP Native): Improve wording.

2005-04-27  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Backtrace): Describe backtraces with arguments that
	were optimized away.

2005-04-22  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Remote configuration): Document "set/show
	get-thread-local-storage-address".  Add cross-reference to the
	description of the qGetTLSAddr packet.
	(General Query Packets): Mention "set remote
	get-thread-local-storage-address" and add a reference to its
	description.

2005-04-19  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.texinfo (Backtrace): Describe 'bt full'.

2005-04-17  Nick Roberts  <nickrob@snap.net.nz>

	* gdb.texinfo (Mode Options): Fix typo.
	(GDB/MI): Describe how to invoke GDB/MI.

2005-04-16  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (OS Information): Renamed from Auxiliary Vector; all
	references changed.  Add description of "info udot".
	(Files): Document "set/show stop-on-solib-events".
	(M32R/D): Document "set/show download-path", "set/show
	board-address", "set/show server-address", "upload", "tload".
	Document "sdireset", "sdistatus", "debug_chaos", "use_debug_dma",
	"use_mon_code", "use_ib_break", "use_dbt_break".
	(Maintenance Commands): Improve indexing.
	(Target Commands): Document "set/show hash", "set/show debug
	monitor".
	(SVR4 Process Information): Document "info pidlist" and "info
	meminfo".  Document "set/show procfs-tarce" and "set/show
	procfs-file".  Document "proc-trace-*" and "proc-untrace-*".
	(Symbols, The Print Command with Objective-C): Improve indexing.
	(Objective-C): Add references to "info classes" and "info
	selectors".
	(Debugging Output): Improve wording.  Document "set/show debug
	solib-frv".  Fix "set/show debugvarobj".
	(Set Breaks): Add index entry for "hardware breakpoints".
	(Renesas ICE): Document "e7000", "ftplogin", "ftpload", "drain",
	and "set/show usehardbreakpoints".
	(MIPS Embedded): Document "se/show syn-garbage-limit", "set/show
	monitor-prompt", "set/show monitor-warnings", "pmon".
	(ARM): Document "rdilogfile", "rdilogenable", "set/show
	rdiromatzero", "set/show rdiheartbeat".
	(PowerPC): Document SDS-specific commands "set/show sdstimeout",
	"sds".
	(Embedded Processors): Document the "sim" command.
	(Remote): Document the "remote" command.
	(DJGPP Native): Document the "info serial" command.
	(Threads): Document "maint info sol-threads".
	(Files): Document "nosharedlibrary", "add-symbol-file-from-memory".
	(Set Breaks): Improve indexing.
	(Command Syntax): Add a reference to dont-repeat.
	(Define): Document "dont-repeat".
	(TUI Commands): Document "tabset".
	(WinCE): New subsection.  Document "set/show remotedirectory",
	"set/show remoteupload", "set/show remoteaddhost".

2005-04-15  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Hurd Native): New subsection, documents
	Hurd-specific commands.
	(Maintenance Commands): Add cross-reference to "Debugging Output".
	(Debugging Output): Document "set/show debug lin-lwp".
	(MIPS): Improve documentation of heuristic-fence-post.  Document
	"set/show mips abi", "set/show mips saved-gpreg-size", "set/show
	mips stack-arg-size", "set/show mips mask-address", "set/show mips
	remote-mips64-transfers-32bit-regs", "set/show debug mips".
	(ARM): Document ARM-specific commands.
	(AVR): New section.  Document "info io_registers".
	(CRIS): New section.  Document "set/show cris-version" and
	"set/show cris-dwarf2-cfi".
	(HPPA): New section.  Document "set/show debug hppa" and "maint
	print unwind".
	(Neutrino): New subsection.  Document "set/show debug nto-debug".
	(Super-H): New section.  Document the "regs" command.
	(Debugging Output): Document "set/show debug aix-thread".

2005-04-09  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Print Settings): Document "set/show print
	pascal_static-members", "set print repeats", "show print
	null-stop".  Improve indexing.  Fix documentation of "set print
	union".
	(Pascal): New section.
	(Supported languages): Rename from "Support"; all references
	updated.  Add a menu item for Pascal.
	(Numbers): Document "set radix.
	(Screen Size): Document "set/show pagination".
	(MIPS Embedded): Remove "set processor" documentation.
	(Remote configuration): Document "set/show X/P/Z-packet",
	"set/show read-aux-vector-packet", "set/show remote
	symbol-lookup-packet", "set/show remote verbose-resume-packet",
	"set/show remoteaddresssize", "set/show remotebaud", "set/show
	remotedebug", "set/show remotebreak", "set/show remotedevice",
	"set/show remotelogfile".
	(Auxiliary Vector): Add reference to the description of the
	read-aux-vector-packet setting.
	(Set Watchpoints): Add a cross-reference to "set remote
	hardware-breakpoint-limit".
	(General Query Packets): Add indexing of requests and
	cross-references to related commands in "Remote configuration".
	(File-I/O Overview, The system call): Fix wording and typos.
	(Thread Stops): Add index entries.
	(Continuing and Stepping): Document "show step-mode".
	(i386): New node.  Document "set/show struct-convention".
	(Files): Document "show trust-readonly-sections".
	(Calling): Document "set/show unwindonsignal".
	(Messages/Warnings): Add index entries.
	(Maintenance Commands): Document "set/show watchdog".
	(Annotations Overview): Document "show annotate".
	(Set Watchpoints): Add index entries.
	(Symbols): Fix doc of case-sensitive.
	(ABI): Document "show coerce-float-to-double".
	(Convenience Vars, Help): Improve indexing.
	(Machine Code): Document "show disassembly-flavor".
	(Debugging C plus plus): Document "show overload-resolution".
	(Value History, Signaling): Add index entries.

2005-04-08  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Show): Move @kindex entries to their proper places.
	(Processes): Fix wording.
	(History, List, Logging output, Define, Symbols, Print Settings):
	Improve indexing.

2005-04-03  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Targets): Document "set/show architecture".  Remove
	redundant index entry for "target" command.
	(Backtrace): Add index entries.
	(Symbols, Fortran): Document the "set case-sensitive" command.
	(DJGPP Native): Document "set com1base", "set com1irq", etc.
	(Print Settings): Add index entry for "set demangle-style".
	(Target Commands): Document "set download-write-size".
	(Debugging Output): Document "set exec-done-display".

2005-04-02  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Files): Fix the name and documentation of
	add-shared-symbol-files.  Document its alias assf.  Update the
	list of OSs where GDB supports shared libraries.  Fix markup.
	(Continuing and Stepping): Add reference to @var{location} in the
	text.
	(Dump/Restore Files): Fix reference to @{filename}.
	(Help): Fix wording.
	(Attach): Ditto.
	(Set Watchpoints): Ditto.
	(Backtrace): Remove redundant index entries.  Improve index
	entries.
	(Delete Breaks): Fix wording.
	(Memory): Document the compare-sections command.
	(Memory Region Attributes): Improve wording.
	(Disabling): Improve wording.
	(Fortran): New subsection.  Document the "info common" command.
	(Help): Document aliases "info copying" and "info warranty".
	(Caching Remote Data): New section.  Document the "set/show
	remotecache" and "info dcache" commands.
	(Show): Fix wording of the documentation of the "set
	extension-language" command.
	(Signals): Add index entry for "info handle".
	(Memory Region Attributes): Fix punctuation.
	(Symbols): Change the arg name to "location" and refer to it in
	the text.  Fix wording of "info types" doc.
	(Threads): Fix usage of @enumerate @item's.
	(Listing Tracepoints): Add index entry for "info tp".
	(Set Watchpoints): Add xref to "info break" description.
	(Macros): Add an index entry for "macro exp1".  Document the
	"macro list" command.
	(Maintenance Commands): Document "flushregs", "maint agent",
	"maint check-symtabs", "maint cplus", "maint demangle", "maint
	deprecate", "maint undeprecate", "maint dump-me", "maint packet",
	"maint print architecture", "maint print objfiles", "maint print
	statistics", "maint print type", "maint show-debug-regs", "maint
	space", "maint time", and "maint translate-address".
	(Connecting): Document the "monitor" command.
	(Annotations Overview): Describe the "set annotate" command.

2005-04-01  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Set Watchpoints): Document can-use-hw-watchpoints.
	Rearrange index entries and improve wording about support for
	hardware watchpoints.

2005-03-10  Bob Rossi  <bob@brasko.net>

	* gdb.texinfo: Update copyright

2005-02-09  Theodore A. Roth  <troth@openavr.org>

	* gdb.texinfo (General Query Packets): Fix texinfo compile warning and
	error.

2005-02-03  Kevin Buettner  <kevinb@redhat.com>

	* gdb.texinfo (General Query Packets): Document qGetTLSAddr packet.

2005-01-17  Michael Snyder  <msnyder@redhat.com>

	* gdb.texinfo: Fix spelling, infinte  ->  infinite.

2005-01-08  Mark Kettenis  <kettenis@gnu.org>

	* observer.texi (GDB Observers): Document "solib_loaded".

2005-01-07  Andrew Cagney  <cagney@gnu.org>

	* configure.ac: Rename configure.in, require autoconf 2.59.
	* configure: Re-generate.

	* configure.in: Replace configdirs with multiple references to
	AC_CONFIG_SUBDIRS.
	* configure: Re-generate.

2005-01-04  Andrew Cagney  <cagney@gnu.org>

	* gdbint.texinfo (Versions and Branches): Make the date (YYYYMMDD)
	part of the version number.

2004-12-24  Mark Kettenis  <kettenis@gnu.org>

	* gdbint.texinfo (Algorithms): Remove description of
	TARGET_DISABLE_HW_WATCHPOINTS and TARGET_ENABLE_HW_WATCHPOINTS.

2004-12-07  Jim Blandy  <jimb@redhat.com>

	* gdb.texinfo (General Query Packets): Specify that thread ID's in
	the 'qC' and 'qThreadInfo' packets are unsigned hexidecimal
	numbers.

2004-12-07  Andreas Schwab  <schwab@suse.de>

	* gdb.texinfo (Mode Options): Document -l option.

2004-12-04  Eli Zaretskii  <eliz@gnu.org>

	* gdbint.texinfo (Algorithms): More accurate description of
	STOPPED_BY_WATCHPOINT.  Point out that target_stopped_data_address
	is not needed unless data-read and data-access watchpoints are
	supported.  Add a description of how GDB checks whether the
	inferior stopped because a watchpoint was hit.

2004-11-23  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Files): Add cross-reference to description of
	-readnow command-line switch.

2004-11-10  Randolph Chung  <tausq@debian.org>

	* gdb.texinfo: Document set/show backtrace past-entry commands.
	Rearrange index entries for set/show backtrace past-main.

2004-11-10  Jon Beniston <jon@beniston.com>

	Committed by Andrew Cagney  <cagney@gnu.org>.
	* gdb.texinfo (Remote Serial Protocol): Further describe
	binary transfer escaping mechanism .

2004-11-08  Randolph Chung  <tausq@debian.org>

	* gdb.texinfo (inferior_debugging info): Document "set debug infrun"
	and "show debug infrun".  Add index entries.

2004-10-23  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (SVR4 Process Information): Document subcommands of
	"info proc" that are already implemented.  Add index entries.
	(Working Directory): Add a cross-reference to "info proc" command.
	(Files): Add a tip for decreasing memory used for symtabs from
	shared libraries.
	(Starting): Fix whitespace; make "elaboration" stand out where it
	is first used, and add an index entry for the term.
	(Calling): Expand and elaborate text.  Add "print".  Add the
	description of problems with weak aliases.
	(Core File Generation): New section.

2004-10-12  Andrew Cagney  <cagney@gnu.org>

	* gdbint.texinfo (Versions and Branches): New chapter.
	(Releasing GDB): Delete "Versions and Branches" section.
	(Top): Add "Versions and Branches".

2004-10-08  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Editing, History): Add cross-references to the
	included Readline and History user documentation.  Remove
	references to the symbol have-readline-appendices which is unused
	and undefined.
	(History): Fix indexing.

2004-10-08  Jeff Johnston  <jjohnstn@redhat.com>

	* gdbint.texinfo (target_stopped_data_address): Update to
	new prototype.
	(i386_stopped_data_address): Update prototype and description.
	(i386_stopped_by_watchpoint): New function and description.

2004-10-03  Paul N. Hilfinger  <hilfinger@gnat.com>

	* gdb.texinfo (Filenames): Add Ada suffixes.
	(Ada) New section.

2004-09-27  Andrew Cagney  <cagney@gnu.org>
	    Robert Picco  <Robert.Picco@hp.com>

	* gdb.texinfo (Packets): Document the "p" packet.

2004-09-21  Jason Molenda  (jmolenda@apple.com)

	* gdb.texinfo (Paths and Names of the Source Files): Document the
	meaning of values in the 'desc' field of a SO stab.

2004-09-20  Daniel Jacobowitz  <dan@debian.org>

	* gdb.texinfo (Maintenance Commands): Document "maint set dwarf2
	max-cache-age" and "maint show dwarf2 max-cache-age".

2004-09-16  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Set Breaks): Add index entry for setting
	breakpoints on overloaded C++ functions that are not members of
	any classes.  Add an example and an index entry for setting
	breakpoints on all program functions.
	(Character Sets, Macros, Overlay Commands)
	(Non-debug DLL symbols, GDB/MI Output Syntax)
	(Annotations Overview, Maintenance Commands, File-I/O Overview):
	Use "(@value{GDBP})" instead of a literal "(gdb)".

2004-09-12  Andrew Cagney  <cagney@gnu.org>

	* gdbint.texinfo (Native Debugging): Delete description of
	FILES_INFO_HOOK.

2004-09-11  Paul Hilfinger  <hilfinger@gnat.com>

	* gdbint.texinfo (User Interface): Change local_hex_string_custom
	to hex_string_custom (not historically correct, but more
	understandable, given the current code).

2004-09-03  Andrew Cagney  <cagney@gnu.org>

	* gdbint.texinfo (Native Debugging): Delete SVR4_SHARED_LIBS.

2004-09-01  Jeff Johnston  <jjohnstn@redhat.com>

	* observer.texi (solib_unloaded): New observer.

2004-08-24  Andrew Cagney  <cagney@gnu.org>

	* gdbint.texinfo (Target Architecture Definition): Add missing
	comma.

2004-08-20  Michael Chastain  <mec.gnu@mindspring.com>

	* (Using the Testsuite): build != host is supported,
	but some test scripts do not support build != host.

2004-08-14  Mark Kettenis  <kettenis@gnu.org>

	* gdbint.texinfo (Host Definition): Delete description of
	FCLOSE_PROVIDED and GETENV_PROVIDED.

2004-08-05  Mark Kettenis  <kettenis@chello.nl>

	* gdbint.texinfo (Host Definition): Delete description of
	NO_SYS_FILE.
	(Native Debugging): Delete description of KERNEL_U_ADDR_BSD and
	PTRACE_FP_BUG.

2004-08-05  Andrew Cagney  <cagney@gnu.org>

	* gdbint.texinfo (Target Architecture Definition): Delete
	reference to deprecated_read_fp.

2004-08-02  Andrew Cagney  <cagney@gnu.org>

	* gdbint.texinfo (Target Architecture Definition): Delete
	description of DEPRECATED_REGISTER_BYTES.

2004-07-30  Baurjan Ismagulov  <ibr@ata.cs.hun.edu.tr>

	* gdb.texinfo (Source Path): Document the new behavior of
	searching for the source files.

2004-07-17  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Edit): Fix markup of EDITOR and improve wording.
	(Search, Expressions, Arrays, Variables, Data, Machine Code)
	(Auto Display): Improve indexing.

2004-07-16  Andrew Cagney  <cagney@gnu.org>

	* gdb.texinfo (Mode Options): Delete documentation on "-async" and
	"-noasync".

2004-07-09  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo: Fix @kindex entries so that multiple commands that
	have the same prefix have only their prefix in the index.

2004-07-03  Mark Kettenis  <kettenis@gnu.org>

	* gdb.texinfo (BSD libkvm Interface): New node (section)
	(Native): Add it to the menu.

2004-07-01  Mark Kettenis  <kettenis@gnu.org>

	* gdbint.texinfo (Target Architecture Definition): Remove
	PCC_SOL_BROKEN.

2004-06-24  Mark Kettenis  <kettenis@gnu.org>

	* gdbint.texinfo (Target Architecture Definition): Remove
	SUN_FIXED_LBRAC_BUG.

2004-06-26  Andrew Cagney  <cagney@gnu.org>

	* gdbint.texinfo (Coding): Replace xasprintf with xstrprintf.

2004-06-20  Andrew Cagney  <cagney@gnu.org>

	* gdbint.texinfo (Target Architecture Definition): Deprecate
	USE_STRUCT_CONVENTION.

2004-06-19  Michael Chastain  <mec.gnu@mindspring.com>

	gdb.texinfo (Bug Reporting): Mention session recording,
	with the script command or Emacs.

2004-06-18  Andrew Cagney  <cagney@gnu.org>

	* gdbint.texinfo (Target Architecture Definition): Deprecate
	FUNCTION_START_OFFSET.

2004-06-14  Andrew Cagney  <cagney@gnu.org>

	Based on changes from Karl Berry.
	* gdb.texinfo: Do not use @sc in a direntry.
	* stabs.texinfo: Change @dircateogry to "Software development".
	* gdbint.texinfo, gdb.texinfo, annotate.texinfo: Ditto.

2004-06-13  Andrew Cagney  <cagney@gnu.org>

	* gdbint.texinfo (Target Architecture Definition): Delete
	description of RETURN_VALUE_ON_STACK.

2004-06-09  Andrew Cagney  <cagney@gnu.org>

	* gdbint.texinfo (Native Debugging): Restore "@table @code"
	deleted by previous patch.

2004-06-08  Andrew Cagney  <cagney@gnu.org>

	* gdbint.texinfo (Native Debugging): Delete documentation on
	ATTACH_DETACH.

2004-06-06  Randolph Chung  <tausq@debian.org>

	* gdb.texinfo (push_dummy_call): Use @code{struct value}.

2004-06-06  Randolph Chung  <tausq@debian.org>

	* gdb.texinfo (push_dummy_call): Update argument list to match
	the new push_dummy_call method signature.  Describe the function
	argument.

2004-05-24  Joel Brobecker  <brobecker@gnat.com>

	* gdb.texinfo (Starting): Document new start command.

2004-05-21  Andrew Cagney  <cagney@redhat.com>

	* observer.texi (GDB Observers): Document "inferior_created".

2004-05-08  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	description of DO_DEFERRED_STORES.

	* gdbint.texinfo (Target Architecture Definition): Delete
	references to DEPRECATED_FIX_CALL_DUMMY.

	* gdbint.texinfo (Target Architecture Definition): Delete
	description of DEPRECATED_CALL_DUMMY_WORDS,
	DEPRECATED_SIZEOF_CALL_DUMMY_WORDS, and CALL_DUMMY.

	* gdbint.texinfo (Target Architecture Definition): Delete
	description of DEPRECATED_PUSH_DUMMY_FRAME.

	* gdbint.texinfo (Target Architecture Definition): Delete
	reference to DEPRECATED_CALL_DUMMY_BREAKPOINT_OFFSET.

2004-05-07  Andrew Cagney  <cagney@redhat.com>

	* observer.texi (GDB Observers): Add "Debugging" section.  Include
	cross reference to "set/show debug observer".
	* gdb.texinfo (Debugging Output): Document "set/show debug
	observer".

2004-05-01  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	description of DEPRECATED_PC_IN_SIGTRAMP.

2004-04-30  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	documentation for BELIEVE_PCC_PROMOTION_TYPE, no longer defined.

2004-04-30  Orjan Friberg  <orjanf@axis.com>

	* observer.texi (GDB Observers): Correct spelling.

2004-04-26  Orjan Friberg  <orjanf@axis.com>

	* observer.texi (GDB Observers): Add target_changed event.

2004-04-08  Andrew Cagney  <cagney@redhat.com>

	* observer.texi (GDB Observers): Rework, provide generic observer
	definitions and then a list of observable events.

2004-04-04  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Host Definition): Delete reference to
	NO_SIGINTERRUPT.

2004-04-02  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	reference to DEPRECATED_CALL_DUMMY_LENGTH.

2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>

	* gdb.texinfo (TUI Commands): Document tui reg commands.

2004-03-26  Andrew Cagney  <cagney@redhat.com>

	* gdb.texinfo (TUI): Delete reference to --enable-tui.  Mention
	"gdbtui".
	(Mode Options): Mention "gdbtui".  Use "Text" not "Terminal".
	(Contributors): Mention both Text and Terminal User Interface.

2004-03-23  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Deprecate
	references to SIGTRAMP_START and SIGTRAMP_END.

2004-03-23  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Deprecate
	references to PC_IN_SIGTRAMP.

2004-03-19  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	reference to GDB_TARGET_IS_HPPA.

2004-03-18  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Coding): Update section on gdbarch_data,
	describe pre_init and post_init.

2004-03-09  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.texinfo (Debugging Output): Document values for "set debug
	target".

2004-02-28  Andrew Cagney  <cagney@redhat.com>

	* gdb.texinfo (Contributors): Mention GDB 6.1 release engineer.

2004-02-26  Jeff Johnston  <jjohnstn@redhat.com>

	* gdb.texinfo (breakpoints): Add information about the
	new "set breakpoint pending" and "show breakpoint pending"
	commands.

2004-02-26  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Coding): Document use of gdbarch_obstack_zalloc
	in Per-architecture module data section.

2004-02-25  Roland McGrath  <roland@redhat.com>

	* gdb.texinfo (General Query Packets): Document qPart:... packets.

2004-02-24  Andrew Cagney  <cagney@redhat.com>

	* annotate.texinfo: Wrap fdl.texi include in raise/lower sections.
	* gdb.texinfo, gdbint.texinfo, stabs.texinfo: Ditto.
	* fdl.texi: Import Version 1.2, November 2002.

2004-02-17  Andrew Cagney  <cagney@redhat.com>

	* gdb.texinfo (Mode Options): Note that "mi1" is deprecated.

2004-02-16  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Deprecate
	FRAMELESS_FUNCTION_INVOCATION.

2004-02-16  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Coding): Mention -Wunused-function.

2004-02-14  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	description of DEPRECATED_CALL_DUMMY_STACK_ADJUST.

2004-02-12  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.texinfo: Properly quote the name "C++".
	* gdbint.texinfo: Ditto.
	* stabs.texinfo: Ditto.

2004-02-11  Elena Zannoni  <ezannoni@redhat.com>

	* gdbint.texinfo (Support Libraries): Add doco about obstacks and
	minimal information about libiberty.

2004-02-06  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.texinfo (Auxiliary Vector): Fix thinko with @value{GDBN}.

2004-02-04  Roland McGrath  <roland@redhat.com>

	* gdb.texinfo (Auxiliary Vector): New node (section).
	(Data): Add it to the menu.

2004-02-02  Jeff Johnston  <jjohnstn@redhat.com>

	* gdb.texinfo (Breakpoints): Add information about pending
	breakpoint support.

2004-01-26  Andrew Cagney  <cagney@redhat.com>

	* gdb.texinfo (Overview): Delete references to the cisco protocol
	including the "N" response.

2004-01-26  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Rename
	EXTRACT_STRUCT_VALUE_ADDRESS to
	DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS.

2004-01-24  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (KOD): Document "show os".  Add index entries for
	"set/show os" and "info cisco" commands.

2004-01-21  Eli Zaretskii  <eliz@gnu.org>

	* Makefile.in (install-info): Prepend $(DESTDIR) to $(infodir).

2004-01-19  Michael Chastain  <mec.gnu@mindspring.com>

	* gdbint.texinfo: Delete USE_MMALLOC, NO_MMCHECK, MMCHECK_FORCE,
	MMAP_BASE_ADDRESS, MMAP_INCREMENT.

2004-01-19  Nick Roberts  <nick@nick.uklinux.net>

	* gdb.texinfo (GDB/MI Stack Manipulation): Describe extension to
	-stack-list-locals.
	(GDB/MI Variable Objects): Describe extension to
	-var-list-children.

2004-01-17  Daniel Jacobowitz  <drow@mvista.com>

	* gdbint.texinfo (DECR_PC_AFTER_HW_BREAK): Don't document.

2004-01-17  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	documentation on DEPRECATED_NPC_REGNUM.

2004-01-13  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.texinfo: Update copyright year.  Mention that set
	follow-fork-mode is supported on GNU/Linux.  Remove documentation of
	"set follow-fork-mode ask".

2004-01-13  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo: Update copyright year.
	(Coding): Add -Wunused-label to list of -Werror warnings.

2004-01-08  Jason Molenda  <jmolenda@apple.com>
	    Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo: Update copyright.
	(Objective-C): "methodName" typeo fixed.  Add @code/@var markup
	around names, as appropriate.  Minor syntax cleanup of
	_NSPrintForDebugger explanation.  Two spaces after periods.
	GDBN used instead of lit. "gdb".  Index entries added for
	print-object and _NSPrintForDebugger.  @noindent added in one spot.

2003-11-11  Elena Zannoni  <ezannoni@redhat.com>

	* stabs.texinfo: Add dircategory and direntry commands.
	* annotate.texinfo: Ditto.

2003-11-10  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Replace the
	return_value method's "inval" and "outval" parameters with
	"readbuf" and "writebuf".

2003-10-28  Jim Blandy  <jimb@redhat.com>

	* gdb.texinfo (The F request packet, The F reply packet): Renamed
	from "The `F' request packet" and "The `F' reply packet", to make
	texi2dvi happy.
	(File-I/O remote protocol extension): Update menu entries, too.

2003-10-26  Michael Chastain  <mec@shout.net>

	* gdb.texinfo (Thread Stops): Document the issue with
	premature return from system calls in multi-threaded programs.

2003-10-24  Andrew Cagney  <cagney@redhat.com>

	* annotate.texinfo: Fix "fortunatly"[sic].

2003-10-23  Kei Sakamoto  <sakamoto.kei@renesas.com>

	* gdb.texinfo (Contributors to GDB): Replace "Renesas"
	with "Hitachi" and "Mitsubishi".

2003-10-20  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Document
	gdbarch_return_value.  Add cross references from
	USE_STRUCT_CONVENTION, EXTRACT_RETURN_VALUE, and
	STORE_RETURN_VALUE, and from/to EXTRACT_STRUCT_VALUE_ADDRESS.

2003-10-18  Mark Kettenis  <kettenis@gnu.org>

	* gdbint.texinfo (Target Architecture Definition): Document
	regset_from_core_section.

2003-10-16  Kei Sakamot Sakamoto  <sakamoto.kei@renesas.com>

	* gdb.texinfo (M32R/D): Mention m32rsdi target.

2003-10-15  Kevin Buettner  <kevinb@redhat.com>

	From Anthony Green  <green@redhat.com>:
	* gdb.texinfo (Breakpoints related warnings): Insert into menu.

2003-10-14  Kevin Buettner  <kevinb@redhat.com>

	* gdb.texinfo (Breakpoint related warnings): New node.
	* gdbint.texinfo (ADJUST_BREAKPOINT_ADDRESS): Document.

2003-10-13  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.texinfo (Remote Protocol): Document v and vCont.

2003-10-10  Kei Sakamoto  <sakamoto.kei@renesas.com>

	* gdb.texinfo: Replace "Hitachi" and "Mitsubishi" with "Renesas".
	* gdbint.texinfo: Ditto.

2003-10-09  Andrew Cagney  <cagney@redhat.com>

	From 2003-09-18 David Anderson <davea@sgi.com>:
	* gdb.texinfo (GDB/MI Symbol Query): Replace "comamnd" with
	"command".

2003-10-03  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Deprecate
	IBM6000_TARGET.  Mention that it implies an RS/6000 system and not
	just target.

2003-10-02  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Rename
	REGISTER_RAW_SIZE to DEPRECATED_REGISTER_RAW_SIZE.
	* gdb.texinfo (Packets, Stop Reply Packets): Ditto.
	* gdbint.texinfo (Target Architecture Definition): Rename

2003-09-30  Andrew Cagney  <cagney@redhat.com>

	REGISTER_VIRTUAL_SIZE to DEPRECATED_REGISTER_VIRTUAL_SIZE.
	(Target Architecture Definition):

	* gdbint.texinfo (Target Architecture Definition): Rename
	REGISTER_VIRTUAL_TYPE to DEPRECATED_REGISTER_VIRTUAL_TYPE.

2003-09-29  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	documentation for NEED_TEXT_START_END.

	* gdbint.texinfo (Target Architecture Definition): Rename
	NPC_REGNUM to DEPRECATED_NPC_REGNUM.  Add cross reference to
	TARGET_WRITE_PC.

2003-09-22  Michael Chastain  <mec@shout.net>

	* gdbint.texinfo (Testsuite Organization): Change gdb.c++ to gdb.cp.

2003-09-21  Anthony Green  <green@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Fix typos.

2003-09-21  Mark Kettenis  <kettenis@gnu.org>

	* gdbint.texinfo (Target Architecture Definition): Document
	stabs_argument_has_addr.

2003-09-18  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	documentation on REGISTER_NAMES.

2003-09-13  Mark Kettenis  <kettenis@gnu.org>

	* gdbint.texinfo (Target Architecture Definition): Replace
	REG_STRUCT_HAS_ADDR with DEPRECATED_REG_STRUCT_HAS_ADDR.

2003-09-11  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Replace
	STACK_ALIGN with DEPRECATED_STACK_ALIGN.

2003-08-18  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Document
	"frame_red_zone_size".

2003-08-09  Andrew Cagney  <cagney@redhat.com>

	* gdb.texinfo (Backtrace): Replace "set/show backtrace-below-main"
	with "set/show backtrace past-main" and "set/show backtrace
	limit".

2003-08-08  H.J. Lu  <hongjiu.lu@intel.com>

	* Makefile.in (install-info): Support DESTDIR.
	(install-html): Likewise.

2003-08-07  Andrew Cagney  <cagney@redhat.com>

	Patch from Nick Roberts.
	* gdb.texinfo (Using GDB under GNU Emacs): Fix/update key
	bindings.  Remove description of send-gdb-command.

2003-08-07  Andrew Cagney  <cagney@redhat.com>

	* gdb.texinfo (Mode Options): Mention that "mi2" was included in
	GDB 6.0.

2003-08-06  Andrew Cagney  <cagney@redhat.com>

	* gdb.texinfo (Mode Options): Mention that level three is the
	highest available and that level 2 is deprecated.
	(Annotations Overview): Mention annotation levels. Cross reference
	to "Limitations of the Annotation Interface" in annotate.texi.
	(TODO, Value Annotations, Frame Annotations): Delete section.
	(Displays, Breakpoint Info): Delete.

2003-08-04  Andrew Cagney  <cagney@redhat.com>

	* agentexpr.texi: Delete @bye.
	* Makefile.in (STABS_DOC_SOURCE_INCLUDES): Add "fdl.texi"
	(stabs.info): Add $(srcdir) to include search path.
	(html): Depend on "annotate_toc.html", and not "annotate.html".
	* stabs.texinfo: Ditto.  Include "fdl.texi".
	* gdbint.texinfo: Update copyright statement's list of invariant
	sections.

2003-07-28  Andrew Cagney  <cagney@redhat.com>

	* Makefile.in (INFO_DEPS): Add annotate.info.
	(dvi, ps, html, pdf): Add annotate.
	(ANNOTATE_DOC_SOURCE_INCLUDES): New macro.
	(ANNOTATE_DOC_BUILD_INCLUDES): New macro.
	(ANNOTATE_DOC_FILES): New macro.
	(ANNOTATE_TEX_TMPS): New macro.
	(annotate.info, annotate_toc.html): Specify dependencies.
	(annotate.ps, annotate.pdf, annotate.dvi): Ditto.
	* annotate.texinfo: Rename annotate.texi.  Get building.  Add
	"Migrating to GDB/MI" and "Limitations of the Annotation
	Interface" chapters.  Mention why it is not part of the user
	guide.  Update copyright notice.  Include "fdl.texi".

2003-07-26  Stephane Carrez  <stcarrez@nerim.fr>

	* gdb.texinfo (TUI Keys): Document C-x o key to switch active window.

2003-07-24  Daniel Jacobowitz  <drow@mvista.com>

	* gdbint.texinfo (libgdb components): Correct a GDB to GDBN.

2003-07-24  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.texinfo (Server): Mention pidof.

2003-07-22  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Coding): Add -Wformat-nonliteral to -Werror
	list.

2003-06-28  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.texinfo (Logging output): New chapter.

2003-06-24  Joel Brobecker  <brobecker@gnat.com>

	* gdb.texinfo (Unsupported languages): New section.
	(Languages): Add link to new section.

2003-06-22  Andrew Cagney  <cagney@redhat.com>

	* gdb.texinfo (Contributors): Mention 6.0 release engineer.

2003-06-22  Daniel Jacobowitz  <drow@mvista.com>

	* gdbint.texinfo (Coding): Clarify use of gdb_XXX.h headers.

2003-06-22  Daniel Jacobowitz  <drow@mvista.com>

	* Makefile.in (SFILES_INCLUDED): Add agentexpr.texi.
	* agentexpr.texi: Retitle section, and change it to an appendix.
	Comment out texinfo initialization.  Factor a @var{} into two
	pieces to prevent makeinfo warnings.
	* gdb.texinfo: Add Agent Expressions appendix.

2003-06-19  Daniel Jacobowitz  <drow@mvista.com>

	* gdbint.texinfo (Native Conditionals): Remove PREPARE_TO_PROCEED.

2003-06-18  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.texinfo (Remote Debugging): New section "Connecting to a
	remote target".  Document the "detach" and "disconnect" commands.
	(Server, Netware, Debug Session): Reference "Connecting to a
	remote target".
	(GDB/MI Target Manipulation): Document "-target-disconnect".

2003-06-13  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Deprecate
	REMOTE_BREAKPOINT, LITTLE_REMOTE_BREAKPOINT, and
	BIG_REMOTE_BREAKPOINT.  Cross reference BREAKPOINT_FROM_PC.

2003-06-09  Jim Blandy  <jimb@redhat.com>

	* gdb.texinfo (Separate Debug Files): Remove extra semicolon.

2003-06-08  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	documentation on FRAME_ARGS_ADDRESS_CORRECT.

2003-06-08  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Document
	"unwind_sp".  Cross reference "unwind_sp" and TARGET_READ_SP.

2003-06-07  Adam Fedor  <fedor@gnu.org>

	* gdb.texinfo: Add Objective-C documentation.

2003-06-01  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Add "func_addr"
	parameter to "push_dummy_call".  Rename "dummy_addr" to "bp_addr".

2003-05-21  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	references to "extract_address" and "store_address".

2003-05-16  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Replace
	REGISTER_BYTES with DEPRECATED_REGISTER_BYTES.  Fix typo,
	DEPRECATED_REGISTER_SIZE instead of REGISTER_BYTE.

2003-05-14  Theodore A. Roth  <troth@openavr.org>

	* gdbint.texinfo (Breakpoint Handling): Correct a double negative.

2003-05-10  H.J. Lu <hongjiu.lu@intel.com>

	* Makefile.in (gdb-cfg.texi): Replace $$LN_S with $(LN_S).
	(gdb.dvi): Likewise.
	(gdb.pdf): Likewise.
	(links2roff): Likewise.

2003-05-08  Jim Blandy  <jimb@redhat.com>

	* gdb.texinfo (Dump/Restore Files): Update documentation for
	'dump', 'append', and 'restore': note that format argument is
	optional; simplify presentation of the command variants; and be
	more precise about the formats.

2003-05-07  Jim Blandy  <jimb@redhat.com>

	* gdb.texinfo (Symbols): Update documentation: 'maint list
	symtabs' and 'maint list psymtabs' have been renamed 'maint info
	symtabs' and 'maint info psymtabs'.

2003-05-05  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Make
	CALL_DUMMY_WORDS, SIZEOF_CALL_DUMMY_WORDS, CALL_DUMMY_LENGTH,
	FIX_CALL_DUMMY, CALL_DUMMY_BREAKPOINT_OFFSET and
	CALL_DUMMY_BREAKPOINT_OFFSET deprecated.

2003-05-04  Andrew Cagney  <cagney@redhat.com>

	* gdb.texinfo (Maintenance Commands): Document "maint print
	dummy-frames".

2003-05-04  Andrew Cagney  <cagney@redhat.com>

	* gdb.texinfo (GDB/MI Symbol Query): Use @{ and @}.

2003-05-03  J. Brobecker  <brobecker@gnat.com>

	Thierry Schneider  <tpschneider1@yahoo.com>
	* gdb.texinfo (section GDB/MI Symbol Query): Add documentation
	for new MI command.

2003-05-03  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Document
	push_dummy_code.  Add cross references.

2003-05-02  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.texinfo (Character Sets): Update to reflect new behavior of
	set/show charsets commands.

2003-04-28  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Replace
	read_fp, TARGET_READ_FP and FP_REGNUM, with deprecated_read_fp,
	DEPRECATED_TARGET_READ_FP and DEPRECATED_REGNUM.

2003-04-28  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Rename
	"tm_print_insn" to "deprecated_tm_print_insn".

2003-04-09  Jim Blandy  <jimb@redhat.com>

	* gdb.texinfo (Symbols): Document 'maint list symtabs' and 'maint
	list psymtabs'.

2003-04-08  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	references to EXTRA_FRAME_INFO.

2003-04-08  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	PRINT_TYPELESS_INTEGER.

2003-04-02  J. Brobecker  <brobecker@gnat.com>

	* observer.texi (GDB Observers): Adjust the documentation for the
	normal_stop notification to better describe reality. Fix a couple
	of minor typos.

2003-04-02  Bob Rossi  <bob_rossi@cox.net>

	* gdb.texinfo (GDB/MI Program Control): Add
	'-file-list-exec-source-file'

2003-03-31  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	references to CALL_DUMMY_P.

2003-03-30  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Remove
	reference to TARGET_WRITE_SP.

2003-03-27  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Remove
	references to write_sp.

2003-03-27  Andrew Cagney  <cagney@redhat.com>

	* gdb.texinfo (GDB/MI Variable Objects): Replace @include with
	chapter body.  Use @smallexample instead of @example.
	(Annotations): Ditto.
	* Makefile.in (GDB_DOC_SOURCE_INCLUDES): Remove gdbmi.texinfo and
	annotate.texi.

2003-03-26  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Replace
	PUSH_ARGUMENTS with push_dummy_call, add gdbarch, regcache and
	dummy_addr parameters.

2003-03-25  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	reference to CALL_DUMMY_STACK_ADJUST_P.  Rename
	CALL_DUMMY_STACK_ADJUST to DEPRECATED_CALL_DUMMY_STACK_ADJUST.
	Add reference to PUSH_ARGUMENTS.

2003-03-23  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Algorithms, Target Architecture Definition):
	Deprecate FRAME_CHAIN and FRAME_CHAIN_VALID.

2003-03-18  J. Brobecker  <brobecker@gnat.com>

	* gdbint.texinfo (Algorithms): Add new section describing the
	Observer paradigm.
	(Top): Add menu entry to new observer appendix.
	* observer.texi: New file.
	* Makefile.in (GDBINT_DOC_SOURCE_INCLUDES): Add dependency on
	new observer.texi file.

2003-03-17  Andrew Cagney  <cagney@redhat.com>

	* gdb.texinfo (DATE): Delete.  Remove date from titles.  Mention
	that GNU Press update the manual version number.

2003-03-12  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	references to get_saved_register.  Rename GET_SAVED_REGISTER to
	DEPRECATED_GET_SAVED_REGISTER.

2003-03-13  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Replace
	POP_FRAME with DEPRECATED_POP_FRAME.  Update description.

2003-03-12  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Rename
	FRAME_SAVED_PC to DEPRECATED_FRAME_SAVED_PC.

2003-03-10  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.texinfo: Add File-I/O documentation.

2003-03-10  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Cross reference
	FRAME_SAVED_PC to unwind_pc.  Document unwind_pc.

2003-03-07  Andrew Cagney  <cagney@redhat.com>

	* gdb.texinfo (Debugging Output): Mention the "set/show debug
	frame" command.

2003-03-05  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Document
	unwind_dummy_id.  Cross reference unwind_dummy_id and
	SAVE_DUMMY_FRAME_TOS.

2003-03-05  James Ingham <jingham@apple.com>
	    Daniel Jacobowitz  <drow@mvista.com>

	* gdb.texinfo (Configuring the current ABI): Document "set cp-abi"
	and "show cp-abi".

2003-03-03  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Document
	register_type.

2003-03-03  Andrew Cagney  <cagney@redhat.com>

	* stabs.texinfo (Structures): Use @samp and separate @var's
	instead of a single @var containing a comma separated list.
	(Unions): Ditto.

2003-03-02  Daniel Jacobowitz  <drow@mvista.com>

	* Makefile.in (distclean): Remove config.log.

2003-03-01  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Rename
	FRAME_INIT_SAVED_REGS to DEPRECATED_FRAME_INIT_SAVED_REGS.

2003-03-01  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo: Rename INIT_EXTRA_FRAME_INFO to
	DEPRECATED_INIT_EXTRA_FRAME_INFO.

2003-02-23  Raoul Gough  <RaoulGough@yahoo.co.uk>

	* gdb.texinfo (Cygwin Native): Links to Non-debug DLL symbols.
	(Non-debug DLL symbols): New node, describing the minimal symbols
	loaded from DLLs without real debugging symbols.

2003-02-20  Andrew Cagney  <ac131313@redhat.com>

	* gdb.texinfo (Set Breaks): Add cross reference to "set remote
	hardware-breakpoint-limit".
	(Set Watchpoints): Add cross reference to "set remote
	hardware-watchpoint-limit".
	(Remote configuration options): New section.

2003-02-04  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	descrption of IS_TRAPPED_INTERNALVAR.

	From Keith Seitz <keiths@redhat.com>:
	* gdb.texinfo (Interpreters): New chapter.  Refer the command-line
	option "-i"/"--interpreter" to this chapter.  Include index
	entries.

2003-02-04  David Carlton  <carlton@math.stanford.edu>

	* gdb.texinfo (C@t{++}): Recommend DWARF 2, then stabs+.
	(Variables): Recommend stabs+ and DWARF 2.
	(C plus plus expressions): Correct info about
	compiler versions, debug formats.
	(Contributors): Change 'DWARF2' to 'DWARF 2'.
	PR symtab/874.

2003-02-01  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	description of ADDITIONAL_OPTIONS, ADDITIONAL_OPTION_CASES,
	ADDITIONAL_OPTION_HANDLER, and ADDITIONAL_OPTION_HELP, and
	BEFORE_MAIN_LOOP_HOOK, and DBX_PARM_SYMBOL_CLASS along with
	references to nindy and i960.
	* gdb.texinfo (i960): Delete all references to i960 and nindy.

2003-02-01  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	FLOAT_INFO.

2003-01-30  Andrew Cagney  <ac131313@redhat.com>

	* stabs.texinfo (Member Type Descriptor): Clarify description of
	`@'.  Suggested by Ben Hutchings.

2003-01-29  Andrew Cagney  <ac131313@redhat.com>

	* gdb.texinfo (M68K): Delete reference to es1800.

2003-01-29  Andrew Cagney  <ac131313@redhat.com>

	* gdb.texinfo (Maintenance Commands): Document `maint print
	reggroups' and `maint print register-groups'.
	* gdbint.texinfo (Target Architecture Definition): Document
	register_reggroup_p.

2003-01-23  Jim Blandy  <jimb@redhat.com>

	* gdb.texinfo (Separate Debug Files): New section.

2003-01-22  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.texinfo (Maintenance Commands): Add "maint set profile"
	and "maint show profile".

2003-01-16  Michael Chastain  <mec@shout.net>

	* gdb.texinfo (Installing GDB): Warn against
	".../gdb-VERSION/gdb/configure".
	(Separate Objdir): Likewise.

2003-01-15  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	definition of PRINT_REGISTER_HOOK.

2003-01-15  Elena Zannoni  <ezannoni@redhat.com>

	(OpenRISC 1000): Fix formatting of command names.

2003-01-15  Elena Zannoni  <ezannoni@redhat.com>

	* gdb.texinfo (Continuing and Stepping): Add new command
	'advance'. Clarify behavior of 'until'.

2003-01-13  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.texinfo (Files): Document solib-absolute-prefix and
	solib-search-path.

2003-01-09  Michael Chastain  <mec@shout.net>

	* gdbint.texinfo (Configuring @value{GDBN} for Release): Delete.
	(Create a Release): Add new instructions for new @file{src-release}.
	Document existing instructions for @file{Makefile.in} as
	being for @value{GDBN} 5.3.1 or earlier.

2003-01-09  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Mention
	frame_saved_regs_zalloc and frame_extra_info_zalloc as the way to
	allocate memory.

2003-01-04  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.texinfo (Controlling GDB): Add @kindex for
	"show osabi".
	(Backtraces): Add @kindex's for backtrace-below-main.

2003-01-04  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.texinfo (Controlling GDB): Document "set osabi".

2003-01-04  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.texinfo (Backtraces): Document "set backtrace-below-main".
	* gdbint.texinfo (FRAME_CHAIN_VALID): Update documentation.

2003-01-04  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.texinfo (Controlling GDB): Add ABI section.  Document
	"set coerce-float-to-double".
	* gdbint.texinfo (COERCE_FLOAT_TO_DOUBLE): Remove documentation.

2003-01-02  Andrew Cagney  <ac131313@redhat.com>

	* stabs.texinfo: Remove obsolete text.
	* gdbint.texinfo: Ditto.
	* gdb.texinfo: Ditto.

2002-12-22  Mark Kettenis  <kettenis@gnu.org>

	* gdbint.texinfo (Target Architecture Definition): Update
	description of gdbarch_register_osabi.

2002-12-20  Kazu Hirata  <kazu@cs.umass.edu>

	* agentexpr.texi: Fix typos.
	* annotate.texi: Likewise.
	* fdl.texi: Likewise.

2002-12-10  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Algorithms): Replace INIT_FRAME_PC with
	DEPRECATED_INIT_FRAME_PC.

2002-12-01  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	PC_IN_CALL_DUMMY.

2002-11-28  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Host Definition): Delete documentation on
	USE_GENERIC_DUMMY_FRAMES.

2002-11-26  Elena Zannoni  <ezannoni@redhat.com>

	Fix PR gdb/723 and PR gdb/245.
	* Makefile.in (install-info): Run the install-info command as part
	of the post install steps only.
	(uninstall-info): New target.
	(uninstall): New target.

2002-11-22  Elena Zannoni  <ezannoni@redhat.com>

	* Makefile.in (install): Make install do some real work.

2002-11-19  Andrew Cagney  <ac131313@redhat.com>

	Fix POSIX problem reported by Paul Eggert.
	* Makefile.in (GDBvn.texi): Use `sed q' instead of `head -1'.
	Fix PR gdb/527.

2002-10-26  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	definition of DO_REGISTERS_INFO.

2002-10-18  Kevin Buettner  <kevinb@redhat.com>

	* gdbint.texinfo (Address Classes): Fix problems with insertion
	of ``{'' and ``}'' in example.

2002-10-17  Kevin Buettner  <kevinb@redhat.com>

	* gdbint.texinfo (Address Classes): New section.
	(Target Conditionals): Document ADDRESS_CLASS_NAME_TO_TYPE_FLAGS,
	ADDRESS_CLASS_NAME_TO_TYPE_FLAGS_P, ADDRESS_CLASS_TYPE_FLAGS,
	ADDRESS_CLASS_TYPE_FLAGS_P, ADDRESS_CLASS_TYPE_FLAGS_TO_NAME, and
	ADDRESS_CLASS_TYPE_FLAGS_TO_NAME_P.

2002-10-11  Klee Dienes  <kdienes@apple.com>

	* gdb.texinfo (Registers): Mention vector registers as well as
	floating registers in the documentation for 'info registers' and
	'info all-registers'.

2002-10-11  Daniel Jacobowitz  <drow@mvista.com>

	* gdbint.texinfo (CPLUS_MARKER): Remove item.

2002-10-03  Jeff Johnston  <jjohnstn@redhat.com>

	* gdbint.texinfo (Item Output Functions): Add new ui_out_field_fmt_int
	interface definition.

2002-10-03  Marko Mlinar   <markom@opencores.org>

	* gdb.texinfo (Target Commands): Add or1k target specific
	commands.
	* gdb.texinfo (Contributors): Add myself to the contributors list.

2002-10-01  Andrew Cagney  <ac131313@redhat.com>

	* gdb.texinfo (Mode Options): Update --interpreter option.  "mi2"
	and "mi1" instead of "mi1" and "mi0".

2002-09-29  Hans-Peter Nilsson  <hp@bitrange.com>

	* gdb.texinfo (Packets): Fix typos "alligned".
	Correct z3/Z3 description.  Correct z4/Z4 title.

2002-09-27  Andrew Cagney  <ac131313@redhat.com>

	* all-cfg.texi: Use @sc for GDB and GCC.  Update copyright.

2002-09-25  Kevin Buettner  <kevinb@redhat.com>

	* gdb.texinfo: Use GNU/Linux instead of Linux.

2002-09-25  Andrew Cagney  <ac131313@redhat.com>

	* gdb.texinfo (Packets): Replace @samp{} with ``an empty string''.

2002-09-24  Andrew Cagney  <ac131313@redhat.com>

	* gdb.texinfo: Replace @example with @smallexample.

2002-09-20  Kevin Buettner  <kevinb@redhat.com>

	From Eli Zaretskii  <eliz@gnu.org>:
	* gdb.texinfo (Character Sets): Use @smallexample instead of
	@example.  Use GNU/Linux instead of Linux.

2002-09-20  Jim Blandy  <jimb@redhat.com>

	* gdb.texinfo: Add character set documentation.

2002-09-19  Andrew Cagney  <ac131313@redhat.com>

	* gdb.texinfo (Packets): Revise `z' and `Z' packet documentation.
	(Packets): Add cross reference from `b' packet to `z' packets.

2002-09-19  Andrew Cagney  <ac131313@redhat.com>

	* gdb.texinfo (Maintenance Commands): Document ``maint
	internal-error'' and ``maint internal-warning''.

	* gdbint.texinfo (Target Architecture Definition): Revise
	description of STACK_ALIGN.  Add description of FRAME_ALIGN.

2002-09-19  Joel Brobecker  <brobecker@gnat.com>

	* gdbint.texinfo (Target Conditionals): Document the new
	NAME_OF_MALLOC macro.

2002-09-05  Andrew Cagney  <ac131313@redhat.com>

	* gdb.texinfo (Contributors): Mention 5.2 and 5.3 release
	engineer.

2002-09-02  Stephane Carrez  <stcarrez@nerim.fr>

	* gdb.texinfo (TUI Overview): Document status line fields.

2002-09-02  Stephane Carrez  <stcarrez@nerim.fr>

	* gdb.texinfo (TUI Commands): Document info win command.

2002-09-01  Stephane Carrez  <stcarrez@nerim.fr>

	* gdb.texinfo (TUI Overview): Document breakpoint markers.

2002-09-01  Stephane Carrez  <stcarrez@nerim.fr>

	* gdb.texinfo (TUI Single Key Mode): Document new SingleKey mode.
	(TUI Keys): Likewise.

2002-08-25  Andrew Cagney  <ac131313@redhat.com>

	* gdb.texinfo (Examples): Use ``->'' for a packet send and ``<-''
	for a packet receive.

2002-08-25  Andrew Cagney  <ac131313@redhat.com>

	* Makefile.in (clean): Move to end of file.
	(distclean, maintainer-clean, realclean): Ditto.
	(mostlyclean): Move rule to end of file.  Use GDB_TEX_TMPS,
	GDBINT_TEX_TMPS, STABS_TEX_TMPS.
	(gdb.dvi, gdb.pdf): Do not cleanup TeX temp files after texi2dvi.
	(gdbint.dvi, gdbint.pdf, stabs.dvi, stabs.pdf): Ditto.

2002-08-24  Andrew Cagney  <ac131313@redhat.com>

	* Makefile.in (GDBINT_TEX_TMPS): Define.
	(gdbint.dvi, gdbint.pdf): Use
	(GDB_TEX_TMPS): Define.
	(gdb.dvi, gdb.pdf): Use.
	(STABS_TEX_TMPS): Define.
	(stabs.dvi, stabs.pdf): Use.
	(GDB_DOC_SOURCE_INCLUDES): New macros.
	(GDB_DOC_BUILD_INCLUDES, GDB_DOC_FILES): New macros.
	(GDBINT_DOC_FILES_INCLUDES): New macros.
	(GDBINT_DOC_BUILD_INCLUDES): New macros.
	(GDBINT_DOC_FILES, STABS_DOC_SOURCE_INCLUDES): New macros.
	(STABS_DOC_BUILD_INCLUDES, STABS_DOC_FILES): New macros.
	(SFILES_DOC, SFILES_INCLUDED, SFILES_LOCAL): Delete macros.
	(links2roff): Replace SFILES_INCLUDED with
	GDB_DOC_SOURCE_INCLUDES.
	(gdb.dvi, gdb_toc.html, gdb.pdf, gdb.info): Update dependencies.
	(gdb.me, gdb.mm, gdb.ms): Update dependencies.
	(gdbint.dvi, gdbint_toc.html, gdbint.pdf, gdbint.info): Update
	dependencies.
	(stabs.info, stabs_toc.html, stabs.pdf, stabs.dvi): Update
	dependencies.
	(gdbmi.texinfo): Delete rule.
	(inc-hist.texinfo): Delete rule.
	(rluser.texinfo): Delete rule.

2002-08-23  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Update
	STORE_RETURN_VALUE, mention regcache.

2002-08-21  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Document
	print_registers_info.  Note that DO_REGISTERS_INFO is deprecated.

2002-08-19  Andrew Cagney  <ac131313@redhat.com>

	* gdb.texinfo (Remote Protocol): Reformat.  Use cross references.
	Fix minor typos.  Add index entries.

2002-08-18  Andrew Cagney  <ac131313@redhat.com>

	* gdb.texinfo (Data): Add ``Vector Unit'' to menu.

2002-08-15  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Document
	PRINT_VECTOR_INFO.
	* gdb.texinfo (Vector Unit): Document "info vectors" command.

2002-08-13  Andrew Cagney  <ac131313@redhat.com>

	* gdb.texinfo (Maintenance Commands): Document "maint print
	registers", "maint print raw-registers" and "maint print
	cooked-registers".

2002-08-08  Grace Sainsbury  <graces@redhat.com>

	From Mark Salter:
	* gdb.texinfo (Protocol): Document T packet extension to
	allow watchpoint address reporting.

2002-08-03  Andrew Cagney  <ac131313@redhat.com>

	* gdb.texinfo (Dump/Restore Files): Move `[]' to outside of @var.

2002-08-01  Andrew Cagney  <cagney@redhat.com>

	* stabs.texinfo, gdb.texinfo, gdbint.texinfo: Obsolete references
	to CHILL.

2002-08-01  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Coding): Revise section "Include Files".

2002-07-24  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo: Obsolete references to m88k.
	* gdb.texinfo: Ditto.

2002-07-10  Joel Brobecker  <brobecker@gnat.com>

	* gdbint.texinfo (Create a release candiate): Add the location
	where the proper version of autoconf can be retrieved.

2002-07-09  Don Howard  <dhoward@redhat.com>

	* gdb.texinfo (Command Files): Further describe the behavior of
	sourced command files.

2002-06-27  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (User Interface): ISO C rather than ISO-C.
	(Coding): Clarify ISO C version that GDB assumes.

2002-06-26  Tom Tromey  <tromey@redhat.com>

	* gdbint.texinfo (User Interface): Mention add_setshow_cmd and
	add_setshow_cmd_full.

2002-06-25  Don Howard  <dhoward@redhat.com>

	* gdb.texinfo (Memory Region Attributes): Document new behavior
	for 'mem' command.

2002-06-11  Jim Blandy  <jimb@redhat.com>

	* gdb.texinfo (Symbols): Update documentation for `info source'
	command.

	* gdb.texinfo (Macros): Call the command `info macro', not
	`show macro'.

2002-06-09  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Coding): Add section ``Per-architecture module
	data''.

2002-06-09  Mark Kettenis  <kettenis@gnu.org>

	* gdbint.texinfo (Target Architecture Definition): Document
	GDB_OSABI_GO32 and GDB_OSABI_NETWARE.

2002-06-08  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Releasing GDB): Fix typos in @itemize @bullet
	lists.

2002-06-08  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Releasing GDB): Revise the section ``Cut the
	Branch''.

2002-06-01  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Add section
	``Converting an existing Target Architecture to Multi-arch''.

2002-05-30  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Releasing GDB): Rename ``Obsoleting any code''
	to ``Obsoleting code''.  Revise.

2002-05-17  Jim Blandy  <jimb@redhat.com>

	* gdb.texinfo (C Preprocessor Macros): New chapter.
	Include it in the main menu.
	(Contributors): Credit Jim Blandy with macro support.
	(Compilation): Explain how to get macro information into the
	executable.
	(Expressions): Note that preprocessor macros are expanded.

2002-05-14  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.texinfo (Debug Session): Document new `udp:' and `tcp:'
	options for `target remote'.

2002-05-13  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	documentation on NNPC_REGNUM.

2002-05-11  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Document
	REGISTER_TO_VALUE and VALUE_TO_REGISTER and CONVERT_REGISTER_P.
	(Target Architecture Definition): Revise section `Using Different
	Register and Memory Data Representations'.  Add section `Raw and
	Virtual Register Representations'.

2002-05-11  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Mention
	defaults for REGISTER_VIRTUAL_SIZE and REGISTER_RAW_SIZE.
	(Target Architecture Definition): Mention same.  Add references to
	web pages.

2002-05-08  Michael Snyder  <msnyder@redhat.com>

	* stabs.texinfo (Attributes): Document new "vector" attribute.

2002-05-04  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Releasing GDB): Revise `Create a Release'.

2002-05-04  Andrew Cagney  <ac131313@redhat.com>

	* gdb.texinfo: Delete obsolete references to a29k.

2002-04-24  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Replace
	IN_SIGTRAMP with PC_IN_SIGTRAMP.

2002-04-24  David S. Miller  <davem@redhat.com>

	* gdbint.texinfo (REGISTER_IN_WINDOW): Delete definition.

2002-04-21  David S. Miller  <davem@redhat.com>

	* gdbint.texinfo (SKIP_PROLOGUE_FRAMELESS_P): Delete definition.

2002-04-21  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	definition of HAVE_REGISTER_WINDOWS.

2002-04-19  Eli Zaretskii  <eliz@gnu.org>

	* gdbint.texinfo (Releasing GDB, Coding): Fix typos.  Reported by
	"Theodore A. Roth" <troth@verinet.com>.

2002-04-15  Don Howard  <dhoward@redhat.com>

	From Eli Zaretskii <eliz@gnu.org>
	* gdb.texinfo (show max-user-call-depth): Correct formatting.
	Provide a better explaination of this feature.

2002-04-14  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Remove
	FRAME_CHAIN_COMBINE.

2002-04-12  Michael Chastain  <mec@shout.net>

	* gdbint.texinfo (Obsolete Conditionals): Remove reference to
	REG_STACK_SEGMENT.

2002-04-09  Michael Chastain  <mec@shout.net>

	* gdbint.texinfo (Obsolete Conditionals): Remove references to
	PYRAMID_* macros.

2002-04-07  Andrew Cagney  <ac131313@redhat.com>

	* gdb.texinfo (Bug Reporting): Document that the web is the
	prefered way of submitting bug reports.
	(Bug Reporting): Delete the s-mail address as the last resort.

2002-04-05  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	references to TARGET_WRITE_FP and write_fp.

2002-03-27  Michael Snyder  <msnyder@redhat.com>

	* gdb.texinfo: Document new commands dump, append, and restore.

2002-03-27  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Releasing GDB): Revise the section `Before the
	Branch'.

2002-03-18  Andrew Cagney  <ac131313@redhat.com>

	* gdb.texinfo: Change all examples to @smallexample.
	* gdbint.texinfo: Ditto.

2002-03-18  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Releasing GDB): Add section ``Versions and
	Branches''.

2002-03-18  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Releasing GDB): Add the section``Branch Commit
	Policy''.

2002-03-04  Fred Fish  <fnf@redhat.com>

	* gdbint.texinfo: Fix a bunch of typos (alsways, mirrorred,
	expresson, suports, dependant, trhe, perhaphs, situtations,
	explictily, taged, oportunity, unfortunatly).

2002-02-24  Andrew Cagney  <ac131313@redhat.com>

	* Makefile.in (gdb.info): Add explicit path to gdb.texinfo.
	Remove reference to 3.12.

2002-02-23  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo: Include fdl.texi.
	(Top): Add GNU Free Documentation License.
	* Makefile.in (SFILES_INCLUDED): Add gpl.texi.
	(gdbint.dvi, gdbint.pdf, gdbint.info): Add dependency on fdl.texi.
	(gdbint_toc.html): Add dependency on gdb-cfg.texi and fdl.texi.
	(gdbint.info): Add srcdir to include path.
	* gdb.texinfo: Include gpl.texi.
	(Top): Add Copying.
	* gpl.texi: New file.

2002-02-23  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Debugging GDB): Remove references to cygnus.com.

2002-02-19  Pierre Muller  <muller@ics.u-strasbg.fr>

	* gdb.texinfo: Document Cygwin native specific commands.

2002-02-15  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.texinfo: Document gdbserver ``--attach'' command.

2002-02-07  Michael Snyder  <msnyder@redhat.com>

	* gdb.texinfo (overlays): Change @var(_ovly_debug_event)
	to @code(_ovly_debug_event).

2002-02-07  Andrew Cagney  <ac131313@redhat.com>

	* gdb.texinfo (How Overlays Work): Shrink the overlay diagram.

2002-02-06  Michael Snyder  <msnyder@redhat.com>

	* gdb.texinfo (overlays): Mention new magic symbol
	'_ovly_debug_event', which allows GDB to keep better track
	of overlays.

2002-02-03  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Memory Region Attributes): Fix the wording.
	Suggested by Dmitry Sivachenko.

	* (<many nodes>): Fix the spelling and punctuation of "i.e.".

2002-02-01  Michael Snyder  <msnyder@redhat.com>

	* gdb.texinfo (set trust-readonly): Change value{gdbn} to value{GDBN}.

2002-01-30  Michael Snyder  <msnyder@redhat.com>

	* gdb.texinfo: (remote protocol): Gramatical fix-up.
	(set trust-readonly-sections): Document.

2002-01-29  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Releasing GDB): Revise and update.

2002-01-28  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	description of TARGET_BYTE_ORDER_DEFAULT.

2002-01-27  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo: Fix typos and markup.  From Dmitry Sivachenko
	<mitya@cavia.pp.ru>.

2002-01-23  Andrew Cagney  <ac131313@redhat.com>

	* libgdb.texinfo: Delete file.

2002-01-22  Andrew Cagney  <ac131313@redhat.com>

	* gdb.texinfo: Remove makeinfo 3.12 hacks.
	* gdbint.texinfo: Ditto.

Tue Jan 22 11:57:38 2002  Andrew Cagney  <cagney@redhat.com>

	* gdb.texinfo: Fix typo ``Remove' -> ``Remote''.

2002-01-22  Andrew Cagney  <ac131313@redhat.com>

	* Makefile.in: Update copyright.
	(TEXI2DVI): Define.
	(gdb.dvi, gdb.pdf, stabs.dvi, stabs.pdf): Use TEXI2DVI.
	(gdbint.dvi, gdbint.pdf): Use TEXI2DVI.  Add dependency on
	gdb-cfg.texi.
	(TEXINDEX, PDFTEX): Delete makefile variables.

2002-01-22  Andrew Cagney  <ac131313@redhat.com>

	* gdb.texinfo (Protocol): Move section to appendix.

2002-01-21  Andrew Cagney  <ac131313@redhat.com>

	* gdb.texinfo (Remote Debugging): Create a menu.
	(Top): Add ``Remote Debugging'' to menu.

2002-01-21  Andrew Cagney  <ac131313@redhat.com>

	* gdb.texinfo (Remote): Move the sub-section ``The GDB remote
	serial protocol'' from here.
	(Remote Debugging): To here.  New chapter.

2002-01-20  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	description of TARGET_BYTE_ORDER_SELECTABLE_P.

2002-01-20  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Host Definition): Revise.  xm-xyz.h and xyz.mh
	are no longer needed.
	(Porting GDB): Add maintainer note about configure.host.

2002-01-20  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Remove
	definition of IEEE_FLOAT.

2002-01-20  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo: Beautify copyright years; fix a typo.
	(DJGPP Native): Fix overfull hboxes in examples.  From Brian Youmans
	<3diff@gnu.org>

2002-01-19  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Host Definition): Remove references to
	MALLOC_INCOMPATIBLE.

2002-01-17  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Host Definition): Remove references to XDEPFILES
	and xyz-xdep.o.

2002-01-17  Andrew Cagney  <ac131313@redhat.com>

	* gdb.texinfo (Maintenance Commands): Add appendix.
	(Set Breaks): Copy ``maint info breakpoint'' doco to
	``Maintenance Commands'' appendix.  Add reference.

2002-01-17  Andrew Cagney  <ac131313@redhat.com>

	* fdl.texi: Remove next/prev from @node.

2002-01-17  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo: @include fdl.texi.  Fixes for overfull hboxes and
	for monstrous @multitable (from Brian Youmans).

	* fdl.texi: New file.

	* Makefile.in (SFILES_INCLUDED): Add fdl.texi.

2002-01-15  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Releasing GDB): New chapter.

2002-01-14  Andrew Cagney  <ac131313@redhat.com>

	* gdb.texinfo (Embedded Processors, Calling program functions):
	Obsolete references to a29k.

2002-01-13  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Coding): Review Cleanups section.  Examples
	examples.  Document that a code-block should do or discard its
	cleanups before exit.

2002-01-11  Michael Snyder  <msnyder@redhat.com>

	* gdb.texinfo (Choosing files): Change @samp to @file.

2002-01-05  Michael Snyder  <msnyder@redhat.com>

	* gdb.texinfo (--pid): Document new command line option (attach).

2002-01-07  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Tracepoints): Clarify that tracepoints need support
	in the stub.

2002-01-04  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Replace
	BIG_ENDIAN with BFD_ENDIAN_BIG.

2002-01-03  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Replace
	value_ptr with struct value pointer.

2002-01-02  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Free Software): Fix wording.

2001-12-31  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Free Software): New section ``Free Software Needs
	Free Documentation''.

2001-12-30  Eli Zaretskii  <eliz@gnu.org>

	* stabs.texinfo:
	* gdb.texinfo:
	* gdbint.texinfo:
	* libgdb.texinfo:
	* annotate.texi: Fix the application of GFDL in the Copyright notice.

2001-12-29  Michael Snyder  <msnyder@redhat.com>

	* gdb.texinfo (maint info sections): Fix typo.

2001-12-26  Michael Snyder  <msnyder@redhat.com>

	* gdb.texinfo (maint info sections): Document.

	* gdb.texinfo (info proc): Comment out documentation for
	'info proc' sub-options that are currently not implemented.

2001-12-20  Jim Blandy  <jimb@redhat.com>

	* gdbint.texinfo (TARGET_CHAR_SIGNED): Document.

2001-12-15  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Replace
	LITTLE_ENDIAN with BFD_ENDIAN_LITTLE.

2001-12-01  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Host Definition): Delete documentation on
	HOST_BYTE_ORDER.

2001-11-30  Jim Blandy  <jimb@redhat.com>

	* gdb.texinfo (Overlays): New chapter, documenting GDB's
	overlay support.  Add to top-level menu.

2001-11-26  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Command Syntax): Document C-o binding.

2001-07-26  Christopher Faylor  <cgf@redhat.com>

	* gdb.texinfo (Options): Eliminate attempt to explain .gdbinit/gdb.ini
	use since it is described in the referenced section.

	From Eli Zaretskii <eliz@gnu.org>
	* gdb.texinfo (Command Files): Reword to make gdb.ini requirement
	clearer when using DJGPP.

2001-11-24  Christopher Faylor  <cgf@redhat.com>

	* gdb.texinfo (File Options): Change description of -nx and gdb.ini to
	specifically refer to MS-DOS.
	(command files): Mention gdb.ini is only used on MS-DOS.

2001-11-21  Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Invoking GDB): Document --args.
	(Mode Options): Likewise.

2001-11-21  Jim Blandy  <jimb@redhat.com>

	* gdbint.texinfo (TARGET_RANGE_PROFITABLE_FOR_HW_WATCHPOINT):
	Delete documentation; this macro has been removed from the
	sources.

2001-11-13  Jim Blandy  <jimb@redhat.com>

	* gdbint.texinfo (COERCE_FLOAT_TO_DOUBLE): Clarify.

2001-11-06  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.texinfo (gdbarch_in_function_epilogue_p): Add documentation.

2001-11-05  Michael Snyder  <msnyder@redhat.com>

	* gdb.texinfo (info functions): Document use of backslash to
	quote regexp chars in function names such as "operator*()".

2001-11-01  Fred Fish  <fnf@redhat.com>

	* gdbint.texinfo (SOLIB_ADD): Document additional new
	"readsyms" arg.

2001-10-30  Don Howard  <dhoward@redhat.com>

	* gdb.texinfo: (Command Files) Added documentation for the
	behavior of gdb with input redirected from a file.

2001-10-28  Fred Fish  <fnf@redhat.com>

	* gdb.texinfo (auto-solib-add): Change docs to match
	implementation change.
	(auto-solib-limit): Add docs for new variable.

2001-10-15  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Function
	value_as_pointer renamed to value_as_address.

2001-10-15  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Default
	POINTER_TO_ADDRESS functions assume unsigned addresses.
	(INTEGER_TO_ADDRESS): Document.  Derive pragmatics section from a
	posting by Jim Blandy.

2001-10-12  Jim Blandy  <jimb@redhat.com>

	* Makefile.in (MAKEHTMLFLAGS): Remove -glossary; the most recent
	version of texi2html (1.64) doesn't support this flag any more.

2001-09-08  Mark Kettenis  <kettenis@gnu.org>

	* gdbint.texinfo (Host Definition): Remove description of
	MEM_FNS_DECLARED.

	* gdbint.texinfo (Host Definition): Remove description of R_OK.

	* gdbint.texinfo (Host Definition): Remove description of
	HAVE_SIGSETMASK.

2001-09-04  Elena Zannoni  <ezannoni@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Add
	explanation of TARGET_PRINT_INSN macro.

2001-08-30  Jim Blandy  <jimb@redhat.com>

	* gdb.texinfo (`add-symbol-file'): Correct synopsis.
	Explain what it means to load relocatable files.

2001-08-28  Jim Blandy  <jimb@redhat.com>

	* gdbint.texinfo: Bring the HTML `top' menu into sync with the
	info `top' menu.

Wed Aug 15 10:47:28 2001  Christopher Faylor <cgf@cygnus.com>

	* gdbint.texinfo: Add a cautionary note about macro use.

2001-08-02  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.texinfo: Explain omitting the hostname in the
	`target remote' command.

2001-07-30  Daniel Jacobowitz  <drow@mvista.com>

	* gdbint.texinfo: Remove extraneous START-INFO-DIR-ENTRY
	and END-INFO-DIR-ENTRY.

2001-07-28  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* gdb.texinfo (TUI Configuration): Rename tui configuration variables.

2001-07-25  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (libgdb): Rewrite.

2001-07-26  Eli Zaretskii  <eliz@gnu.org>

	* Makefile.in (gdbgui.dvi, gdb-gui, gdbgui.info): Targets deleted.

2001-07-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* gdb.texinfo (TUI): New chapter, document the TUI.
	(Mode Options): Document the -tui option.

2001-07-23  Mark Kettenis  <kettenis@gnu.org>

	* gdbint.texinfo (Host Definition): Remove description of
	NEED_POSIX_SETPGID.

2001-07-23  Eli Zaretskii  <eliz@gnu.org>

	* gdb.tex (DJGPP Native): New node, with descriptions of
	DJGPP-specific commands.

2001-07-19  John R. Moore  <jmoore@redhat.com>

	* gdbint.texinfo: Three misspellings.

2001-07-06  Andrew Cagney  <ac131313@redhat.com>

	* Makefile.in (refcard.dvi): Rewrite to avoid problems with empty
	`test` expressions on bash.  Problem reported by Colin Walters.

2001-07-04  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (User Interface): Update ui-out documentation to
	refelect recent UI/MI updates.

2001-07-04  Andrew Cagney  <ac131313@redhat.com>

	* gdb.texinfo (Mode Options): Mention the mi0 and mi1
	interpreters.

2001-06-15  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): GDBARCH is a C
	structure and not macros.
	(Host Definition): Document that much of this chapter is obsolete.
	(Target Architecture Definition): Update list of files that make
	up a target architecture.
	(Coding): Update.

2001-06-28  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Update
	EXTRACT_STRUCT_VALUE_ADDRESS and EXTRACT_STRUCT_VALUE_ADDRESS_P.
	The latter has been changed to a true predicate.

2001-06-17  Eli Zaretskii  <eliz@gnu.org>

	* annotate.texi: Add @noindent where needed.  From Dmitry
	Sivachenko <dima@Chg.RU>.
	* gdb.texinfo: Indexing fix.  From Dmitry Sivachenko.

2001-06-16  Andrew Cagney  <ac131313@redhat.com>

	* gdb.texinfo (Protocol): Fix typo.  Extra parenthesis.

2001-06-14  Andrew Cagney  <ac131313@redhat.com>

	* gdb.texinfo (Remote Protocol): Document that the ``!'' packet
	returns ``OK''.  Document that the ``R'' packet does not reply.

2001-06-13  Michael Snyder  <msnyder@redhat.com>

	* gdb.texinfo (Protocol): Add doc for new packet "qSymbol:".

2001-06-13  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Signals): Clarify the default setting of signal
	handling.

2001-05-14  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (CLEAR_DEFERRED_STORES): Delete stray @item
	(FRAME_ARGS_ADDRESS_CORRECT): Ditto.

2001-05-12  Andrew Cagney  <ac131313@redhat.com>

	* Makefile.in (GDBvn.texi): Set GDBVN from ../version.in.

2001-05-10  Eli Zaretskii  <eliz@gnu.org>

	* gdbint.texinfo (Clean Design and Portable Implementation):
	Renamed from "Clean Design".
	(Clean Design and Portable Implementation): Document portable
	methods of handling file names, and the associated macros.

2001-04-02  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Tracepoint Actions): Mention the "info scope"
	command and provide a cross-reference to its description.
	(Symbols): Note that "info scope" is useful for trace experiments.

2001-04-01  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Symbols): Document "info scope".
	(Tracepoints): New chapter.
	(Contributors): Update for v5.1.
	<All nodes>: Change "C++" to "C@t{++}".

	* gdbint.texinfo (User Interface): A new section about ui_out
	functions, based on text written by Fernando Nasser.

	* stabs.texinfo: Change Permissions to GFDL.  Update Copyright.

2001-03-26  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo: Change Permissions to GFDL.  Update Copyright.

	* gdbint.texinfo: Change Permissions to GFDL.  Update Copyright.

	* gdbgui.texinfo: Change Permissions to GFDL.  Update Copyright.
	Replace "GDB" with "@value{GDBN}".  Fix markup.

	* annotate.texi: Change Permissions to GFDL.  Update Copyright.

	* gdb.texinfo (Output Formats): Mention "info symbol" and provide
	a cross-reference to its description.
	(Symbols): Document "info symbol".

2001-03-21  Eli Zaretskii  <eliz@gnu.org>

	* gdbint.texinfo (Algorithms): New section "Watchpoints" and new
	subsection "x86 Watchpoints".
	(Target Architecture Definition): Document the macros
	I386_USE_GENERIC_WATCHPOINTS and TARGET_HAS_HARDWARE_WATCHPOINTS.
	(Native Debugging): Document I386_USE_GENERIC_WATCHPOINTS.

2001-03-20  Andrew Cagney  <ac131313@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Update
	definition of SOFTWARE_SINGLE_STEP_P to include empty parameter
	list.

2001-03-06  Kevin Buettner  <kevinb@redhat.com>

	* Makefile.in, all-cfg.texi, annotate.texi, gdb.texinfo,
	gdbint.texinfo, refcard.tex: Update/correct copyright notices.

2001-02-21  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Signals): Document "ignore", "noignore", and "all".

2001-02-11  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Environment): Document that `path' does not change
	the value of PATH in GDB's own environment (it did in the past,
	but that was changed on March 15, 1994).  Reported by Doug Evans
	<dje@transmeta.com>.

	* gdbint.texinfo: Fix up @itemize lists so that @item is alone on
	its line.  Fix markup of commands and macros.  Add an Index node
	and index entries.

2001-01-23  J.T. Conklin  <jtc@redback.com>

	* gdb.texinfo (Memory region attributes): New manual section.

2001-01-04  Nicholas Duffek  <nsd@redhat.com>

	* gdbint.texinfo (POP_FRAME): Document use by return_command.

2000-12-25  Eli Zaretskii  <eliz@gnu.org>

	* refcard.tex: Version and copyright fixed.  From Phil Edwards
	<pedwards@disaster.jaj.com>.

Thu Nov 30 16:57:19 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdbint.texinfo (ECOFF_REG_TO_REGNUM, DWARF_REG_TO_REGNUM,
	DWARF2_REG_TO_REGNUM): Document.

Mon Nov 20 21:29:35 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdbint.texinfo (Coding): Update current value of
	--enable-build-warnings.  Mention --enable-gdb-build-warnings.

2000-11-19  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Continuing and Stepping):  Fixed markup and typos,
	as suggested by Dmitry Sivachenko <dima@Chg.RU>.

2000-11-10  Christopher Faylor <cgf@cygnus.com>

	* gdb.texinfo: Document new 'set step-mode' command.

2000-10-16  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Contributors, MIPS Embedded): Minor spelling
	changes from Dmitry Sivachenko <dima@Chg.RU>.

2000-09-26  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Hooks): Document the new post-hook functionality.
	From Steven Johnson <sbjohnson@ozemail.com.au>.

2000-08-10  Mark Kettenis  <kettenis@gnu.org>

	* gdbint.texinfo (Overall Structure): Spelling fix.

2000-08-10  Eli Zaretskii  <eliz@gnu.org>

	* gdbint.texinfo (Target Architecture Definition): Document that
	REGISTER_CONVERT_TO_VIRTUAL should only be called on a register
	for which REGISTER_CONVERTIBLE returns a zero value.

2000-07-08  Christopher Faylor <cgf@cygnus.com>

	* Makefile.in (install-info): Find files to install in either the
	build or source directories (adapted from Makefile.am).

2000-07-07  Nicholas Duffek  <nsd@redhat.com>

	* stabs.texinfo: Fix spelling errors.
	(String Field): FILE-NUMBER starts from 0, not 1.

2000-07-05  Eli Zaretskii <eliz@gnu.org>

	* refcard.tex: Remove \centerline from the blurb.  Patch from
	Brian Youmans.

2000-06-25  Eli Zaretskii <eliz@gnu.org>

	* Makefile.in (install-info): Support installation from outside of
	the source directory.  Reported by Mark Harig
	<markh@frazier.landmark.com>.

2000-06-20  J.T. Conklin  <jtc@redback.com>

	* gdb.texinfo: Fix typo, $bpnum is set to last breakpoint number.

Fri May 26 15:55:33 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* Makefile.in (pdf, gdbint.pdf, gdb.pdf, stabs.pdf): New targets.
	Generate using pdftex.
	(PDFTEX): Define.
	(STAGESTUFF, maintainer-clean realclean): Add *.pdf.
	(gdb.texinfo, gdbint.texinfo, stabs.texinfo): When TeX insert the
	@contents at the start.

2000-05-24  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo: Remove duplicate @syncodeindex.  From Brian
	Youmans.

Wed May 24 21:27:58 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	From Brian Youmans:
	* gdb.texinfo: Fix ``et al.''.

Tue May 23 22:57:41 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* Makefile.in (refcard.dvi): Remove quotes around REFEDITS in for
	loop.

2000-05-19  Jimmy Guo  <guo@cup.hp.com>

	* configure: Regenerate.

2000-05-17  Eli Zaretskii  <eliz@gnu.org>

	* Makefile.in (install-info): Run install-info on installed Info
	files.

Fri May 12 20:18:04 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.texinfo: Add Stan Shebs, et.al. as authors.  Mention
	Andrew Cagney.

2000-05-09  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo: Proofreading changes from Brian Youmans.

2000-05-01  Nick Duffek  <nsd@cygnus.com>

	* gdb.texinfo (Command Files): Mention -x, use @enumerate for
	startup sequence, minor edits.

2000-05-01  Eli Zaretskii  <eliz@gnu.org>

	* annotate.texi: Remove "@syncodeindex fn cp", it causes grief in
	TeX.

	* gdb.texinfo: Add "@syncodeindex fn cp".  Convert all entries
	"@kindex f" into "@kindex f (foo)", otherwise we get index entries
	like `n' and `s' which look weird.  Convert some of the @kindex to
	@vindex, when they refer to variables, not commands.

Sat Apr 29 17:01:04 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdbint.texinfo (Hints): Do not use @value{GDBN in @nodes.

2000-04-23  Eli Zaretskii  <eliz@gnu.org>

	* Makefile.in (GDBMI_DIR): New variable.
	(SET_TEXINPUTS): Add $(GDBMI_DIR).
	(SFILES_DOC): Add $(GDBMI_DIR)/gdbmi.texinfo.
	(gdbmi.texinfo): New target, for texi2roff.
	(gdb.me, gdb.ms, gdb.mm): Depend on gdbmi.texinfo.
	(gdb.info, gdb_toc.html): Add "-I ${GDBMI_DIR}".

	* gdb.texinfo (Top): Add GDB/MI to the main menu and @include
	gdbmi.texinfo.
	(Mode Options): Add xref to GDB/MI docs and remove a FIXME
	comment.

2000-04-17  Elena Zannoni  <ezannoni@kwikemart.cygnus.com>

	* gdb.texinfo (Files): Update description of add-symbol-file
	command.

2000-04-17  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Porting GDB): Don't use @value in the node name, it
	prevents the build (and is generally a Bad Idea).

2000-04-17  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Protocol): Prevent makeinfo from complaining about
	a comma inside @var.
	(Command Files): Index markup changes from Dmitry Sivachenko
	<dima@Chg.RU>.

2000-04-16  Eli Zaretskii  <eliz@gnu.org>

	* Makefile.in (LN_S): Define.
	(gdb-cfg.texi, gdb.dvi, links2roff, inc-hist.texinfo): Don't
	invoke "ln -s" unless it is known to work.

	* configure.in (AC_PROG_LN_S): Add.

2000-04-14  Jim Blandy  <jimb@redhat.com>

	* gdbint.texinfo (Pointers Are Not Always Addresses): New manual
	section.
	(Target Conditionals): Document ADDRESS_TO_POINTER,
	POINTER_TO_ADDRESS.

2000-04-11  Daniel Berlin  <dan@cgsoftware.com>

	* gdbint.texinfo: Replaced GDB with @value{GDBN}, @include
	gdb-cfg.texi to get the value.

2000-04-10  Jim Blandy  <jimb@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Fix
	cross-references.

2000-04-08  Jim Blandy  <jimb@redhat.com>

	* gdbint.texinfo (Using Different Register and Memory Data
	Representations): New section.
	(REGISTER_CONVERTIBLE, REGISTER_RAW_SIZE, REGISTER_VIRTUAL_SIZE,
	REGISTER_VIRTUAL_TYPE, REGISTER_CONVERT_TO_VIRTUAL,
	REGISTER_CONVERT_TO_RAW): Document.

Mon Apr  3 19:16:32 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.texinfo (Protocol): Deprecate the sequence-id.  Add cindex
	for acknowledgments.

Tue Mar 28 18:28:45 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.texinfo (Protocol): Replace ``qfThreadExtraInfo'' with
	qThreadExtraInfo.

2000-03-28  J.T. Conklin  <jtc@redback.com>

	* gdb.texinfo: Clarify which remote debug protocol commands are
	required and which are optional.

Tue Mar 28 16:06:22 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.texinfo: Revert remainder of Fri Mar 24 18:06:34 2000 Andrew
	Cagney <cagney@b1.cygnus.com>.  Move @chapter and @node entries
	back to annotate.texi, rluser.texinfo and inc-hist.texinfo.
	* annotate.texi: Update.

2000-03-28  Stan Shebs  <shebs@apple.com>

	* gdb.texinfo: Update dates, bump to Eighth Edition (note
	expectation of additional changes before release), update
	ISBN, add copy of top-level menu for @ifhtml, remove explicit
	node links, rephrase and/or shorten lines to fix formatting
	problem in both regular and @smallbook formats.
	* annotate.texi: Shorten lines in example, use smallexample
	consistently everywhere.
	* Makefile.in: Add comment about texinfo 4.0 html generation.
	(SFILES_INCLUDED): Add annotate.texi.

2000-03-27  Daniel Berlin  <dan@cgsoftware.com>

	* gdb.texinfo (Debugging Output): Added new section, documenting
	the "set/show debug" commands.

Fri Mar 24 18:06:34 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* annotate.texi (Annotations): When GDBN omit @chapter and @node
	entry.

	* gdb.texinfo: Check for @ifinfo instead of @ifnottex.
	(rluser.texinfo, inc-hist.texinfo, annotate.texi): Add local
	@chapter and @node entries.

	* gdb.texinfo: Link all top-level nodes.

Fri Mar 24 17:56:48 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* Makefile.in (install-info): Create $(infodir) before installing
	files.

2000-03-23  Fernando Nasser  <fnasser@totem.to.cygnus.com>

	From David Whedon <dwhedon@gordian.com>
	* gdbint.texinfo : Added paragraphs about command deprecation.

2000-03-22  Daniel Berlin  <dan@cgsoftware.com>

      * gdb.texinfo: Add documentation for the apropos command.

2000-03-20  Michael Snyder  <msnyder@cleaver.cygnus.com>

	* gdb.texinfo: Add new queries ThreadInfo and ThreadExtraInfo.

2000-03-20  Michael Snyder  <msnyder@cleaver.cygnus.com>

	* gdb.texinfo: Add white space to prevent overprinting in
	two places.

2000-03-17  Stan Shebs  <shebs@apple.com>

	* gdb.texinfo: Many minor changes from Dmitry Sivachenko
	<dima@Chg.RU>, also clarification of allowed content for
	string constants.

2000-03-16  Eli Zaretskii <eliz@gnu.org>

	* gdb.texinfo (main menu): Add Annotations.
	(File Options): Add @cindex entries for each command-line option.
	Document --epoch, --annotate, --async, --interpreter, --write,
	--statistics, and --version.

	* annotate.texi: Convert to a chapter.  Use @value{GDBN} instead
	of GDB.

2000-02-23  Jim Blandy  <jimb@redhat.com>

	* gdbint.texinfo (FUNCTION_START_OFFSET): Document.

2000-02-22  Jim Blandy  <jimb@redhat.com>

	* gdbint.texinfo: Document COERCE_FLOAT_TO_DOUBLE --- the new form.

2000-02-15  Jason Molenda  (jsm@bugshack.cygnus.com)

	* Makefile.in (diststuff): New target.

2000-02-15  Kevin Buettner  <kevinb@redhat.com>

	* agentexpr.texi: Fix wording regarding Intel's IA-64
	architecture.  [From Jim Wilson.]

2000-01-16  Tom Tromey  <tromey@cygnus.com>

	* gdb.texinfo (Breakpoints): Mention breakpoint ranges.
	(Delete Breaks): Mention range arguments.
	(Disabling): Likewise.

2000-01-05  Dmitry Sivachenko <dima@Chg.RU>

	* gdb.texinfo:  Wrap "ASCII" in @sc{}; clarify a few sentences.

Wed Dec  8 19:53:08 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdbint.texinfo (FRAME_CHAIN_VALID): Add the generic frame-chain
	valid functions.

1999-11-05  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.texinfo: Clarify regular expressions used in rbreak.

1999-10-15  Kevin Buettner  <kevinb@cygnus.com>

	* gdbint.texinfo (MEMORY_INSERT_BREAKPOINT,
	MEMORY_REMOVE_BREAKPOINT):  Document.

Thu Oct 14 21:17:17 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.texinfo (remote): Document how GDB ignores the qOffsets BSS
	offset re-using the DATA offset instead.

1999-10-11  Jim Kingdon  <kingdon@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Add PARM_BOUNDARY.

1999-10-05  Stan Shebs  <shebs@andros.cygnus.com>

	From Dmitry Sivachenko <demon@gpad.ac.ru>:
	* gdb.texinfo: Use GDBP and GDBN everywhere, fix a couple other
	typos.

	* gdb.texinfo: Various minor wording and formatting improvements,
	mentions of additional command-line options.

1999-09-30  Fred Fish  <fnf@cygnus.com>

	* gdb.texinfo:  Document additional forms of specifying section
	names and addresses for the add-symbol-file command.

1999-09-14  Michael Snyder  <msnyder@cleaver.cygnus.com>

	* gdbint.texinfo: Fix typo, add the word "have".

1999-09-14  Jim Blandy  <jimb@cris.red-bean.com>

	* gdbint.texinfo (Target Architecture Definition): Document the
	SKIP_PERMANENT_BREAKPOINT macro.

1999-09-07  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.texinfo: Fiks speling errers.

	* gdb.texinfo: Fix uses of @multitable.

	From Eli Zaretskii  <eliz@gnu.org>:
	* gdb.texinfo: Include details specific to DOS host, clarify
	some confusing language, fix @ref/@xref/@pxref usages, add
	comments about using with optimization, add more indexing,
	fix info about disassembly-flavor.

Tue Sep  7 09:11:24 1999  Kevin Buettner  <kevinb@cygnus.com>

	* gdbint.texinfo (IN_SOLIB_DYNSYM_RESOLVE_CODE,
	SKIP_SOLIB_RESOLVER): Define.

Fri Sep  3 18:05:14 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdb.texinfo (Protocol): Review.  Add tables describing ``q'' and
	``g'' packets.

1999-08-30  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.texinfo: Create a new "Configurations" chapter with
	platform-specific info, inline remote.texi and move sections of it
	into the new chapter, move bits about info proc, heuristic search,
	and register stack into the new chapter.
	* remote.texi: Remove, now part of gdb.texinfo.
	* Makefile.in (SFILES_INCLUDED): Remove ref to remote.texi.

1999-08-27  Jason Molenda  (jsm@bugshack.cygnus.com)

	* gdbint.texinfo (GDB_TARGET_IS_SUN3, GDB_TARGET_IS_SUN386,
	GDB_TARGET_IS_MACH386): These kludges have gone away.

Wed Aug 25 10:47:03 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdbint.texinfo (Target Architecture Definition): Mention
	TDEPLIBS.

1999-08-20  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.texinfo: Remove remaining "HPPA" conditionals, rewrite
	surrounding text to fit HP-UX bits into general info.
	(HPPA-cfg.texi): Remove, no longer useful.

	* gdb.texinfo: Remove explicit links from @node lines, remove
	HP-added "Detailed Node Listing" from main menu which confuses
	things.

	From Dmitry Sivachenko <dima@Chg.RU>:
	* gdb.texinfo: Use @value{GDBN} instead of plain GDB, fix grouping
	in description of `set environment'.

1999-08-17  Stan Shebs  <shebs@andros.cygnus.com>

	* gdbint.texinfo: Update coding standard to allow pure ANSI/ISO C.

1999-08-12  Ben Elliston  <bje@cygnus.com>

	* gdbint.texinfo (Breakpoint Handling): Add missing words.

1999-08-10  Eli Zaretskii  <eliz@gnu.org>

	* gdb.texinfo (Set Watchpoints): Explain some subtleties about
	watch, awatch, and rwatch.  Explain why the latter two cannot be
	set as software watchpoints.  Document that watchpoints for local
	variables are deleted when the debuggee terminates.

Wed Aug 11 13:18:14 1999  Andrew Cagney  <cagney@amy.cygnus.com>

	* remote.texi (Protocol): Further clarification of the "qRcmd"
	packet.  Allow E.. response packet.  "qRcmd" packet is no longer
	reserved.

1999-08-10  Elena Zannoni  <ezannoni@kwikemart.cygnus.com>

	* Makefile.in: Rename inc-hist.texi to inc-hist.texinfo.
	* gdb.texinfo: Ditto.

1999-08-06  Tom Tromey  <tromey@cygnus.com>

	* gdb.texinfo (KOD): New node.

Fri Aug  6 17:05:48 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* remote.texi (Rcmd): Fix minor formatting typos.

Thu Aug  5 17:57:41 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* remote.texi (protocol qRcmd): Allow ``OK'' and ``O...'' response
	packets.

1999-07-14  Jim Blandy  <jimb@zwingli.cygnus.com>

	* gdbint.texinfo (PREPARE_TO_PROCEED, ADDR_BITS_REMOVE): Doc
	fixes.

Tue Jun 29 11:43:55 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdbint.texinfo (SAVE_DUMMY_FRAME_TOS): Define.

Fri Jun 25 11:47:06 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* remote.texi (Communication Protocol): ``v'' is in use. Fix
	numerous formatting errors.  Clarify ``i''.  Mark ``i'', ``Z'',
	``z'' and ``qRcmd'' as draft instead of reserved.  Identify
	packets that are not supported on all hosts. Expand examples.
	Spell check.

1999-06-24  Jason Molenda  (jsm@bugshack.cygnus.com)

	* Makefile.in: Recognize html, install-html.  Add targets
	to build HTML versions of documentation via texi2html.

Thu Jun 24 15:59:03 1999  Stan Shebs  <shebs@andros.cygnus.com>

	* gdbint.texinfo (Testsuite): New chapter, information about the
	testsuite.

Fri Jun 25 02:40:34 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* remote.texi (Communication Protocol): Rewrite.

Thu Jun 24 16:59:54 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* stabs.texinfo: Fix uses of xref.

Thu Jun 17 17:23:25 1999  Stan Shebs  <shebs@andros.cygnus.com>

	* gdbint.texinfo: Add an anti-printf exhortation, and update the
	info about patch submission.

Mon Jun  7 15:49:40 1999  Stan Shebs  <shebs@andros.cygnus.com>

	From Per Bothner  <bothner@cygnus.com>:
	* gdb.texinfo: Document Chill support.

Fri Jun  4 16:58:22 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdbint.texinfo (SP_REGNUM, FP_REGNUM, PC_REGNUM): Add reference
	to corresponding TARGET_READ_reg TARGET_WRITE_reg macros.
	Document that the value should be greater-than or equal-to zero.
	(NO_STD_REGS): Document. Deprecate.

Tue Jun  1 15:04:15 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdbint.texinfo (TARGET_COMPLEX_BIT, TARGET_DOUBLE_COMPLEX_BIT):
	Document that these are not used.

Thu May 27 09:28:15 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdbint.texinfo (EXTRACT_STRUCT_VALUE_ADDRESS_P): Document.

Mon May 24 10:07:39 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdbint.texinfo (FRAME_NUM_ARGS): Update definition.  Parameter
	numargs was dropped.

Thu May 20 12:26:59 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdbint.texinfo (FRAMELESS_FUNCTION_INVOCATION): Update.

Tue Apr 27 19:14:20 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdbint.texinfo (SKIP_PROLOGUE, SKIP_PROLOGUE_FRAMELESS_P):
	Update.

Thu Apr 22 13:07:37 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdbint.texinfo (USE_GENERIC_DUMMY_FRAMES): Document.
	(GET_SAVED_REGISTER): Update, not just the a29k uses this.

Wed Apr 21 13:59:01 1999  Dave Brolley  <brolley@cygnus.com>

	* gdbint.texinfo: Fix typos: $ -> @.

Tue Apr 20 11:59:38 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdbint.texinfo (REGISTER_NAMES, BREAKPOINT, BIG_BREAKPOINT,
	LITTLE_BREAKPOINT, LITTLE_REMOTE_BREAKPOINT,
	BIG_REMOTE_BREAKPOINT): Deprecate in favor of REGISTER_NAME and
	BREAKPOINT_FROM_PC.

Mon Apr 12 16:00:44 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdbint.texinfo (CALL_DUMMY_STACK_ADJUST_P,
	CALL_DUMMY_STACK_ADJUST): Document.

Thu Apr  8 17:23:15 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdbint.texinfo (CALL_DUMMY_P, CALL_DUMMY_WORDS,
	SIZEOF_CALL_DUMMY_WORDS, CALL_DUMMY): Define.

1999-04-02  Stan Shebs  <shebs@andros.cygnus.com>

	* gdbint.texinfo (MAINTENANCE_CMDS): Remove ref, since it no
	longer exists.

Tue Mar  9 19:25:11 1999  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.texinfo, remote.texi, all-cfg.texi, HPPA-cfg.texi: Remove
	nearly all @ifset/@ifclear conditionals; nobody uses them, and
	they make the manual source incomprehensible.
	* h8-cfg.texi: Remove, hasn't been used in years.

Thu Feb 11 18:00:59 1999  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.texinfo: Update the credits.

Mon Feb  8 17:33:57 1999  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.texinfo: Fix mistakes noticed in printout of last
	draft, add Alpha to discussion of heuristic fence post.

Fri Feb  5 17:20:00 1999  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.texinfo, remote.texi: Many changes; update to Seventh
	Edition, merge some HP changes into mainline, describe some
	previously undocumented features, describe more of the target
	commands available, eliminate obsolete section on renamed
	commands.
	* all-cfg.texi, HPPA-cfg.texi: Remove some obsolete conditionals.

Wed Jan 20 17:47:45 1999  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.texinfo: Make many HPPA conditionals unconditional,
	including catchpoint description, since now on for all configs.
	* all-cfg.texi: @clear HPPA, since is mainly for very HP-specific
	specializations.

Thu Jan 14 17:10:12 1999  Stan Shebs  <shebs@andros.cygnus.com>

	* Makefile.in (GDBvn.texi): Fix match expression to work with
	current format of VERSION in gdb/Makefile.in.
	* gdb.texinfo: Fix node ref to match new readline.

Wed Jan 13 10:38:40 1999  Edith Epstein  <eepstein@sophia.cygnus.com>

	* gdb.texinfo: Changes made as part of a project to merge in
	  changes made by HP. Documentation makes extensive use of
	  @ifclear HPPA and @ifset HPPA. The HP manual omits doumentation
	  on remote debugging. There are differences in documentation
	  (HP vs.  non-HP) on C++ support (aCC vs. gnu gcc++). Also,
	  the HP manual discusses catchpoints, hardware watchpoints, and
	  some HPUX specific limitations for shared library support.

	  There are also a number of @node changes.

1999-01-12  Jason Molenda  (jsm@bugshack.cygnus.com)

	* gdbint.texinfo (Formatting): Disambiguate a sentence.
	(C Usage): Same.

Wed Jan  6 11:55:34 1999  David Taylor  <taylor@texas.cygnus.com>

	The following changes were made by Edith Epstein
	<eepstein@cygnus.com> as part of a project to merge in changes
	made by HP.

	* HPPA-cfg.texi: new file.

	* all-cfg.texi: set HPPA for HP PA-RISC targets.

	* refcard.tex: change documentation about catch.
	  removed info catch.

Mon Jan  4 18:29:18 1999  Stan Shebs  <shebs@andros.cygnus.com>

	* gdbint.texinfo: Expand on GDB's coding standards,
	specify the use of arg names with prototypes.

1998-12-14  J.T. Conklin  <jtc@redbacknetworks.com>

	* gdb.texinfo: Fix tipo.

Sun Dec 13 10:27:59 1998  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdbint.texinfo: Document TARGET_BYTE_ORDER_DEFAULT and
	TARGET_BYTE_ORDER_SELECTABLE_P.

Thu Dec 10 16:07:09 1998  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdbint.texinfo (FRAME_FIND_SAVED_REGS): Document.

1998-12-09  Jim Blandy  <jimb@zwingli.cygnus.com>

	* agentexpr.texi: New file.

Wed Dec  9 21:13:57 1998  Andrew Cagney  <cagney@chook>

	* gdbint.texinfo (REGISTER_NAME): Replace REGISTER_NAMES.

1998-12-03  J.T. Conklin  <jtc@redbacknetworks.com>

	* remote.texi: Changed wording that implied that the GDB remote
	protocol caches register values instead of GDB itself.

Tue Dec  1 17:45:43 1998  Stan Shebs  <shebs@andros.cygnus.com>

	* gdbint.texinfo: Add some info about symbol readers.
	(CHILL_PRODUCER, etc): Comment out descriptions, not useful.
	(IN_SOLIB_CALL_TRAMPOLINE): Rename info from IN_SOLIB_TRAMPOLINE.
	(IN_SOLIB_RETURN_TRAMPOLINE): Describe.
	(KERNEL_DEBUGGING, MIPSEL): No info about these, remove.

Mon Nov 30 11:32:21 1998  Andrew Cagney  <cagney@chook>

	* gdbint.texinfo (FRAME_CHAIN_VALID_ALTERNATE):

Sat Nov 28 13:45:53 1998  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdbint.texinfo (INNER_THAN): Update, now takes parameters.

Fri Nov 27 12:39:45 1998  Andrew Cagney  <cagney@chook>

	* gdbint.texinfo (NO_SINGLE_STEP): Replace with
	SOFTWARE_SINGLE_STEP_P and SOFTWARE_SINGLE_STEP.

Wed Oct 14 10:02:40 1998  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdbint.texinfo: Fix minor typos.

Wed Sep 30 18:03:19 1998  Stan Shebs  <shebs@andros.cygnus.com>

	* gdbint.texinfo: Complete overhaul.  Group descriptions more
	logically, add more info on generic algorithms, remove much
	obsolete and/or wrong material.

Fri Jul 24 17:51:38 1998  Ian Lance Taylor  <ian@cygnus.com>

	* stabs.texinfo (Method Type Descriptor): Expand and correct.

Mon May  4 10:37:12 1998  Brian Youmans (3diff@gnu.org)

	* refcard.tex:  Copyright, address updates.

Tue Apr 21 18:09:56 1998  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.texinfo (EDITION, DATE): Update and change to use ordinals
	for the edition instead of confusing GDB-version-like numbers.

Mon Apr 13 14:05:00 1998  Fred Fish  <fnf@cygnus.com>

	* gdb.texinfo (hbreak, watch): Fix typo, "date" -> "data".

Thu Apr  2 16:52:44 1998  Jason Molenda  (crash@bugshack.cygnus.com)

	* LRS: Reformat a bit to keep text under 80 columns.

Thu Apr  2 16:10:36 1998  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.texinfo: Add some credits, mention bug monitor.
	* remote.texi: Mention mips monitor targets.
	* gdbint.texinfo: Describe SP_REGNUM, STEP_SKIPS_DELAY.

Mon Feb  2 17:13:03 1998  Stan Shebs  <shebs@andros.cygnus.com>

	* gdbint.texinfo: Remove obsolete mentions of pinsn.c and opcode.h
	files, finish sorting of host vs target vs native macros, describe
	some more of them.

Tue Jan 13 16:44:50 1998  Fred Fish  <fnf@cygnus.com>

	* gdbint.texinfo (Host Conditionals): Document change from
	using NO_MMALLOC to it's inverse, USE_MMALLOC.

Mon Nov 24 13:55:21 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* gdbint.texinfo (Host Conditionals): Document
	PRINTF_HAS_LONG_DOUBLE, SCANF_HAS_LONG_DOUBLE, HAVE_LONG_DOUBLE.

Fri Jul  4 14:52:31 1997  Ian Lance Taylor  <ian@cygnus.com>

	* gdbint.texinfo (Host Conditionals): Add CRLF_SOURCE_LINES.
	Document LSEEK_NOT_LINEAR.

Tue Mar 25 14:44:09 1997  Ian Lance Taylor  <ian@cygnus.com>

	* stabs.texinfo (Stab Section Basics): Make it clear that only
	some versions of the GNU linker remove the leading N_UNDF symbol.

Thu Feb 27 17:45:19 1997  Ian Lance Taylor  <ian@cygnus.com>

	* stabs.texinfo (String Field): Document type number pairs here,
	instead of in the Sun specific section.
	(Include Files): The GNU linker supports the N_BINCL
	optimization.  Clarify the N_BINCL value, and what it is used
	for.
	(Procedures): Document N_FUN with an empty string to mark the end
	of a function.
	(Typedefs): Mention that Sun compilers may use N_GSYM for a type.
	(Sun Differences): Remove this node, as the information is now
	elsewhere in the main document.
	(Stab Section Basics): Mention that the GNU linker may optimize
	stabs and remove the leading N_UNDF symbol.

Mon Dec  9 12:23:32 1996  Roland Pesch  <roland@wrs.com>

	* gdb.texinfo, refcard.tex: Restore author credit

Wed Oct  2 22:01:36 1996  Fred Fish  <fnf@fishfood.ninemoons.com>

	* gdbint.texinfo (SIGTRAMP_START, SIGTRAMP_END): Update
	documentation to account for START and END macros taking
	one arg.

Thu Aug 22 17:59:03 1996  Fred Fish  <fnf@cygnus.com>

	From: Eberhard Mattes <mattes@azu.informatik.uni-stuttgart.de>
	* gdb.texinfo (Frames): Fix typo.

Tue Jul 23 10:06:20 1996  Fred Fish  <fnf@cygnus.com>

	* gdbint.texinfo (NO_SINGLE_STEP): Document that single_step takes
	a target_signal as arg type, not a pid.

Fri Jul 12 11:10:05 1996  Stu Grossman  (grossman@critters.cygnus.com)

	* gdb.texinfo:  Document `set assembly-language'.

Thu Jul 11 13:50:28 1996  Stan Shebs  <shebs@andros.cygnus.com>

	* remote.texi: Update list of stubs in the GDB distribution.

Fri Jul  5 15:38:54 1996  Fred Fish  <fnf@cygnus.com>

	* gdbint.texinfo (NO_MMCHECK): Renamed from NO_MMALLOC_CHECK.
	Also document that some systems can use mmalloc but must define
	this if their C runtime allocates memory that is later freed.
	(MMCHECK_FORCE): Document new macro.

Fri Jun 28 22:17:10 1996  Dawn Perchik  <dawn@cygnus.com>

	* remote.texi: Add documentation for target Sparclet.

Mon Jun 24 18:12:22 1996  Jason Molenda  (crash@godzilla.cygnus.co.jp)

	* Makefile.in (srcdir, VPATH, prefix, infodir, INSTALL,
	INSTALL_PROGRAM, INSTALL_DATA): Use autoconf set values.
	* configure.in: Rewritten for autoconf.
	* configure: New.

Mon Jun 17 10:43:41 1996  Fred Fish  <fnf@cygnus.com>

	* Makefile.in (DVIPS): New define, set to dvips.
	(dvi): Add stabs.dvi.
	(ps): New target.
	(all-doc): Depend on info, dvi, and ps targets.
	(STAGESTUFF): Add *.ps and *.dvi files.
	(clean-info, clean-dvi): Remove.
	(mostlyclean): Does not depend upon clean-info or clean-dvi,
	rules completely rewritten.
	(maintainer-clean): Remove clean-info and clean-dvi
	dependencies and put their actions in the rules.
	(gdb.ps): New target
	(gdb.dvi, gdbgui.dvi, gdbint.dvi, stabs.dvi): Remove
	intermediate TeX files, whether they have 2 or 3 character
	extensions.
	(gdbint.ps): Add target and rules.
	(gdb-internals): Delete unused target.
	(Makefile): Depends upon config.status also.

Sat Mar 30 15:46:58 1996  Fred Fish  <fnf@cygnus.com>

	* gdbint.texinfo (CC_HAS_LONG_LONG): Clarify when/how this is
	set.

Sat Mar 16 15:10:20 1996  Fred Fish  <fnf@cygnus.com>

	From Peter Schauer <Peter.Schauer@Regent.E-Technik.TU-Muenchen.DE>
	* gdb.texinfo (Expressions): Fix erroneous array constant example.

Sat Mar 16 13:28:45 1996  Fred Fish  <fnf@cygnus.com>

	* gdb.texinfo: Add missing "@bullet" to some "@itemize" commands.

Sat Feb 10 03:28:36 1996  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.texinfo (Print settings):  Document
	`set/show print static-members' commands.

Wed Jan 10 14:16:37 1996  Fred Fish  <fnf@cygnus.com>

	* gdbint.texinfo (Native): Document name change, coredep.c to
	core-aout.c.

Wed Dec 13 12:35:28 1995  Ian Lance Taylor  <ian@cygnus.com>

	* stabs.texinfo (Include Files): Document the values the SunOS4
	linker creates for N_BINCL/N_EINCL/N_EXCL stabs.

Fri Dec  8 21:08:44 1995  Fred Fish  <fnf@cygnus.com>

	* gdbint.texinfo (Releases): Change gdb.tar.Z to gdb.tar.gz.
	Fix typo.

Fri Dec  1 11:07:50 1995  Fred Fish  <fnf@cygnus.com>

	* gdbint.texinfo (Releases): Make "gdb.tar.gz" rather than
	"gdb.tar.Z".

Wed Sep 20 13:14:10 1995  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.in (maintainer-clean): New target, synonym for
	realclean.

Thu Aug  3 10:45:37 1995  Fred Fish  <fnf@cygnus.com>

	* Update all FSF addresses except those in COPYING* files.

Wed Jul 19 18:43:03 1995  Stan Shebs  <shebs@andros.cygnus.com>

	From Richard Earnshaw (rearnsha@armltd.co.uk):
	* gdb.texinfo (convenience variables): Document $_exitcode.
	(quit): Document optional expression to use as exit code.

Thu Jun 22 21:27:33 1995  Victoria Mixon  <victoria@cygnus.com>

	* gdb.texinfo, remote.texi: Brought up to date with various
	GDB changes.

Tue Jun 20 14:35:38 1995  Stan Shebs  <shebs@andros.cygnus.com>

	* gdb.texinfo: Update dates and versions, fix comments about
	hardware watchpoints in future releases and about the
	sharedlibrary command.

Mon May  8 09:30:36 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo: Remove node `XCOFF differences'.  Describe value of
	C_FUN stab.  Other cleanups.

Wed Apr 19 07:02:19 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* remote.texi (Bootstrapping): Clarify that flush_i_cache is only
	for the sparc stub.

Tue Apr 11 11:41:49 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* annotate.texi: Clarify which addresses have differing formats
	depending on the language and which do not.

Tue Mar 28 16:56:22 1995  J.T. Conklin  <jtc@rtl.cygnus.com>

	* remote.texi (NetWare): Changed example to use BOARD= instead of
	  NODE= argument to reflect correspoding change to gdbserve.nlm.

Fri Mar 17 06:47:02 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Negative Type Numbers): Mention the fact that
	GDB, as well as AIX dbx, supports the size type attribute.

Thu Mar 16 12:11:32 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Negative Type Numbers): Document types -31 to -34.

Mon Mar 13 16:49:13 1995  Per Bothner  <bothner@kalessin.cygnus.com>

	* gdb.texinfo (Define):  Document $arg0... arguments to commands,
	and new 'if' and 'while' commands.

Fri Feb 17 15:24:35 1995  Per Bothner  <bothner@kalessin.cygnus.com>

	* gdb.texinfo (Artificial arrays):  Note use of coerce-to-array-type.

Wed Feb 15 11:59:18 1995  J.T. Conklin  <jtc@rtl.cygnus.com>

	* all-cfg.texi: New flag, GDBSERVE, for NetWare's gdbserve.nlm.
	* remote.texi (NetWare): New node, how to use gdbserve.nlm on
	  NetWare targets.  Mostly stolen from the Server node.

Fri Feb 10 20:20:08 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.texinfo (Setting): Talk about the language of a source file
	versus the working language.  The old documentation did not match
	what GDB did.

Wed Feb  1 20:26:36 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Source Files): Document N_SO used to mark the end
	of a source file.

Mon Jan 23 14:23:37 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.texinfo (Processes): New node.

Tue Jan 17 14:09:03 1995  Ian Lance Taylor  <ian@sanguine.cygnus.com>

	* remote.texi: Update documentation of set/show mipsfpu.

Fri Jan  6 17:17:28 1995  Stan Shebs  <shebs@andros.cygnus.com>

	* gdbgui.texinfo: New file, manual for GUI (gdbtk) users.
	* Makefile.in (gdbgui.dvi, gdbgui.info): New actions.

Sun Sep  4 16:47:21 1994  Stan Shebs  (shebs@andros.cygnus.com)

	* gdbint.texinfo: Removed mentions of some incorrectly placed and
	obsolete conditionals, described some others.

Mon Aug  1 15:42:39 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdbint.texinfo: Remove references to BROKEN_LARGE_ALLOCA and
	SET_STACK_LIMIT_HUGE; they were removed from GDB 14 May 1994.

Mon Aug  1 15:12:02 1994  Stan Shebs  (shebs@andros.cygnus.com)

	* gdbint.texinfo: Put regex conditionals in their own table.

Tue Jul 26 18:32:52 1994  Stan Shebs  (shebs@andros.cygnus.com)

	* gdbint.texinfo: Removed mentions of many obsolete conditionals,
	described or fixed the descriptions of many others.

Sun Jul 17 14:14:03 1994  Stan Shebs  (shebs@andros.cygnus.com)

	* gdb.texinfo: Add some more credits.
	* gdbint.texinfo: Capitalize GDB consistently, describe some
	macros and remove some.

Thu Jul 14 18:43:17 1994  Stan Shebs  (shebs@andros.cygnus.com)

	* gdbint.texinfo: Removed mentions of many incorrectly placed and
	obsolete conditionals, described some others.

Tue Jul 12 12:23:15 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.texinfo (help targets):  Changed to `help target', which
	is the correct gdb command.

Wed Jun 22 18:00:51 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* annotate.texi (TODO): New node, for keeping track of annotations
	suggested but not yet implemented.

Wed Jun  1 16:10:45 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Statics): Value of xcoff C_BSTAT points to
	another symbol, it is not the address itself.

Thu May  5 20:23:36 1994  Stan Shebs  (shebs@andros.cygnus.com)

	* stabs.texinfo (Stab Section Basics): Add comment about alignment
	of stabs-in-coff sections.

Wed May  4 06:26:11 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* annotate.texi: Change edition to 0.5 and date to May 1994.
	Add index.
	(Frames): New node, for frame annotation.
	(Displays): New node, for display annotation.

	* remote.texi (MIPS Remote): Say that set timeout doesn't apply
	when waiting for your program to stop.

Fri Apr 29 18:24:46 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* annotate.texi (Breakpoint Info): Document annotation of header
	fields and record annotation.

Thu Apr 28 07:44:28 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* annotate.texi: New file, to document annotations.

Thu Apr 21 14:20:51 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* Makefile.in (clean): Don't remove GDBvn.texi (apparently on Jan
	16 I meant to make this change but did not).  Do remove gdb-cfg.texi.

Wed Apr 20 11:22:48 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Stab Section Basics): Say what is in .stab
	section, and say n_strx field is compilation unit relative.
	* stabs.texinfo: Don't use @code for a.out when it is the name of
	an object file format.

Wed Apr 13 20:29:54 1994  Jim Kingdon  (kingdon@deneb.cygnus.com)

	* gdb.texinfo: Refer to file names, not path names, per rms
	convention.
	(Arguments): Fix typo.

Thu Mar 24 08:09:12 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Global Variables): Talk about stabs in files
	where variables are referenced, but not defined.

Wed Mar 23 07:16:36 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo: Move stuff on @ and # type descriptors from node
	Cplusplus to new nodes Member Type Descriptor and Method Type
	Descriptor.  Re-write stuff for #.

Wed Mar 16 08:20:19 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.texinfo (Print Settings): Don't document "set print
	fast-symbolic-addr off".  The bug which it worked around was fixed
	on 25 Feb 94 in coffread.c, so I'm nuking the command.

	* stabs.texinfo (Alternate Entry Points): New node, rewritten from
	N_ENTRY node.

	* stabs.texinfo (Type Descriptors): Add 'Y' type descriptor.

Tue Mar 15 08:43:02 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdbint.texinfo (Host Conditionals, Target Conditionals): Remove
	references to ieee-float.c.

Fri Mar 11 08:09:40 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.texinfo (Set Breaks): Update documentation for tbreak to
	match what the code actually does.

Wed Mar  9 19:43:05 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Symbol Descriptors): Add OS9000 symbol descriptor s.

Tue Mar  1 17:04:43 1994  Jim Kingdon  (kingdon@deneb.cygnus.com)

	* stabs.texinfo (Type Descriptors): Add OS9000 type descriptors c,
	i, and b.

Wed Feb 23 10:44:18 1994  Jim Kingdon  (kingdon@rtl.cygnus.com)

	* stabs.texinfo: Document N_RBRAC as function relative for COFF as
	well as for ELF and SOM.  Unify the descriptions of ELF and SOM
	as "stabs in sections" rather than just saying "ELF and SOM".
	Also make that stuff apply to COFF.

Fri Feb 18 08:25:58 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.texinfo (Formatting Documentation): Change GhostScript to
	Ghostscript.

Fri Feb  4 06:31:31 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.texinfo (Continuing and Stepping): When talking about "step"
	versus functions without line numbers, also mention stepping into
	them as well as "step" when you are in them.  Tell the user how to
	deal with the situation.  Add comment about "debugging information".

Thu Feb  3 11:39:59 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Enumerations): Document restriction on where
	enumeration types can appear and still win with GDB.

Wed Feb  2 11:29:17 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Negative Type Numbers): Document format for type
	-16.

Thu Jan 27 16:53:56 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.texinfo (Selection, Frame Info): Update information about
	arbitrary frame specficiations.

Wed Jan 26 15:31:57 1994  Roland H. Pesch  (pesch@fowanton.cygnus.com)

	* gdb.texinfo, remote.texi: general editing pass prior to Net release

Tue Jan 25 12:12:04 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (String Field): Discuss continuing stabs with ?.

Wed Jan 19 06:39:24 1994  David J. Mackenzie  (djm@thepub.cygnus.com)

	* stabs.texinfo (Non-Stab Symbol Types): Mention N_SET* | N_EXT.

Sun Jan 16 12:43:32 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo: Re-do stuff about C_BSTAT and move from XCOFF
	Differences node to Statics node.
	(Statics): Discuss XCOFF use of V symbol descriptor.

	* Makefile.in: Remove refcard.dvi and GDBvn.texi in realclean,
	not clean.

Wed Jan 12 21:29:54 1994  John Gilmore  (gnu@cygnus.com)

	* gdb.texinfo (Print Settings): Document `set print
	fast-symbolic-addr' and improve the doc for some other
	`set print's.

Mon Jan  3 17:23:07 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (String Field): Talk about defining several type
	numbers at once.
	Fix lint regarding changing node ELF Transformations to
	ELF and SOM Transformations.

Fri Dec 31 00:42:43 1993  John Gilmore  (gnu@cygnus.com)

	* stabs.texinfo:  Insert Peter Kessler's name as inventor (I think).

Tue Dec 28 09:30:40 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Cross-References): `::' is for nested types only
	within <>.
	(Structures): Document static members.

Mon Dec 27 13:55:04 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo: Document S type attribute.

Sun Dec 26 20:46:36 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* stabs.texinfo: Add notes about stabs-in-som where appropriate.

Fri Dec  3 19:13:19 1993  John Gilmore  (gnu@cygnus.com)

	* gdbint.texinfo:  Fix a few typos.

Sun Nov 28 18:06:25 1993  Roland H. Pesch  (pesch@fowanton.cygnus.com)

	* gdb.texinfo, remote.texi: formatting improvements

	* gdb.texinfo (New Features): mention threads.
	(Summary, C): fix xrefs in newly contributed text.
	(Threads): index entries, clarifications, example
	(passim): minor typos fixed, phrasing improvements

	* remote.texi (Bootstrapping): rephrase text on ^C and add index
	entries; (Server): explain use of gdbserver w/real-time systems,
	add example of conflicting TCP port; (MIPS Remote) break up
	running text into table, highlighting commands, and add example.

Wed Nov 24 14:15:56 1993  Roland H. Pesch  (pesch@fowanton.cygnus.com)

	* refcard.tex: avoid bad linebreaks even when REFEDITS=psrc.sed

Fri Nov 12 16:10:58 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Nested Symbols): New node.
	(String Field, Symbol Descriptors, Cross-References): Refer to it.

Thu Nov 11 13:26:45 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Stabs in ELF): Clarify how Bbss.bss work with respect
	to picking which Bbss.bss symbol to use, and (because there seems to
	be no good way of doing it) re-write some of the text to make it
	sound like Bbss.bss isn't such a great idea after all (as currently
	designed).

	* gdb.texinfo (C): In addition to saying people have to use g++ for
	good results, say they have to use stabs.  Specifically say cfront
	doesn't work well.
	(Summary): Merge in information on Modula-2, Pascal, and Chill from
	the gdb README.  Add xrefs to places where the support for the various
	languages is described in detail.

Mon Nov  8 11:47:34 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo: Clean up stuff about visibility and virtual
	characters.

	* stabs.texinfo (N_M2C): Cite Sun doc.

Fri Nov  5 16:27:27 1993  Roland H. Pesch  (pesch@fowanton.cygnus.com)

	* gdb.texinfo: updates re threads.
	* remote.texinfo: avoid index entries starting with digits.

Tue Nov  2 09:08:37 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Enumerations): Talk about large, negative and
	octal values.  Clean up cross reference to type attributes.
	(String Field): Say that GDB 4.11 supports size attribute.

Sun Oct 31 13:31:10 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* remote.texi (VxWorks Remote): Clarify that rebuilding VxWorks kernel
	is a mandatory step.  Make the stuff about that more concise.

Wed Oct 27 00:25:46 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Class Names): New node.

	* gdb.texinfo (Command Files): Explain order of init file reading.

	* remote.texi (Bootstrapping): Talk about getting the serial driver
	to deal with ^C sent by gdb to stop the remote system.

Mon Oct 25 03:25:41 1993  Tom Lord  (lord@cygnus.com)

	* libgdb.texinfo (I/O): incorporated better phrasing from rich.

	* libgdb.texinfo (Defining Commands): made the DOC arg
	to gdb_define_app_command a char * instead of char **
	per a suggestion from kingdon.

	* libgdb.texinfo: total rewrite from a different starting
	premise.

Wed Oct 20 18:07:44 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Local Variable Parameters): Re-write paragraph on
	floats passed as doubles (to improve clarity).

Tue Oct 19 14:21:18 1993  Roland H. Pesch  (pesch@fowanton.cygnus.com)

	* gdb.texinfo (Source Path): index entries for $cwd, $pdir

	* a4rc.sed: update to work with Andreas Vogel papersize params

	* refcard.tex: use Andreas Vogel simplifications of papersize
	params; remove useless version info; update copyright date.

Tue Oct 19 10:46:22 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.texinfo (Symbols): Add class NAME to doc for ptype.

Tue Oct 12 09:11:45 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.texinfo (Files): Say what address the load command loads it at.

	* stabs.texinfo (Common Blocks): Minor cleanups.

	* stabs.texinfo: Update ld stabs in elf relocation to reflect the fact
	that Sun has backed away from the linker kludge and thus the relevant
	issue is changes to the SunPRO tools, not the Solaris linker.

	* stabs.texinfo (Traditional Integer Types): Clean up description
	of octal bounds a little bit.  Document extra leading zeroes.

Thu Oct  7 16:15:37 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.texinfo (Signaling): Update for symbolic symbol names
	and add a section explaining the difference between the GDB
	signal command and the shell kill utility.

Wed Oct  6 13:23:01 1993  Tom Lord  (lord@rtl.cygnus.com)

	* libgdb.texinfo: added `@' to braces that were unescaped.

Mon Oct  4 10:42:18 1993  Tom Lord  (lord@rtl.cygnus.com)

	* libgdb.texinfo: new file.  Spec for the gdb library.

Sun Oct  3 15:26:56 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Include Files): Fix typo (start -> end).

Thu Sep 30 18:24:56 1993  Roland H. Pesch  (pesch@fowanton.cygnus.com)

	* gdb.texinfo, remote.texi: assorted small improvements, mostly
	from Melissa at FSF's editing pass.

Thu Sep 30 11:54:38 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.texinfo: Remove stuff about ar and 14 character filenames.
	I believe this was fixed by the 13 Sep 89 change to print_frame_info.
	Also, modern versions of ar like BSD 4.4 or SVR4 don't have this bug.

Wed Sep 22 21:22:11 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* remote.texi (Bootstrapping): Discuss 386 call gates.

Sat Sep 18 17:10:44 1993  Jim Kingdon  (kingdon@poseidon.cygnus.com)

	* stabs.texinfo (Based Variables): New node.

Thu Sep 16 17:48:55 1993  Jim Kingdon  (kingdon@cirdan.cygnus.com)

	* stabs.texinfo (Negative Type Numbers): Re-write discussions of
	names, sizes, and formats to suggest how not to lose.

Sat Sep 11 09:35:11 1993  Jim Kingdon  (kingdon@poseidon.cygnus.com)

	* stabs.texinfo (Methods): Fix typo.

Fri Sep 10 06:34:20 1993  David J. Mackenzie  (djm@thepub.cygnus.com)

	* gdb.texinfo: Fix a few typos.

Wed Sep  8 09:11:52 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.texinfo: Clarify how well it works with Fortran.

	* stabs.texinfo (Stabs In ELF, Statics, ELF Transformations):
	More on relocating stabs in ELF files.

Tue Sep  7 13:45:02 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Stabs In ELF): Talk about N_FUN value.

Mon Sep  6 19:23:18 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Local Variable Parameters): Talk about nameless
	parameters on VAX.

Fri Sep  3 17:06:08 1993  Roland H. Pesch  (pesch@fowanton.cygnus.com)

	* gdb.texinfo: @up/@down -> @raisesections/@lowersections

Fri Sep  3 12:04:15 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo: Make info author notice match the TeX author notice.

Tue Aug 31 13:21:06 1993  David J. Mackenzie  (djm@thepub.cygnus.com)

	* stabs.texinfo: Initial-caps all words in node names and
	non-trivial words in section names.

Mon Aug 30 11:13:16 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo: Many minor cleanups.

	* stabs.texinfo: Remove @deffn except from Expanded Reference node.

Sat Aug 28 12:08:09 1993  David J. MacKenzie  (djm@edison.eng.umd.edu)

	* stabs.texinfo: Remove full description of big example.
	It's not really helpful; just use pieces of it where appropriate.
	Add more Texinfo formatting directives (@samp, etc.).
	Use @deffn to define stab types.
	Eliminate some wordiness.  Break up some nodes.
	Add an (alphabetized) index of symbol types.
	Use consistent capitalization style in node and section names.

Thu Aug 26 06:36:31 1993  Fred Fish  (fnf@deneb.cygnus.com)

	* gdb.texinfo:  Change typo "Two two" to "The two".

Sun Aug 22 12:15:18 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (XCOFF-differences): Remove references to
	non-existent types N_DECL and N_RPSYM.

	* stabs.texinfo (String Field): Say that type attributes bug is
	fixed in GDB 4.10, since it is.

	* stabs.texinfo: Clean up djm cleanups, and more cleanups of my own.

Sat Aug 21 04:32:28 1993  David MacKenzie  (djm@cygnus.com)

	* stabs.texinfo: Formatting cleanups.

Fri Aug 20 20:49:53 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo: When explaining the n_type of a stab, standardize
	how we do it ('#' as a comment indicator, "36 is N_FUN" as text,
	no tabs, use @r).
	(Global Variables): Clean up.

Tue Aug 17 15:57:27 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Stack Variables): Re-write.

Mon Aug 16 21:20:08 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Stabs-in-elf): Talk about getting the start
	addresses of a source file.  Also revise formatting.
	Change "object module" or "object file" to "source file".
	Various: Miscellaneous cleanups.

Thu Aug 12 15:11:51 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo: Point to mangling info in gcc's gpcompare.texi.

Tue Aug 10 16:57:49 1993  Stan Shebs  (shebs@rtl.cygnus.com)

	* gdbint.texinfo: Removed many nonsensical machine-collected
	host and target conditionals, described some of the remainder.

Tue Aug 10 13:28:30 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdbint.texinfo (Getting Started): Use @itemize, not @table.

	* gdbint.texinfo (Top): Add name to @top line, and re-write the
	paragraph which follows.

	* gdbint.texinfo (Host): Use @code not @samp for Makefile
	variables.  Looks better and avoids overful hbox.

Fri Jul 30 18:26:21 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Procedures): Improve stuff on nested functions.

Thu Jul 29 15:10:58 1993  Roland H. Pesch  (pesch@fowanton.cygnus.com)

	* remote.texi: (MIPS Remote) clearer doc for set/show timeout,
	retransmit-timeout

Thu Jul 29 13:16:09 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdbint.texinfo: Update statement about `some ancient Unix
	systems, like Ultrix 4.0' to Ultrix 4.2.

Wed Jul 28 15:26:53 1993  Roland H. Pesch  (pesch@el_bosque.cygnus.com)

	* h8-cfg.texi, all-cfg.texi: new flag GDBSERVER

	* Makefile.in: depend on remote.texi rather than gdbinv-s.texi

	* remote.texi: (Server) New node on gdbserver.  (Remote Serial,
	ST2000 Remote, MIPS Remote): mention `host:port' syntax for TCP.

	* remote.texi: new name for former gdbinv-s.texi

	* gdb.texinfo: use remote.texi rather than gdbinv-s.texi

Wed Jul 28 08:26:24 1993  Ian Lance Taylor  (ian@cygnus.com)

	* gdbinv-s.texi: Documented timeout and retransmit-timeout
	variables for MIPS remote debugging protocol.

Mon Jul 26 13:00:09 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Negative Type Numbers): FORTRAN LOGICAL fix.

Tue Jul 20 16:30:41 1993  Jim Kingdon  (kingdon@deneb.cygnus.com)

	* Makefile.in (refcard.dvi): Use srcdir where necessary.

Mon Jul 19 12:02:50 1993  Roland H. Pesch  (pesch@cygnus.com)

	* gdb.texinfo: repair conditional bugs in text markup

Fri Jul 16 18:57:50 1993  Roland H. Pesch  (pesch@fowanton.cygnus.com)

	* gdb.texinfo, all-cfg.texi, h8-cfg.texi: introduce MOD2 switch
	to select Modula-2 material.

Thu Jul 15 13:15:01 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo: Cleanups regarding statics.

	* gdbinv-s.texi (Bootstrapping): Document exceptionHandler.
	(Debug Session): Mention exceptionHandler.  Add xref to Bootstrapping.

Mon Jul 12 13:37:02 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo: N_MAIN is sometimes used for C.

Fri Jul  9 09:47:02 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdbint.texinfo (Host, Target Conditionals): Remove TM_FILE_OVERRIDE.

Tue Jul  6 12:41:28 1993  John Gilmore  (gnu@cygnus.com)

	* gdbint.texinfo (Target Conditionals): Remove NO_TYPEDEFS,
	removed from the code by Kingdon.

Tue Jul  6 12:24:34 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* gdb.texinfo (Break Commands): Remove stuff about flushing terminal
	input when evaluating breakpoint conditions; the bug has been fixed.

	* gdb.texinfo (Continuing and Stepping): Argument to "continue"
	sets the ignore count to N-1, not to N.

Thu Jul  1 14:57:42 1993  Roland H. Pesch  (pesch@fowanton.cygnus.com)

	* refcard.tex (\hoffset): correct longstanding error to match
	  intended offset; avoids cutting off edge on some printers

Wed Jun 30 18:23:06 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Parameters): Say that order of stabs is significant.

Fri Jun 25 21:34:52 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Common Blocks): Say what Sun FORTRAN does.

Fri Jun 25 16:15:10 1993  Roland H. Pesch  (pesch@fowanton.cygnus.com)

	* Makefile.in: (REFEDITS) new var to control whether PS or CM
	fonts and whether US or A4 paper for GDB refcard; (refcard.dvi)
	collect sed edits if any, apply to refcard before formatting;
	(refcard.ps) stop implying PS fonts if PS output requested;
	(lrefcard.ps) delete extra target for variant PS fonts

	* refcard.tex: parametrize papersize dependent info, collect
	  in easily replaced spot

	* a4rc.sed: new file, edits to refcard for A4 paper

Fri Jun 25 14:21:46 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Negative Type Numbers): Type -16 is 4 bytes.

Wed Jun 23 15:02:50 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Negative Type Numbers): Minor character cleanups.

Tue Jun 22 16:31:52 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo: Express disapproval of 'D' symbol descriptor
	politely rather than rudely.

Fri Jun 18 19:42:09 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo: Document common blocks.

Fri Jun 18 12:12:57 1993  Fred Fish  (fnf@cygnus.com)

	* stabs.texinfo:  Add some basic info about stabs-in-elf.

Fri Jun 18 13:57:09 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Top): Minor cleanup.

Mon Jun 14 16:16:51 1993  david d `zoo' zuhn  (zoo at rtl.cygnus.com)

	* Makefile.in (install-info): remove parentdir support

Tue Jun 15 18:11:39 1993  Roland H. Pesch  (pesch@fowanton.cygnus.com)

	* gdb.texinfo (Copying): delete this node and references to it;
	RMS says this manual need not carry GPL. (passim): Improvements
	from last round at FSF, largely due to Ian Taylor review, and
	minor formatting improvements.

	* gdbinv-s.texi (passim): Improvements from last round at FSF,
	largely due to Ian Taylor review. (Debug Session): minor edits to
	new text.

Sun Jun 13 12:52:39 1993  Jim Kingdon  (kingdon@cygnus.com)

	* Makefile.in (realclean): Remove info and dvi files too.

Sat Jun 12 16:09:22 1993  Jim Kingdon  (kingdon@cygnus.com)

	* {all,h8}-config.texi: Rename to *-cfg.texi for 14 char filenames.
	* Makefile.in: Change accordingly.  gdb-config.texi -> gdb-cfg.texi.
	* gdb.texinfo: Change accordingly.

	* stabs.texinfo: Clean up N_{L,R}BRAC.  Discuss what addresses of
	N_{L,R}BRAC,N_SLINE are relative to.

Fri Jun 11 15:15:55 1993  Jim Kingdon  (kingdon@cygnus.com)

	* Makefile.in (GDBvn.texi): Update atomically.

Wed Jun  9 10:58:16 1993  Jim Kingdon  (kingdon@cygnus.com)

	* gdbinv-s.texi (Debug Session): Document exceptionHook.

Tue Jun  8 13:42:04 1993  Jim Kingdon  (kingdon@cygnus.com)

	* gdb.texinfo (Print Settings): Move all stuff relating to symbolic
	addresses together.  Also motivate the set print symbol-filename
	command and suggest other solutions.

Tue Jun  1 22:46:43 1993  Fred Fish  (fnf@cygnus.com)

	* gdb.texinfo (set print elements):  Note that the number of
	elements is set to unlimited by "set print elements 0".

Mon May 31 08:06:55 1993  Jim Kingdon  (kingdon@cygnus.com)

	* stabs.texinfo (Builtin Type Descriptors): Try to clarify what
	NF_LDOUBLE means.
	(Stab Types): Include Solaris stab types.
	(Procedures): Document Solaris extensions.

Thu May 27 06:20:42 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* gdb.texinfo:  Add `set print symbol-filename' doc.

Wed May 26 00:26:42 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Arrays): Talk about type definition vs. type
	information.

	* stabs.texinfo (Builtin Type Descriptors): Talk about omitting
	the trailing semicolon.

Tue May 25 14:49:42 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Line Numbers, Source Files): Re-write these two nodes
	and merge in other parts of the document addressing these subjects.
	gdbint.texinfo (XCOFF): Remove info which is now in stabs.texinfo.

	* stabs.texinfo (Subranges, Arrays): Try to explain about the semicolon
	at the end of a range type.

	* stabs.texinfo (Subranges): "A offset" and "T offset" are not
	AIX extensions.

Mon May 24 09:00:33 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Stabs Format):  Misc fixes.

Sat May 22 10:40:56 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Constants):  Allow an `e' constant to be non-enum.
	(Traditional builtin types): Document convex convention for long long.
	(Negative builtin types): Discuss type names, and misc fixes.

Fri May 21 11:20:31 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Builtin Type Descriptors): Document the floating
	point types used with @samp{R} type descriptor.
	(Symbol Descriptors): Describe how to handle conflict between
	different meanings of @samp{P} symbol descriptor.

Thu May 20 13:35:10 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo: Remove node Quick Reference and put its children
	directly under the main menu.

	* stabs.texinfo: Many more changes to bring it into line with
	AIX documentation and reality.  I think it now has all the
	information from the AIX documentation, except that I burned
	out when I got to variant records (Pascal and Modula-2) and
	all the COBOL types.  Oh well, we can add them later when we're
	worrying more about those languages.

	* stabs.texinfo (Automatic variables): Talk about what it means
	to omit the symbol descriptor.

Tue May 18 17:59:18 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stabs.texinfo (Parameters): Add "(sometimes)" when describing
	gcc2 behavior with promoted args.

Fri May 14 21:35:29 1993  Roland H. Pesch  (pesch@fowanton.cygnus.com)

	* gdb.texinfo: include readline appendices in info version of manual

Fri May  7 11:56:18 1993  Roland H. Pesch  (pesch@fowanton.cygnus.com)

	* gdbinv-s.texi (Remote Serial): describe new ^C behavior in
	target remote.

	* gdb.texinfo (Machine Code): more index entries for disassemble

Fri May  7 10:12:30 1993  Fred Fish  (fnf@cygnus.com)

	* Clarify the intended use of the gdb-testers and gdb-patches
	mailing lists, and shrink gzip comment.

Thu May  6 16:39:50 1993  Roland H. Pesch  (pesch@fowanton.cygnus.com)

	* gdb.texinfo (Shell Commands): do not mention SHELL env var in
	DOSHOST configuration of manual.

	* gdb.texinfo (MIPS Stack): new node.

	* all-config.texi (MIPS) new switch.

	* gdbinv-s.texi (Nindy Options) Remove two instances of future
	tense; (MIPS Remote) new node.

	* gdb.texinfo (passim) rephrases to work around makeinfo @value
	bug; (Environment) less passive, other small cleanups in text about
	.cshrc/.bashrc; (Invoking GDB) new MIPS Remote menu entry;
	(Remote) new MIPS Remote menu entry.

Thu Apr 29 09:36:25 1993  Jim Kingdon  (kingdon@cygnus.com)

	* stabs.texinfo: Many changes to include information from the
	AIX documentation.

	* gdb.texinfo (Environment): Mention pitfall with .cshrc.

Tue Apr 27 14:02:57 1993  Jim Kingdon  (kingdon@cygnus.com)

	* gdbint.texinfo (new node Debugging GDB, elsewhere):
	Move a bunch of information from ../README.
	(Getting Started): New node.

Fri Apr 23 17:21:13 1993  Roland H. Pesch  (pesch@fowanton.cygnus.com)

	* gdbinv-s.texi, gdb.texinfo: include Hitachi SH target

	* gdb.texinfo: advance manual revision dates to present

	* gdbinv-s.texi, gdb.texinfo, all-config.texi, h8-config.texi:
	stop using silly Roman numerals in @set variable names

Fri Apr 23 07:30:01 1993  Jim Kingdon  (kingdon@cygnus.com)

	* stabs.texinfo (Parameters): Keep trying to get this right.

Wed Apr 21 15:18:47 1993  Jim Kingdon  (kingdon@cygnus.com)

	* stabs.texinfo (Parameters): More on "local parameters".

Mon Apr 19 08:00:51 1993  Jim Kingdon  (kingdon@cygnus.com)

	* stabs.texinfo (Parameters): Re-do "local parameters" section.

Sun Apr 18 09:47:45 1993  Jim Kingdon  (kingdon@cygnus.com)

	* stabs.texinfo (Symbol descriptors): Re-do using @table and @xref.
	(Parameters): Rewrite.
	(xcoff-differences, Sun-differences): Minor changes.

Thu Apr 15 02:35:24 1993  John Gilmore  (gnu@cacophony.cygnus.com)

	* stabs.texinfo:  Minor cleanup.

Wed Apr 14 17:31:00 1993  Jim Kingdon  (kingdon@cygnus.com)

	* gdbint.texinfo: Minor xcoff stuff.

Wed Apr  7 14:11:07 1993  Fred Fish  (fnf@cygnus.com)

	* gdbint.texinfo:  Update for new config directory structure.
	Add info about internal type data structures.

Mon Apr  5 09:06:30 1993  Ian Lance Taylor  (ian@cygnus.com)

	* Makefile.in (SFILES_INCLUDED): gdb-config.texi is no longer in
	$(srcdir).
	(gdb-config.texi): Depend on file in $(srcdir).

Fri Apr  2 16:55:13 1993  Jim Kingdon  (kingdon@cygnus.com)

	* stabs.texinfo: Fixes about N_SO.

Fri Mar 26 18:00:35 1993  Roland H. Pesch  (pesch@fowanton.cygnus.com)

	* gdb.texinfo: include list of nonstandard init file names

	* *-config.texi: new switch GENERIC for text that applies *only*
	to (usual) multiple-target version of manual

	* gdb.texinfo, gdbinv-s.texi: Update conditional markup to correct
	h8 config

	* gdb.texinfo: depend on latest fixed makeinfo, use conditionals
	in menus (rather than conditionally selected multiple alternative
	menus).

	* Makefile.in: define and use DOC_CONFIG var to select
	configuration for GDB user manual.

	* gdb-config.texi: delete from repository, generate from Makefile.

	* all-config.texi: normal `generic' configuration file, formerly
	stored as gdb-config.texi

Wed Mar 24 14:03:19 1993  david d `zoo' zuhn  (zoo at poseidon.cygnus.com)

	* Makefile.in: add dvi target to build all .dvi files

Tue Mar 23 16:03:24 1993  Roland H. Pesch  (pesch@fowanton.cygnus.com)

	* gdb.texinfo, gdvinv-s.texinfo: formatting improvements.

Fri Mar 19 21:46:50 1993  John Gilmore  (gnu@cygnus.com)

	* gdbint.texinfo:  Doc NO_MMALLOC and NO_MMALLOC_CHECK as
	host conditionals.
	* stabs.texinfo:  More array fixes inspired by Jim's.

Fri Mar 19 10:23:34 1993  Jim Kingdon  (kingdon@cygnus.com)

	* stabs.texinfo: Fixes re arrays and continuations.

	* gdbint.texinfo: Add XCOFF node.

Mon Mar  8 15:52:18 1993  John Gilmore  (gnu@cygnus.com)

	* gdb.texinfo:  Add `set print max-symbolic-offset' doc.

Sun Feb 21 17:09:38 1993  Per Bothner  (bothner@rtl.cygnus.com)

	* stabs.texinfo:  Fix for array types to mention lower bounds.

Thu Feb 18 01:19:49 1993  John Gilmore  (gnu@cygnus.com)

	* gdbint.texinfo:  Update PTRACE_ARG3_TYPE doc, pull PT_*.

Wed Feb 17 08:15:24 1993  John Gilmore  (gnu@cygnus.com)

	* gdbint.texinfo:  Remove SET_STACK_LIMIT_HUGE from target defines.

Thu Feb 11 10:38:40 1993  John Gilmore  (gnu@cygnus.com)

	* gdbint.texinfo:  Fix thinko (NM_FILE => NAT_FILE).  Found
	by Michael Ben-Gershon <mybg@CS.HUJI.AC.IL>.

Wed Feb 10 23:59:19 1993  John Gilmore  (gnu@cygnus.com)

	* gdbint.texinfo:  Eliminate IBM6000_HOST, document IBM6000_TARGET.

Tue Feb  9 18:26:21 1993  Roland H. Pesch  (pesch@fowanton.cygnus.com)

	* gdb.texinfo, gdbinv-s.texi: misc updates

Sat Feb  6 10:25:47 1993  John Gilmore  (gnu@cygnus.com)

	* gdbint.texinfo:  Brief documentation for longjmp support,
	from an email msg by Stu.

Fri Feb  5 14:10:15 1993  John Gilmore  (gnu@cygnus.com)

	* stabs.texinfo:  Fix description of floating point "range"
	types (which really define basic types).  Reported by Jim Meehan,
	<meehan@src.dec.com>.

	* gdbint.texinfo:  Remove COFF_NO_LONG_FILE_NAMES define, now gone.

Thu Feb  4 13:56:46 1993  Ian Lance Taylor  (ian@cygnus.com)

	* gdbint.texinfo: Slightly expand section on supporting a new
	object file format.

Thu Feb  4 01:49:04 1993  John Gilmore  (gnu@cygnus.com)

	* Makefile.in (refcard.ps, lrefcard.ps):  Remove psref.tex
	intermediate file.

Tue Feb  2 12:18:06 1993  Roland H. Pesch  (pesch@fowanton.cygnus.com)

	* gdb.texinfo, gdbinv-s.texi: miscellaneous stylistic cleanups

Mon Feb  1 15:35:47 1993  Roland H. Pesch  (pesch@fowanton.cygnus.com)

	* gdbinv-s.texi: z8000 simulator target name is just "sim"

	* gdbinv-s.texi:  Mention that Z8000 simulator can simulate Z8001
	as well as Z8002.

Sat Nov 28 06:51:35 1992  John Gilmore  (gnu@cygnus.com)

	* gdbint.texinfo:  Add sections on clean design and on how to send
	in changes.

Mon Nov  9 23:57:02 1992  John Gilmore  (gnu@cygnus.com)

	* gdbint.texinfo:  Add how to declare the result of make_cleanup.

Mon Oct 26 11:09:47 1992  John Gilmore  (gnu@cygnus.com)

	* gdb.texinfo:  Fix typo, reported by Karl Berry.

Fri Oct 23 00:41:21 1992  John Gilmore  (gnu@cygnus.com)

	* gdb.texinfo:  Add opcodes dir to GDB distribution description.

Sat Oct 10 18:04:58 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* gdbint.texinfo: fixed a stray email address (needs @@),
	added @table @code to node "Native Conditionals"

Tue Sep 22 00:34:15 1992  John Gilmore  (gnu@cygnus.com)

	* gdbint.texinfo:  Describe coding style of GDB.

Mon Sep 21 19:32:16 1992  John Gilmore  (gnu@cygnus.com)

	* stabs.texinfo:  Minor wording changes.

Tue Sep 15 02:57:09 1992  John Gilmore  (gnu@cygnus.com)

	* gdbint.texinfo:  Improve release doc slightly.

Fri Sep 11 01:34:25 1992  John Gilmore  (gnu@sphagnum.cygnus.com)

	* gdbint.texinfo:  Improve doc of GDB config macros.

Wed Sep  9 16:52:06 1992  John Gilmore  (gnu@cygnus.com)

	* stabs.texinfo:  Remove Bothner's changes for C++ nested types.
	These will be reinserted when examined.

Mon Aug 24 01:17:55 1992  John Gilmore  (gnu@cygnus.com)

	* gdbint.texinfo:  Make a start at documenting all the #if macros
	in GDB.  At least list them all, and start separating them into
	host-specific and target-specific.

Tue Aug 18 15:59:13 1992  Roland H. Pesch  (pesch@fowanton.cygnus.com)

	* gdbinv-s.m4.in: refrain from using @cartouche for just a few
	examples (not consistent w others).
	gdb.texinfo: issue disclaimer paragraph on cmdline options only
	for generic vn of doc

Tue Aug 18 14:53:27 1992  Ian Lance Taylor  (ian@cygnus.com)

	* Makefile.in: always create installation directories.

Tue Aug 18 14:11:50 1992  Roland H. Pesch  (pesch@fowanton.cygnus.com)

	* gdb.texinfo: in h8 config, do not describe searching commands.

Mon Aug 17 18:07:59 1992  Roland H. Pesch  (pesch@fowanton.cygnus.com)

	* gdb.texinfo, none.m4, h8.m4, gdbinv-s.m4.in: improve H8/300
	  conditionals; introduce a few generic switches that may be
	  useful for other cross-dev or dos-hosted configs.

	* gdb.texinfo: fix typo in "info reg" description

Sun Aug 16 01:16:18 1992  John Gilmore  (gnu@cygnus.com)

	* stabs.texinfo:  Minor updates from running TeX over it.
	* Makefile.in (stabs.dvi, stabs.ps):  Add.

Sat Aug 15 20:52:24 1992  Per Bothner  (bothner@rtl.cygnus.com)

	* stabs.texinfo:  Stabs documentation, written by Julia Menapace.
	First pass at converting it to texinfo.

Sat Aug 15 03:14:59 1992  John Gilmore  (gnu@cygnus.com)

	* gdb.texinfo, refcard.tex:  Document mult args on `info reg'.
	* Makefile.in (refcard.ps, lrefcard.ps):  Add missing $(srdir).

Fri Aug 14 21:08:47 1992  John Gilmore  (gnu@cygnus.com)

	* gdbint.texinfo:  Add section on partial symbol tables.

Sat Jun 20 16:31:10 1992  John Gilmore  (gnu at cygnus.com)

	* gdb.texinfo:  document `set remotedebug' and `set
	rstack_high_address'.

Thu May 14 17:09:48 1992  Roland H. Pesch  (pesch@fowanton.cygnus.com)

	* gdb.texinfo: slight expansion of new text on reading info files
	* gdbinv-s.m4.in: correct and expand info on cross-debugging
	H8/300 from DOS.

Tue May 12 12:22:47 1992  John Gilmore  (gnu at cygnus.com)

	* gdb.texinfo:  `info user' => `show user'.  Noticed by David Taylor.

Mon May 11 19:06:27 1992  John Gilmore  (gnu at cygnus.com)

	* gdb.texinfo:  Say how to read the `info' files.

Tue May  5 12:11:38 1992  K. Richard Pixley  (rich@cygnus.com)

	* Makefile.in: gm4 -> m4.

Fri Apr 10 17:50:43 1992  John Gilmore  (gnu at rtl.cygnus.com)

	* gdb.texinfo:  Update for GDB-4.5.  Move `Formatting
	Documentation' ahead of `Installing GDB' to match README.
	Update shared library doc, -readnow and -mapped, and directory
	structure (add glob and mmalloc).  Update configure doc.

Tue Mar 24 23:28:38 1992  K. Richard Pixley  (rich@cygnus.com)

	* Makefile.in: remove $(srcdir) from gdb.info rule.

Sat Mar  7 18:44:50 1992  K. Richard Pixley  (rich@rtl.cygnus.com)

	* Makefile.in: commented out gdb-all.texinfo rule.  This is
	  temporary.

Wed Feb 26 18:04:40 1992  K. Richard Pixley  (rich@cygnus.com)

	* Makefile.in, configure.in: removed traces of namesubdir,
	  -subdirs, $(subdir), $(unsubdir), some rcs triggers.  Forced
	  copyrights to '92, '13, changed some from Cygnus to FSF.

Fri Dec 13 09:47:31 1991  John Gilmore  (gnu at cygnus.com)

	* gdb.texinfo:  Improve how we ask for bug reports.

Tue Dec 10 04:07:21 1991  K. Richard Pixley  (rich at rtl.cygnus.com)

	* Makefile.in: infodir belongs in datadir.

Fri Dec  6 23:57:34 1991  K. Richard Pixley  (rich at rtl.cygnus.com)

	* Makefile.in: remove spaces following hyphens, bsd make can't
	  cope.  install using INSTALL_DATA.  added clean-info.  added
	  standards.text support.

Thu Dec  5 22:46:12 1991  K. Richard Pixley  (rich at rtl.cygnus.com)

	* Makefile.in: idestdir and ddestdir go away.  Added copyrights
	  and shift gpl to v2.  Added ChangeLog if it didn't exist. docdir
	  and mandir now keyed off datadir by default.


Local Variables:
mode: change-log
left-margin: 8
fill-column: 74
version-control: never
End:
