OpenCores
URL https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk

Subversion Repositories openrisc_2011-10-31

[/] [openrisc/] [trunk/] [gnu-src/] [gdb-7.1/] [gdb/] [tracepoint.h] - Blame information for rev 634

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 227 jeremybenn
/* Data structures associated with tracepoints in GDB.
2
   Copyright (C) 1997, 1998, 1999, 2000, 2007, 2008, 2009, 2010
3
   Free Software Foundation, Inc.
4
 
5
   This file is part of GDB.
6
 
7
   This program is free software; you can redistribute it and/or modify
8
   it under the terms of the GNU General Public License as published by
9
   the Free Software Foundation; either version 3 of the License, or
10
   (at your option) any later version.
11
 
12
   This program is distributed in the hope that it will be useful,
13
   but WITHOUT ANY WARRANTY; without even the implied warranty of
14
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
   GNU General Public License for more details.
16
 
17
   You should have received a copy of the GNU General Public License
18
   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
19
 
20
#if !defined (TRACEPOINT_H)
21
#define TRACEPOINT_H 1
22
 
23
/* The data structure for an action: */
24
struct action_line
25
  {
26
    struct action_line *next;
27
    char *action;
28
  };
29
 
30
enum actionline_type
31
  {
32
    BADLINE = -1,
33
    GENERIC = 0,
34
    END = 1,
35
    STEPPING = 2
36
  };
37
 
38
/* A trace state variable is a value managed by a target being
39
   traced. A trace state variable (or tsv for short) can be accessed
40
   and assigned to by tracepoint actions and conditionals, but is not
41
   part of the program being traced, and it doesn't have to be
42
   collected. Effectively the variables are scratch space for
43
   tracepoints.  */
44
 
45
struct trace_state_variable
46
  {
47
    /* The variable's name.  The user has to prefix with a dollar sign,
48
       but we don't store that internally.  */
49
    const char *name;
50
 
51
    /* An id number assigned by GDB, and transmitted to targets.  */
52
    int number;
53
 
54
    /* The initial value of a variable is a 64-bit signed integer.  */
55
    LONGEST initial_value;
56
 
57
    /* 1 if the value is known, else 0.  The value is known during a
58
       trace run, or in tfind mode if the variable was collected into
59
       the current trace frame.  */
60
    int value_known;
61
 
62
    /* The value of a variable is a 64-bit signed integer.  */
63
    LONGEST value;
64
 
65
    /* This is true for variables that are predefined and built into
66
       the target.  */
67
    int builtin;
68
   };
69
 
70
/* The trace status encompasses various info about the general state
71
   of the tracing run.  */
72
 
73
enum trace_stop_reason
74
  {
75
    trace_stop_reason_unknown,
76
    trace_never_run,
77
    tstop_command,
78
    trace_buffer_full,
79
    trace_disconnected,
80
    tracepoint_passcount
81
  };
82
 
83
struct trace_status
84
{
85
  /* This is true if the status is coming from a file rather
86
     than a live target.  */
87
  int from_file;
88
 
89
  /* This is true if the value of the running field is known.  */
90
  int running_known;
91
 
92
  int running;
93
 
94
  enum trace_stop_reason stop_reason;
95
 
96
  int stopping_tracepoint;
97
 
98
  int traceframe_count;
99
 
100
  unsigned long long buffer_size;
101
 
102
  unsigned long long buffer_free;
103
};
104
 
105
struct trace_status *current_trace_status (void);
106
 
107
extern char *default_collect;
108
 
109
/* Struct to collect random info about tracepoints on the target.  */
110
 
111
struct uploaded_tp {
112
  int number;
113
  enum bptype type;
114
  ULONGEST addr;
115
  int enabled;
116
  int step;
117
  int pass;
118
  int orig_size;
119
  char *cond;
120
  int numactions;
121
  char *actions[100];
122
  int num_step_actions;
123
  char *step_actions[100];
124
  struct uploaded_tp *next;
125
};
126
 
127
/* Struct recording info about trace state variables on the target.  */
128
 
129
struct uploaded_tsv {
130
  const char *name;
131
  int number;
132
  LONGEST initial_value;
133
  int builtin;
134
  struct uploaded_tsv *next;
135
};
136
 
137
/* A hook used to notify the UI of tracepoint operations.  */
138
 
139
extern void (*deprecated_trace_find_hook) (char *arg, int from_tty);
140
extern void (*deprecated_trace_start_stop_hook) (int start, int from_tty);
141
 
142
int get_traceframe_number (void);
143
void set_traceframe_number (int);
144
struct cleanup *make_cleanup_restore_current_traceframe (void);
145
 
146
void free_actions (struct breakpoint *);
147
enum actionline_type validate_actionline (char **, struct breakpoint *);
148
 
149
extern void end_actions_pseudocommand (char *args, int from_tty);
150
extern void while_stepping_pseudocommand (char *args, int from_tty);
151
 
152
extern struct trace_state_variable *find_trace_state_variable (const char *name);
153
 
154
extern void parse_trace_status (char *line, struct trace_status *ts);
155
 
156
extern void parse_tracepoint_definition (char *line, struct uploaded_tp **utpp);
157
extern void parse_tsv_definition (char *line, struct uploaded_tsv **utsvp);
158
 
159
extern struct uploaded_tp *get_uploaded_tp (int num, ULONGEST addr,
160
                                            struct uploaded_tp **utpp);
161
extern struct breakpoint *create_tracepoint_from_upload (struct uploaded_tp *utp);
162
extern void merge_uploaded_tracepoints (struct uploaded_tp **utpp);
163
extern void merge_uploaded_trace_state_variables (struct uploaded_tsv **utsvp);
164
 
165
#endif  /* TRACEPOINT_H */

powered by: WebSVN 2.1.0

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