URL
https://opencores.org/ocsvn/scarts/scarts/trunk
Subversion Repositories scarts
[/] [scarts/] [trunk/] [toolchain/] [scarts-gdb/] [gdb-6.8/] [gdb/] [tracepoint.h] - Rev 25
Compare with Previous | Blame | View Log
/* Data structures associated with tracepoints in GDB. Copyright (C) 1997, 1998, 1999, 2000, 2007, 2008 Free Software Foundation, Inc. This file is part of GDB. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ #if !defined (TRACEPOINT_H) #define TRACEPOINT_H 1 /* The data structure for an action: */ struct action_line { struct action_line *next; 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. */ asection *section; }; enum actionline_type { BADLINE = -1, GENERIC = 0, END = 1, 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. */ #define ALL_TRACEPOINTS(t) for (t = tracepoint_chain; t; t = t->next) #define ALL_TRACEPOINTS_SAFE(t,tmp) \ for (t = tracepoint_chain; \ t ? (tmp = t->next, 1) : 0;\ t = tmp) #endif /* TRACEPOINT_H */