aboutsummaryrefslogtreecommitdiff
path: root/gdb/doc
diff options
context:
space:
mode:
authorStan Shebs <shebs@codesourcery.com>2010-04-04 23:31:29 +0000
committerStan Shebs <shebs@codesourcery.com>2010-04-04 23:31:29 +0000
commitaf54718eaed854c5e7ef4dbd6845969aa6558ef4 (patch)
treef6a7b5c21b652efedc60182dcdfda6ac9572fe5f /gdb/doc
parent74d1f91eb19fd48d51664b33769c8c0d4f8e4c38 (diff)
downloadgdb-af54718eaed854c5e7ef4dbd6845969aa6558ef4.zip
gdb-af54718eaed854c5e7ef4dbd6845969aa6558ef4.tar.gz
gdb-af54718eaed854c5e7ef4dbd6845969aa6558ef4.tar.bz2
2010-04-04 Stan Shebs <stan@codesourcery.com>
* tracepoint.c (tfile_fetch_registers): Add fallback case. * gdb.texinfo (Tracepoint Restrictions): Document PC inference. (tdump): Explain how tdump works. * gdb.trace/tfile.exp: Sharpen tfind test.
Diffstat (limited to 'gdb/doc')
-rw-r--r--gdb/doc/ChangeLog5
-rw-r--r--gdb/doc/gdb.texinfo26
2 files changed, 31 insertions, 0 deletions
diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog
index a792152..3d1e2cd 100644
--- a/gdb/doc/ChangeLog
+++ b/gdb/doc/ChangeLog
@@ -1,3 +1,8 @@
+2010-04-04 Stan Shebs <stan@codesourcery.com>
+
+ * 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
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index 5e02172..e61bd7e 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -9938,6 +9938,16 @@ if you ask for a block so large that it goes past the bottom of the
stack, the target agent may report an error trying to read from an
invalid address.
+@item
+If you do not collect registers at a tracepoint, @value{GDBN} can
+infer that the value of @code{$pc} must be the same as the address of
+the tracepoint and use that when you are looking at a trace frame
+for that tracepoint. However, this cannot work if the tracepoint has
+multiple locations (for instance if it was set in a function that was
+inlined), or if it has a @code{while-stepping} loop. In those cases
+@value{GDBN} will warn you that it can't infer @code{$pc}, and default
+it to zero.
+
@end itemize
@node Analyze Collected Data
@@ -10141,6 +10151,22 @@ gdb_long_test = 17 '\021'
(@value{GDBP})
@end smallexample
+@code{tdump} works by scanning the tracepoint's current collection
+actions and printing the value of each expression listed. So
+@code{tdump} can fail, if after a run, you change the tracepoint's
+actions to mention variables that were not collected during the run.
+
+Also, for tracepoints with @code{while-stepping} loops, @code{tdump}
+uses the collected value of @code{$pc} to distinguish between trace
+frames that were collected at the tracepoint hit, and frames that were
+collected while stepping. This allows it to correctly choose whether
+to display the basic list of collections, or the collections from the
+body of the while-stepping loop. However, if @code{$pc} was not collected,
+then @code{tdump} will always attempt to dump using the basic collection
+list, and may fail if a while-stepping frame does not include all the
+same data that is collected at the tracepoint hit.
+@c This is getting pretty arcane, example would be good.
+
@node save-tracepoints
@subsection @code{save-tracepoints @var{filename}}
@kindex save-tracepoints