aboutsummaryrefslogtreecommitdiff
path: root/gdb/doc
diff options
context:
space:
mode:
authorJason Molenda <jmolenda@apple.com>1999-08-16 19:57:19 +0000
committerJason Molenda <jmolenda@apple.com>1999-08-16 19:57:19 +0000
commit7be570e7ce77920e2e628a03bdfe2d295fc2568f (patch)
treea49512270bb021f1d5171b362dc973e28c97ca94 /gdb/doc
parented288bb597072176e84fc8279707a3f2f475779b (diff)
downloadgdb-7be570e7ce77920e2e628a03bdfe2d295fc2568f.zip
gdb-7be570e7ce77920e2e628a03bdfe2d295fc2568f.tar.gz
gdb-7be570e7ce77920e2e628a03bdfe2d295fc2568f.tar.bz2
import gdb-1999-08-16 snapshot
Diffstat (limited to 'gdb/doc')
-rw-r--r--gdb/doc/ChangeLog22
-rw-r--r--gdb/doc/Makefile.in18
-rw-r--r--gdb/doc/gdb.texinfo70
-rw-r--r--gdb/doc/gdbint.texinfo8
-rw-r--r--gdb/doc/remote.texi22
5 files changed, 106 insertions, 34 deletions
diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog
index 2d0b2ee..46bb910 100644
--- a/gdb/doc/ChangeLog
+++ b/gdb/doc/ChangeLog
@@ -1,3 +1,25 @@
+1999-08-12 Ben Elliston <bje@cygnus.com>
+
+ * gdbint.texinfo (Breakpoint Handling): Add missing words.
+
+1999-08-10 Eli Zaretskii <eliz@is.elta.co.il>
+
+ * 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.
diff --git a/gdb/doc/Makefile.in b/gdb/doc/Makefile.in
index f81e583..ad93b5e 100644
--- a/gdb/doc/Makefile.in
+++ b/gdb/doc/Makefile.in
@@ -88,7 +88,7 @@ SFILES_INCLUDED = gdb-cfg.texi $(srcdir)/remote.texi
SFILES_LOCAL = $(srcdir)/gdb.texinfo GDBvn.texi $(SFILES_INCLUDED)
SFILES_DOC = $(SFILES_LOCAL) \
- $(READLINE_DIR)/rluser.texinfo $(READLINE_DIR)/inc-hist.texi
+ $(READLINE_DIR)/rluser.texinfo $(READLINE_DIR)/inc-hist.texinfo
#### Host, target, and site specific Makefile fragments come in here.
###
@@ -152,7 +152,7 @@ mostlyclean:
rm -f sedref.dvi sedref.tex tmp.sed
clean: mostlyclean
- rm -f rluser.texinfo inc-hist.texi gdb-cfg.texi
+ rm -f rluser.texinfo inc-hist.texinfo gdb-cfg.texi
distclean: clean
rm -f Makefile config.status
@@ -260,13 +260,13 @@ rluser.texinfo: ${READLINE_DIR}/rluser.texinfo
-e 's/^@end ftable/@end table/g' \
${READLINE_DIR}/rluser.texinfo > ./rluser.texinfo
-inc-hist.texi: ${READLINE_DIR}/inc-hist.texi
- ln -s ${READLINE_DIR}/inc-hist.texi . || \
- ln ${READLINE_DIR}/inc-hist.texi . || \
- cp ${READLINE_DIR}/inc-hist.texi .
+inc-hist.texinfo: ${READLINE_DIR}/inc-hist.texinfo
+ ln -s ${READLINE_DIR}/inc-hist.texinfo . || \
+ ln ${READLINE_DIR}/inc-hist.texinfo . || \
+ cp ${READLINE_DIR}/inc-hist.texinfo .
# gdb manual suitable for [gtn]roff -me
-gdb.me: $(SFILES_LOCAL) links2roff rluser.texinfo inc-hist.texi
+gdb.me: $(SFILES_LOCAL) links2roff rluser.texinfo inc-hist.texinfo
sed -e '/\\input texinfo/d' \
-e '/@c TEXI2ROFF-KILL/,/@c END TEXI2ROFF-KILL/d' \
-e '/^@ifinfo/,/^@end ifinfo/d' \
@@ -281,7 +281,7 @@ gdb.me: $(SFILES_LOCAL) links2roff rluser.texinfo inc-hist.texi
>gdb.me
# gdb manual suitable for [gtn]roff -ms
-gdb.ms: $(SFILES_LOCAL) links2roff rluser.texinfo inc-hist.texi
+gdb.ms: $(SFILES_LOCAL) links2roff rluser.texinfo inc-hist.texinfo
sed -e '/\\input texinfo/d' \
-e '/@c TEXI2ROFF-KILL/,/@c END TEXI2ROFF-KILL/d' \
-e '/^@ifinfo/,/^@end ifinfo/d' \
@@ -298,7 +298,7 @@ gdb.ms: $(SFILES_LOCAL) links2roff rluser.texinfo inc-hist.texi
# gdb manual suitable for [tn]roff -mm
# '@noindent's removed due to texi2roff-2 mm bug; if yours is newer,
# try leaving them in
-gdb.mm: $(SFILES_LOCAL) links2roff rluser.texinfo inc-hist.texi
+gdb.mm: $(SFILES_LOCAL) links2roff rluser.texinfo inc-hist.texinfo
sed -e '/\\input texinfo/d' \
-e '/@c TEXI2ROFF-KILL/,/@c END TEXI2ROFF-KILL/d' \
-e '/^@ifinfo/,/^@end ifinfo/d' \
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index 92e4a21..d150881 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -2667,14 +2667,11 @@ is written into by the program and its value changes.
@kindex rwatch
@item rwatch @var{expr}
Set a watchpoint that will break when watch @var{expr} is read by the program.
-If you use both watchpoints, both must be set with the @code{rwatch}
-command.
@kindex awatch
@item awatch @var{expr}
Set a watchpoint that will break when @var{args} is read and written into
-by the program. If you use both watchpoints, both must be set with the
-@code{awatch} command.
+by the program.
@kindex info watchpoints
@item info watchpoints
@@ -2698,14 +2695,49 @@ Hardware watchpoint @var{num}: @var{expr}
@noindent
if it was able to set a hardware watchpoint.
-The SPARClite DSU will generate traps when a program accesses
-some data or instruction address that is assigned to the debug registers.
-For the data addresses, DSU facilitates the @code{watch} command.
-However the hardware breakpoint registers can only take two data watchpoints,
-and both watchpoints must be the same kind. For example, you can set two
-watchpoints with @code{watch} commands, two with @code{rwatch}
-commands, @strong{or} two with @code{awatch} commands, but you cannot set one
-watchpoint with one command and the other with a different command.
+Currently, the @code{awatch} and @code{rwatch} commands can only set
+hardware watchpoints, because accesses to data that don't change the
+value of the watched expression cannot be detected without examining
+every instruction as it is being executed, and @value{GDBN} does not do
+that currently. If @value{GDBN} finds that it is unable to set a
+hardware breakpoint with the @code{awatch} or @code{rwatch} command, it
+will print a message like this:
+
+@smallexample
+Expression cannot be implemented with read/access watchpoint.
+@end smallexample
+
+Sometimes, @value{GDBN} cannot set a hardware watchpoint because the
+data type of the watched expression is wider than what a hardware
+watchpoint on the target machine can handle. For example, some systems
+can only watch regions that are up to 4 bytes wide; on such systems you
+cannot set hardware watchpoints for an expression that yields a
+double-precision floating-point number (which is typically 8 bytes
+wide). As a work-around, it might be possible to break the large region
+into a series of smaller ones and watch them with separate watchpoints.
+
+If you set too many hardware watchpoints, @value{GDBN} might be unable
+to insert all of them when you resume the execution of your program.
+Since the precise number of active watchpoints is unknown until such
+time as the program is about to be resumed, @value{GDBN} might not be
+able to warn you about this when you set the watchpoints, and the
+warning will be printed only when the program is resumed:
+
+@smallexample
+Hardware watchpoint @var{num}: Could not insert watchpoint
+@end smallexample
+
+@noindent
+If this happens, delete or disable some of the watchpoints.
+
+The SPARClite DSU will generate traps when a program accesses some data
+or instruction address that is assigned to the debug registers. For the
+data addresses, DSU facilitates the @code{watch} command. However the
+hardware breakpoint registers can only take two data watchpoints, and
+both watchpoints must be the same kind. For example, you can set two
+watchpoints with @code{watch} commands, two with @code{rwatch} commands,
+@strong{or} two with @code{awatch} commands, but you cannot set one
+watchpoint with one command and the other with a different command.
@value{GDBN} will reject the command if you try to mix watchpoints.
Delete or disable unused watchpoint commands before setting new ones.
@@ -2713,6 +2745,16 @@ If you call a function interactively using @code{print} or @code{call},
any watchpoints you have set will be inactive until GDB reaches another
kind of breakpoint or the call completes.
+@value{GDBN} automatically deletes watchpoints that watch local
+(automatic) variables, or expressions that involve such variables, when
+they go out of scope, that is, when the execution leaves the block in
+which these variables were defined. In particular, when the program
+being debugged terminates, @emph{all} local variables go out of scope,
+and so only watchpoints that watch global variables remain set. If you
+rerun the program, you will need to set all such watchpoints again. One
+way of doing that would be to set a code breakpoint at the entry to the
+@code{main} function and when it breaks, set all the watchpoints.
+
@quotation
@cindex watchpoints and threads
@cindex threads and watchpoints
@@ -9820,11 +9862,11 @@ things without first using the debugger to find the facts.
@c The readline documentation is distributed with the readline code
@c and consists of the two following files:
@c rluser.texinfo
-@c inc-hist.texi
+@c inc-hist.texinfo
@c Use -I with makeinfo to point to the appropriate directory,
@c environment var TEXINPUTS with TeX.
@include rluser.texinfo
-@include inc-hist.texi
+@include inc-hist.texinfo
@ifclear PRECONFIGURED
diff --git a/gdb/doc/gdbint.texinfo b/gdb/doc/gdbint.texinfo
index 1dfd133..8787112 100644
--- a/gdb/doc/gdbint.texinfo
+++ b/gdb/doc/gdbint.texinfo
@@ -262,10 +262,10 @@ limited in number; when the user asks for more, GDB will start trying to
set software breakpoints.
Software breakpoints require GDB to do somewhat more work. The basic
-theory is that GDB will replace a program instruction a trap, illegal
-divide, or some other instruction that will cause an exception, and then
-when it's encountered, GDB will take the exception and stop the program.
-When the user says to continue, GDB will restore the original
+theory is that GDB will replace a program instruction with a trap,
+illegal divide, or some other instruction that will cause an exception,
+and then when it's encountered, GDB will take the exception and stop the
+program. When the user says to continue, GDB will restore the original
instruction, single-step, re-insert the trap, and continue on.
Since it literally overwrites the program being tested, the program area
diff --git a/gdb/doc/remote.texi b/gdb/doc/remote.texi
index d8636da..714b2a2 100644
--- a/gdb/doc/remote.texi
+++ b/gdb/doc/remote.texi
@@ -763,19 +763,27 @@ encoded 32 bit mode; @var{threadid} is a hex encoded 64 bit thread ID.
@tab
See @code{remote.c:remote_unpack_thread_info_response()}.
-@item remote command @strong{(reserved)}
+@item remote command
@tab @code{q}@code{Rcmd,}@var{COMMAND}
@tab
@var{COMMAND} (hex encoded) is passed to the local interpreter for
-execution. @emph{Implementors should note that providing access to a
+execution. Invalid commands should be reported using the output string.
+Before the final result packet, the target may also respond with a
+number of intermediate @code{O}@var{OUTPUT} console output
+packets. @emph{Implementors should note that providing access to a
stubs's interpreter may have security implications}.
@item
-@tab reply @var{OUTPUT} or @code{OK}
+@tab reply @code{OK}
+@tab
+A command response with no output.
+@item
+@tab reply @var{OUTPUT}
+@tab
+A command response with the hex encoded output string @var{OUTPUT}.
+@item
+@tab reply @code{E}@var{NN}
@tab
-The @var{OUTPUT} is the hex encoded output from the command. @code{OK}
-is returned when the @var{OUTPUT} would have been empty. The target may
-also respond with a number of intermediate @code{O}@var{OUTPUT} console
-output packets.
+Indicate a badly formed request.
@item
@tab reply @samp{}