diff options
author | Stan Shebs <shebs@codesourcery.com> | 2009-03-31 05:08:37 +0000 |
---|---|---|
committer | Stan Shebs <shebs@codesourcery.com> | 2009-03-31 05:08:37 +0000 |
commit | 1042e4c05807ca36c83ed8882cb624e45ec43757 (patch) | |
tree | bd17fac891e42560824e15ec6d346b823d4ba07d /gdb/doc | |
parent | adfd7328359958d6ad31521278cc5f44b96ae30c (diff) | |
download | gdb-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/ChangeLog | 7 | ||||
-rw-r--r-- | gdb/doc/gdb.texinfo | 76 |
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 |