aboutsummaryrefslogtreecommitdiff
path: root/gdb/doc
diff options
context:
space:
mode:
authorStan Shebs <shebs@codesourcery.com>2009-03-31 05:08:37 +0000
committerStan Shebs <shebs@codesourcery.com>2009-03-31 05:08:37 +0000
commit1042e4c05807ca36c83ed8882cb624e45ec43757 (patch)
treebd17fac891e42560824e15ec6d346b823d4ba07d /gdb/doc
parentadfd7328359958d6ad31521278cc5f44b96ae30c (diff)
downloadgdb-1042e4c05807ca36c83ed8882cb624e45ec43757.zip
gdb-1042e4c05807ca36c83ed8882cb624e45ec43757.tar.gz
gdb-1042e4c05807ca36c83ed8882cb624e45ec43757.tar.bz2
2009-03-30 Stan Shebs <stan@codesourcery.com>
Make tracepoints into a type of breakpoint. * breakpoint.h (enum bptype): Add bp_tracepoint. (struct breakpoint): Add fields step_count, pass_count, actions. (get_tracepoint, get_tracepoint_by_number): Declare. (all_tracepoints): Declare. * breakpoint.c: Include tracepoint.h, readline.h. (ALL_TRACEPOINTS): Move here from tracepoint.c. (tracepoint_count): Ditto. (should_be_inserted): GDB does not insert tracepoints itself. (print_it_typical): Add tracepoint case. (bpstat_what): Ditto. (print_one_breakpoint_location): Ditto, and add printing for pass count, step count, and action list. (user_settable_breakpoint): Add tracepoint case. (allocate_bp_location): Ditto. (set_breakpoint_location_function): Ditto. (disable_breakpoints_in_shlibs): Ditto. (mention): Ditto. (break_command_really): Add argument traceflag, use to choose basic breakpoint type. (break_command_1): Pass extra argument. (set_breakpoint, handle_gnu_v3_exceptions): Ditto. (breakpoint_re_set_one): Add tracepoint case. (disable_command, enable_command): Ditto. (set_tracepoint_count): Move here from tracepoint.c. (trace_command): Move here from tracepoint.c and use break_command_really. (tracepoints_info): Move here from tracepoint.c and call breakpoints_info. (enable_trace_command): Move here from tracepoint.c and call enable_command. (disable_trace_command): Move here from tracepoint.c and call disable_command. (delete_trace_command): Move here from tracepoint.c and call delete_breakpoint. (trace_pass_command): Move here from tracepoint.c. (get_tracepoint_by_number): Ditto. (tracepoint_save_command): Ditto. (get_tracepoint): New function. (all_tracepoints): New function. (_initialize_breakpoint): Move tracepoint init from tracepoint.c, deprecate "enable trace" and "disable trace" commands. * tracepoint.h (struct tracepoint): Remove. (tracepoint_chain): Remove decl. (deprecated_create_tracepoint_hook): Remove decl. (deprecated_delete_tracepoint_hook): Remove decl. (deprecated_modify_tracepoint_hook): Remove decl. (ALL_TRACEPOINTS, ALL_TRACEPOINTS_SAFE): Remove. (free_actions): Update signature. (validate_actionline): Update signature. (end_actions_pseudocommand): Declare. (while_stepping_pseudocommand): Declare. * tracepoint.c: Include breakpoint.h. (tracepoint_chain, tracepoint_count): Remove. (free_actions, make_cleanup_free_actions): Update signature. (trace_command, set_raw_tracepoint): Remove. (trace_mention): Remove. (tracepoints_info): Remove. (tracepoint_operation, map_args_over_tracepoints): Remove. (get_tracepoint_by_number): Remove. (enable_trace_command, disable_trace_command): Remove. (delete_trace_command, trace_pass_command): Remove. (trace_actions_command, read_actions): Update signature. (validate_actionline): Update signature, use bp loc. (encode_actions): Ditto. (download_tracepoint): New function, body of trace_start_command. (trace_start_command): Call it, use all_tracepoints. (tracepoint_save_command): Remove. (tracepoint_dump_command): Use get_tracepoint. (end_actions_pseudocommand): Make globally visible. (while_stepping_pseudocommand): Ditto. (_initialize_tracepoint): Move command definitions to breakpoint.c. doc/ * gdb.texinfo (Tracepoints): Describe tracepoints as a special case of breakpoints. (Enable and Disable Tracepoints): Mention deprecation. (Listing Tracepoints): Update description and example. testsuite/ * gdb.trace/actions.exp: Update to match new info trace format. * gdb.trace/deltrace.exp: Ditto. * gdb.trace/infotrace.exp: Ditto. * gdb.trace/passcount.exp: Ditto. * gdb.trace/save-trace.exp: Ditto. * gdb.trace/while-stepping.exp: Ditto. * gdb.trace/tracecmd.exp: Ditto, plus don't allow pending option. gdbtk/ * generic/gdbtk-bp.c (gdb_actions_command): Update to handle tracepoints as breakpoints. (gdb_get_tracepoint_info): Ditto, plus use get_tracepoint and breakpoint locations. (tracepoint_exists): Ditto, plus use all_tracepoints.
Diffstat (limited to 'gdb/doc')
-rw-r--r--gdb/doc/ChangeLog7
-rw-r--r--gdb/doc/gdb.texinfo76
2 files changed, 50 insertions, 33 deletions
diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog
index 48cd98d..aab4b06 100644
--- a/gdb/doc/ChangeLog
+++ b/gdb/doc/ChangeLog
@@ -1,3 +1,10 @@
+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.
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index 304e45d..3135c18 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -8555,12 +8555,12 @@ This chapter describes the tracepoint commands and features.
@section Commands to Set Tracepoints
Before running such a @dfn{trace experiment}, an arbitrary number of
-tracepoints can be set. Like a breakpoint (@pxref{Set Breaks}), a
-tracepoint has a number assigned to it by @value{GDBN}. Like with
-breakpoints, tracepoint numbers are successive integers starting from
-one. Many of the commands associated with tracepoints take the
-tracepoint number as their argument, to identify which tracepoint to
-work on.
+tracepoints can be set. A tracepoint is actually a special type of
+breakpoint (@pxref{Set Breaks}), so you can manipulate it using
+standard breakpoint commands. For instance, as with breakpoints,
+tracepoint numbers are successive integers starting from one, and many
+of the commands associated with tracepoints take the tracepoint number
+as their argument, to identify which tracepoint to work on.
For each tracepoint, you can specify, in advance, some arbitrary set
of data that you want the target to collect in the trace buffer when
@@ -8569,6 +8569,11 @@ local variables, or global data. Later, you can use @value{GDBN}
commands to examine the values these data had at the time the
tracepoint was hit.
+Tracepoints do not support every breakpoint feature. Conditional
+expressions and ignore counts on tracepoints have no effect, and
+tracepoints cannot run @value{GDBN} commands when they are
+hit. Tracepoints may not be thread-specific either.
+
This section describes commands to set tracepoints and associated
conditions and actions.
@@ -8587,16 +8592,16 @@ conditions and actions.
@table @code
@cindex set tracepoint
@kindex trace
-@item trace
+@item trace @var{location}
The @code{trace} command is very similar to the @code{break} command.
-Its argument can be a source line, a function name, or an address in
-the target program. @xref{Set Breaks}. The @code{trace} command
-defines a tracepoint, which is a point in the target program where the
-debugger will briefly stop, collect some data, and then allow the
-program to continue. Setting a tracepoint or changing its commands
-doesn't take effect until the next @code{tstart} command; thus, you
-cannot change the tracepoint attributes once a trace experiment is
-running.
+Its argument @var{location} can be a source line, a function name, or
+an address in the target program. @xref{Specify Location}. The
+@code{trace} command defines a tracepoint, which is a point in the
+target program where the debugger will briefly stop, collect some
+data, and then allow the program to continue. Setting a tracepoint or
+changing its actions doesn't take effect until the next @code{tstart}
+command, and once a trace experiment is running, further changes will
+not have any effect until the next trace experiment starts.
Here are some examples of using the @code{trace} command:
@@ -8626,7 +8631,8 @@ of the most recently set tracepoint.
@cindex tracepoint deletion
@item delete tracepoint @r{[}@var{num}@r{]}
Permanently delete one or more tracepoints. With no argument, the
-default is to delete all tracepoints.
+default is to delete all tracepoints. Note that the regular
+@code{delete} command can remove tracepoints also.
Examples:
@@ -8643,6 +8649,8 @@ You can abbreviate this command as @code{del tr}.
@node Enable and Disable Tracepoints
@subsection Enable and Disable Tracepoints
+These commands are deprecated; they are equivalent to plain @code{disable} and @code{enable}.
+
@table @code
@kindex disable tracepoint
@item disable tracepoint @r{[}@var{num}@r{]}
@@ -8796,34 +8804,36 @@ You may abbreviate @code{while-stepping} as @code{ws} or
@kindex info tp
@cindex information about tracepoints
@item info tracepoints @r{[}@var{num}@r{]}
-Display information about the tracepoint @var{num}. If you don't specify
-a tracepoint number, displays information about all the tracepoints
-defined so far. For each tracepoint, the following information is
-shown:
+Display information about the tracepoint @var{num}. If you don't
+specify a tracepoint number, displays information about all the
+tracepoints defined so far. The format is similar to that used for
+@code{info breakpoints}; in fact, @code{info tracepoints} is the same
+command, simply restricting itself to tracepoints.
+
+A tracepoint's listing may include additional information specific to
+tracing:
@itemize @bullet
@item
-its number
-@item
-whether it is enabled or disabled
-@item
-its address
-@item
its passcount as given by the @code{passcount @var{n}} command
@item
its step count as given by the @code{while-stepping @var{n}} command
@item
-where in the source files is the tracepoint set
-@item
-its action list as given by the @code{actions} command
+its action list as given by the @code{actions} command. The actions
+are prefixed with an @samp{A} so as to distinguish them from commands.
@end itemize
@smallexample
(@value{GDBP}) @b{info trace}
-Num Enb Address PassC StepC What
-1 y 0x002117c4 0 0 <gdb_asm>
-2 y 0x0020dc64 0 0 in g_test at g_test.c:1375
-3 y 0x0020b1f4 0 0 in get_data at ../foo.c:41
+Num Type Disp Enb Address What
+1 tracepoint keep y 0x0804ab57 in foo() at main.cxx:7
+ pass count 1200
+ step count 20
+ A while-stepping 20
+ A collect globfoo, $regs
+ A end
+ A collect globfoo2
+ A end
(@value{GDBP})
@end smallexample