gdb/
[binutils-gdb.git] / gdb / tracepoint.h
index f43f736f30dde3a715f4185ccdd20f241d1bea62..5d2862a7b6619fde40a9138a1acfdfe30aa5b2d3 100644 (file)
@@ -1,5 +1,5 @@
 /* Data structures associated with tracepoints in GDB.
-   Copyright (C) 1997, 1998, 1999, 2000, 2007, 2008, 2009
+   Copyright (C) 1997, 1998, 1999, 2000, 2007, 2008, 2009, 2010
    Free Software Foundation, Inc.
 
    This file is part of GDB.
@@ -35,12 +35,42 @@ enum actionline_type
     STEPPING = 2
   };
 
+/* A trace state variable is a value managed by a target being
+   traced. A trace state variable (or tsv for short) can be accessed
+   and assigned to by tracepoint actions and conditionals, but is not
+   part of the program being traced, and it doesn't have to be
+   collected. Effectively the variables are scratch space for
+   tracepoints.  */
+
+struct trace_state_variable
+  {
+    /* The variable's name.  The user has to prefix with a dollar sign,
+       but we don't store that internally.  */
+    const char *name;
+
+    /* An id number assigned by GDB, and transmitted to targets.  */
+    int number;
+
+    /* The initial value of a variable is a 64-bit signed integer.  */
+    LONGEST initial_value;
+
+    /* 1 if the value is known, else 0.  The value is known during a
+       trace run, or in tfind mode if the variable was collected into
+       the current trace frame.  */
+    int value_known;
+
+    /* The value of a variable is a 64-bit signed integer.  */
+    LONGEST value;
+  };
+
 extern unsigned long trace_running_p;
 
+extern char *default_collect;
+
 /* A hook used to notify the UI of tracepoint operations.  */
 
-void (*deprecated_trace_find_hook) (char *arg, int from_tty);
-void (*deprecated_trace_start_stop_hook) (int start, int from_tty);
+extern void (*deprecated_trace_find_hook) (char *arg, int from_tty);
+extern void (*deprecated_trace_start_stop_hook) (int start, int from_tty);
 
 int get_traceframe_number (void);
 void free_actions (struct breakpoint *);
@@ -49,4 +79,6 @@ enum actionline_type validate_actionline (char **, struct breakpoint *);
 extern void end_actions_pseudocommand (char *args, int from_tty);
 extern void while_stepping_pseudocommand (char *args, int from_tty);
 
+extern struct trace_state_variable *find_trace_state_variable (const char *name);
+
 #endif /* TRACEPOINT_H */