This is the mail archive of the mailing list for the GDB project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] Tracing notes and metadata

This patch brings social networking to GDB! :-) OK, it's a little more mundane; a consequence of disconnecting tracing is that the tracing run can be out on its own for a long time, and in a lab situation with multiple users, it is useful to be able to tell other people something about the trace run in progress, so they can know whether to leave it alone, try to contact you, or shut it down with a note explaining why you needed to stop it.

With this patch, any arguments to tstart and tstop are recorded with the trace run as free-form text, and reported as part of its status. Also, there is a trace-user variable (which is free form text which is typically constant and you can set in your .gdbinit), and set/show variables for the start and stop notes as well.

In addition, this patch adds start/stop timestamps and per-tracepoint hit counts and traceframe usage.

The patch still needs testsuite and NEWS, but considering the user interface tinkering, it seemed like a good idea to solicit feedback before committing to all the details.


2011-10-17 Stan Shebs <>

    * 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): Update.
    (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.
    (start_time): New global.
    (stop_time): New global.
    (tracing_user_name): New global.
    (tracing_notes): 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.

Attachment: tmeta-patch-1
Description: Text document

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]