/* Data structures associated with tracepoints in GDB.
- Copyright (C) 1997, 1998, 1999, 2000, 2007, 2008, 2009, 2010, 2011
- Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of GDB.
#include "breakpoint.h"
#include "target.h"
#include "memrange.h"
+#include "gdb_vecs.h"
/* A trace state variable is a value managed by a target being
traced. A trace state variable (or tsv for short) can be accessed
struct trace_status
{
- /* This is true if the status is coming from a file rather
- than a live target. */
- int from_file;
+ /* If the status is coming from a file rather than a live target,
+ this points at the file's filename. Otherwise, this is NULL. */
+ const char *filename;
/* This is true if the value of the running field is known. */
int running_known;
+ /* This is true when the trace experiment is actually running. */
int running;
enum trace_stop_reason stop_reason;
stop. */
int stopping_tracepoint;
- /* If stop_reason is tracepoint_error, this is a human-readable
- string that describes the error that happened on the target. */
- char *error_desc;
+ /* If stop_reason is tstop_command or tracepoint_error, this is an
+ arbitrary string that may describe the reason for the stop in
+ more detail. */
+
+ char *stop_desc;
/* Number of traceframes currently in the buffer. */
target does not report a value, assume 0. */
int circular_buffer;
+
+ /* The "name" of the person running the trace. This is an
+ arbitrary string. */
+
+ char *user_name;
+
+ /* "Notes" about the trace. This is an arbitrary string not
+ interpreted by GDBserver in any special way. */
+
+ char *notes;
+
+ /* The calendar times at which the trace run started and stopped,
+ both expressed in microseconds of Unix time. */
+
+ LONGEST start_time;
+ LONGEST stop_time;
};
struct trace_status *current_trace_status (void);
/* Struct to collect random info about tracepoints on the target. */
-DEF_VEC_P (char_ptr);
-
struct uploaded_tp
{
int number;
/* List of original strings defining the tracepoint's actions. */
VEC(char_ptr) *cmd_strings;
+ /* The tracepoint's current hit count. */
+ int hit_count;
+
+ /* The tracepoint's current traceframe usage. */
+ ULONGEST traceframe_usage;
+
struct uploaded_tp *next;
};
(char *line, char **pp,
struct static_tracepoint_marker *marker);
extern void release_static_tracepoint_marker (struct static_tracepoint_marker *);
+extern void free_current_marker (void *arg);
/* A hook used to notify the UI of tracepoint operations. */
extern char *decode_agent_options (char *exp);
-extern void validate_actionline (char **, struct breakpoint *);
+extern void encode_actions (struct breakpoint *t, struct bp_location *tloc,
+ char ***tdp_actions, char ***stepping_actions);
-extern void end_actions_pseudocommand (char *args, int from_tty);
-extern void while_stepping_pseudocommand (char *args, int from_tty);
+extern void validate_actionline (char **, struct breakpoint *);
+extern void validate_trace_state_variable_name (const char *name);
extern struct trace_state_variable *find_trace_state_variable (const char *name);
extern struct trace_state_variable *create_trace_state_variable (const char *name);
extern void parse_trace_status (char *line, struct trace_status *ts);
+extern void parse_tracepoint_status (char *p, struct breakpoint *tp,
+ struct uploaded_tp *utp);
+
extern void parse_tracepoint_definition (char *line,
struct uploaded_tp **utpp);
extern void parse_tsv_definition (char *line, struct uploaded_tsv **utsvp);
extern void disconnect_tracing (int from_tty);
-extern void start_tracing (void);
-extern void stop_tracing (void);
+extern void start_tracing (char *notes);
+extern void stop_tracing (char *notes);
extern void trace_status_mi (int on_stop);