OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [gdb-5.3/] [gdb/] [tracepoint.h] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1181 sfurman
/* Data structures associated with tracepoints in GDB.
2
   Copyright 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
3
 
4
   This file is part of GDB.
5
 
6
   This program is free software; you can redistribute it and/or modify
7
   it under the terms of the GNU General Public License as published by
8
   the Free Software Foundation; either version 2 of the License, or
9
   (at your option) any later version.
10
 
11
   This program is distributed in the hope that it will be useful,
12
   but WITHOUT ANY WARRANTY; without even the implied warranty of
13
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
   GNU General Public License for more details.
15
 
16
   You should have received a copy of the GNU General Public License
17
   along with this program; if not, write to the Free Software
18
   Foundation, Inc., 59 Temple Place - Suite 330,
19
   Boston, MA 02111-1307, USA.  */
20
 
21
#if !defined (TRACEPOINT_H)
22
#define TRACEPOINT_H 1
23
 
24
/* The data structure for an action: */
25
struct action_line
26
  {
27
    struct action_line *next;
28
    char *action;
29
  };
30
 
31
/* The data structure for a tracepoint: */
32
 
33
struct tracepoint
34
  {
35
    struct tracepoint *next;
36
 
37
    int enabled_p;
38
 
39
#if 0
40
    /* Type of tracepoint (MVS FIXME: needed?). */
41
    enum tptype type;
42
 
43
    /* What to do with this tracepoint after we hit it MVS FIXME: needed?). */
44
    enum tpdisp disposition;
45
#endif
46
    /* Number assigned to distinguish tracepoints.  */
47
    int number;
48
 
49
    /* Address to trace at, or NULL if not an instruction tracepoint (MVS ?). */
50
    CORE_ADDR address;
51
 
52
    /* Line number of this address.  Only matters if address is non-NULL.  */
53
    int line_number;
54
 
55
    /* Source file name of this address.  Only matters if address is non-NULL. */
56
    char *source_file;
57
 
58
    /* Number of times this tracepoint should single-step
59
       and collect additional data */
60
    long step_count;
61
 
62
    /* Number of times this tracepoint should be hit before disabling/ending. */
63
    int pass_count;
64
 
65
    /* Chain of action lines to execute when this tracepoint is hit. */
66
    struct action_line *actions;
67
 
68
    /* Conditional (MVS ?).  */
69
    struct expression *cond;
70
 
71
    /* String we used to set the tracepoint (malloc'd).  Only matters if
72
       address is non-NULL.  */
73
    char *addr_string;
74
 
75
    /* Language we used to set the tracepoint.  */
76
    enum language language;
77
 
78
    /* Input radix we used to set the tracepoint.  */
79
    int input_radix;
80
 
81
    /* Count of the number of times this tracepoint was taken, dumped
82
       with the info, but not used for anything else.  Useful for
83
       seeing how many times you hit a tracepoint prior to the program
84
       aborting, so you can back up to just before the abort.  */
85
    int hit_count;
86
 
87
    /* Thread number for thread-specific tracepoint, or -1 if don't care */
88
    int thread;
89
 
90
    /* BFD section, in case of overlays:
91
       no, I don't know if tracepoints are really gonna work with overlays.  */
92
    asection *section;
93
  };
94
 
95
enum actionline_type
96
  {
97
    BADLINE = -1,
98
    GENERIC = 0,
99
    END = 1,
100
    STEPPING = 2
101
  };
102
 
103
 
104
/* The tracepoint chain of all tracepoints */
105
 
106
extern struct tracepoint *tracepoint_chain;
107
 
108
extern unsigned long trace_running_p;
109
 
110
/* A hook used to notify the UI of tracepoint operations */
111
 
112
void (*create_tracepoint_hook) (struct tracepoint *);
113
void (*delete_tracepoint_hook) (struct tracepoint *);
114
void (*modify_tracepoint_hook) (struct tracepoint *);
115
void (*trace_find_hook) (char *arg, int from_tty);
116
void (*trace_start_stop_hook) (int start, int from_tty);
117
 
118
struct tracepoint *get_tracepoint_by_number (char **, int, int);
119
int get_traceframe_number (void);
120
void free_actions (struct tracepoint *);
121
enum actionline_type validate_actionline (char **, struct tracepoint *);
122
 
123
 
124
/* Walk the following statement or block through all tracepoints.
125
   ALL_TRACEPOINTS_SAFE does so even if the statment deletes the current
126
   breakpoint.  */
127
 
128
#define ALL_TRACEPOINTS(t)  for (t = tracepoint_chain; t; t = t->next)
129
 
130
#define ALL_TRACEPOINTS_SAFE(t,tmp)     \
131
        for (t = tracepoint_chain;      \
132
             t ? (tmp = t->next, 1) : 0;\
133
             t = tmp)
134
#endif /* TRACEPOINT_H */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.