diff options
author | Stan Shebs <shebs@codesourcery.com> | 2011-11-20 23:59:49 +0000 |
---|---|---|
committer | Stan Shebs <shebs@codesourcery.com> | 2011-11-20 23:59:49 +0000 |
commit | f196051f5ee7f3aa3f417611a488ba773878a429 (patch) | |
tree | 25de238e78d9db1ad631611a10bcfd298b472a49 /gdb/tracepoint.h | |
parent | 9866a1803a670e48d8fedf0e33d0eb5141192318 (diff) | |
download | gdb-f196051f5ee7f3aa3f417611a488ba773878a429.zip gdb-f196051f5ee7f3aa3f417611a488ba773878a429.tar.gz gdb-f196051f5ee7f3aa3f417611a488ba773878a429.tar.bz2 |
* NEWS: Mention tracepoint additions.
* breakpoint.h (struct tracepoint): New field traceframe_usage.
* breakpoint.c (print_one_breakpoint_location): Identify
tracepoints as such when reporting hit counts, report
trace buffer usage.
(create_tracepoint_from_upload): Copy status info.
* tracepoint.h (struct trace_status): Rename error_desc to stop_desc,
add fields user_name, notes, start_time, stop_time.
(struct uploaded_tp): Add fields hit_count, traceframe_usage.
* tracepoint.c (trace_user): New global.
(trace_notes): New global.
(trace_stop_notes): New global.
(start_tracing): Add argument and trace note handling.
(stop_tracing): Ditto.
(trace_start_command): Add notes argument.
(trace_stop_command): Ditto.
(trace_status_command): Report additional status info.
(trace_status_mi): Similarly.
(trace_save): Update, record tracepoint status.
(set_disconnected_tracing): Call target method directly.
(send_disconnected_tracing_value): Remove.
(set_trace_user): New function.
(set_trace_notes): New function.
(set_trace_stop_notes): New function.
(parse_trace_status): Handle additional status.
(parse_tracepoint_status): New function.
(parse_tracepoint_definition): Call it.
(tfile_get_tracepoint_status): New function.
(init_tfile_ops): Use it.
(_initialize_tracepoint): Add new setshows.
* target.h (struct target_ops): New methods to_get_tracepoint_status
and to_set_trace_notes.
(target_get_tracepoint_status): New macro.
(target_set_trace_notes): New macro.
* target.c (update_current_target): Add new methods.
* remote.c (remote_get_tracepoint_status): New function.
(remote_set_trace_notes): New function.
(init_remote_ops): Add them.
* mi/mi-main.c (mi_cmd_trace_start): Add argument to call.
(mi_cmd_trace_stop): Ditto.
* tracepoint.c (struct tracepoint): New field traceframe_usage.
(tracing_start_time): New global.
(tracing_stop_time): New global.
(tracing_user_name): New global.
(tracing_notes): New global.
(tracing_stop_note): New global.
(cmd_qtstart): Set traceframe_usage, start_time.
(stop_tracing): Set stop_time.
(cmd_qtstatus): Report additional status.
(cmd_qtp): New function.
(handle_tracepoint_query): Call it.
(cmd_qtnotes): New function.
(handle_tracepoint_general_set): Call it.
(get_timestamp): Rename from tsv_get_timestamp.
* gdb.texinfo (Starting and Stopping Trace Experiments): Document
note-related options and variables.
(Tracepoint Packets): Document packet changes.
* gdb.trace/tstatus.exp: New.
* gdb.trace/actions.c: Include string.h.
Diffstat (limited to 'gdb/tracepoint.h')
-rw-r--r-- | gdb/tracepoint.h | 38 |
1 files changed, 33 insertions, 5 deletions
diff --git a/gdb/tracepoint.h b/gdb/tracepoint.h index bf8fa44..b112352 100644 --- a/gdb/tracepoint.h +++ b/gdb/tracepoint.h @@ -79,6 +79,7 @@ struct trace_status /* 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; @@ -88,9 +89,11 @@ struct trace_status 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. */ @@ -117,6 +120,22 @@ struct trace_status 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); @@ -154,6 +173,12 @@ struct uploaded_tp /* 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; }; @@ -229,6 +254,9 @@ extern int encode_source_string (int num, ULONGEST addr, 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); @@ -241,8 +269,8 @@ extern void merge_uploaded_trace_state_variables (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); |