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/tracepoint.h | |
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/tracepoint.h')
-rw-r--r-- | gdb/tracepoint.h | 95 |
1 files changed, 4 insertions, 91 deletions
diff --git a/gdb/tracepoint.h b/gdb/tracepoint.h index 171aaae..f43f736 100644 --- a/gdb/tracepoint.h +++ b/gdb/tracepoint.h @@ -27,76 +27,6 @@ struct action_line char *action; }; -/* The data structure for a tracepoint: */ - -struct tracepoint - { - struct tracepoint *next; - - int enabled_p; - -#if 0 - /* Type of tracepoint. (MVS FIXME: needed?) */ - enum tptype type; - - /* What to do with this tracepoint after we hit it - MVS FIXME: needed?). */ - enum tpdisp disposition; -#endif - /* Number assigned to distinguish tracepoints. */ - int number; - - /* Address to trace at, or NULL if not an instruction tracepoint. - (MVS ?) */ - CORE_ADDR address; - - /* Line number of this address. - Only matters if address is non-NULL. */ - int line_number; - - /* Source file name of this address. - Only matters if address is non-NULL. */ - char *source_file; - - /* Number of times this tracepoint should single-step - and collect additional data. */ - long step_count; - - /* Number of times this tracepoint should be hit before - disabling/ending. */ - int pass_count; - - /* Chain of action lines to execute when this tracepoint is hit. */ - struct action_line *actions; - - /* Conditional (MVS ?). */ - struct expression *cond; - - /* String we used to set the tracepoint (malloc'd). - Only matters if address is non-NULL. */ - char *addr_string; - - /* Language we used to set the tracepoint. */ - enum language language; - - /* Input radix we used to set the tracepoint. */ - int input_radix; - - /* Count of the number of times this tracepoint was taken, dumped - with the info, but not used for anything else. Useful for - seeing how many times you hit a tracepoint prior to the program - aborting, so you can back up to just before the abort. */ - int hit_count; - - /* Thread number for thread-specific tracepoint, - or -1 if don't care. */ - int thread; - - /* BFD section, in case of overlays: no, I don't know if - tracepoints are really gonna work with overlays. */ - struct obj_section *section; - }; - enum actionline_type { BADLINE = -1, @@ -105,35 +35,18 @@ enum actionline_type STEPPING = 2 }; - -/* The tracepoint chain of all tracepoints. */ - -extern struct tracepoint *tracepoint_chain; - extern unsigned long trace_running_p; /* A hook used to notify the UI of tracepoint operations. */ -void (*deprecated_create_tracepoint_hook) (struct tracepoint *); -void (*deprecated_delete_tracepoint_hook) (struct tracepoint *); -void (*deprecated_modify_tracepoint_hook) (struct tracepoint *); void (*deprecated_trace_find_hook) (char *arg, int from_tty); void (*deprecated_trace_start_stop_hook) (int start, int from_tty); -struct tracepoint *get_tracepoint_by_number (char **, int, int); int get_traceframe_number (void); -void free_actions (struct tracepoint *); -enum actionline_type validate_actionline (char **, struct tracepoint *); - - -/* Walk the following statement or block through all tracepoints. - ALL_TRACEPOINTS_SAFE does so even if the statment deletes the - current breakpoint. */ +void free_actions (struct breakpoint *); +enum actionline_type validate_actionline (char **, struct breakpoint *); -#define ALL_TRACEPOINTS(t) for (t = tracepoint_chain; t; t = t->next) +extern void end_actions_pseudocommand (char *args, int from_tty); +extern void while_stepping_pseudocommand (char *args, int from_tty); -#define ALL_TRACEPOINTS_SAFE(t,tmp) \ - for (t = tracepoint_chain; \ - t ? (tmp = t->next, 1) : 0;\ - t = tmp) #endif /* TRACEPOINT_H */ |