diff options
Diffstat (limited to 'gdb/tracefile.c')
-rw-r--r-- | gdb/tracefile.c | 122 |
1 files changed, 56 insertions, 66 deletions
diff --git a/gdb/tracefile.c b/gdb/tracefile.c index b4543c9..ce1e8ed 100644 --- a/gdb/tracefile.c +++ b/gdb/tracefile.c @@ -28,15 +28,13 @@ /* Helper macros. */ -#define TRACE_WRITE_R_BLOCK(writer, buf, size) \ +#define TRACE_WRITE_R_BLOCK(writer, buf, size) \ writer->ops->frame_ops->write_r_block ((writer), (buf), (size)) -#define TRACE_WRITE_M_BLOCK_HEADER(writer, addr, size) \ - writer->ops->frame_ops->write_m_block_header ((writer), (addr), \ - (size)) -#define TRACE_WRITE_M_BLOCK_MEMORY(writer, buf, size) \ - writer->ops->frame_ops->write_m_block_memory ((writer), (buf), \ - (size)) -#define TRACE_WRITE_V_BLOCK(writer, num, val) \ +#define TRACE_WRITE_M_BLOCK_HEADER(writer, addr, size) \ + writer->ops->frame_ops->write_m_block_header ((writer), (addr), (size)) +#define TRACE_WRITE_M_BLOCK_MEMORY(writer, buf, size) \ + writer->ops->frame_ops->write_m_block_memory ((writer), (buf), (size)) +#define TRACE_WRITE_V_BLOCK(writer, num, val) \ writer->ops->frame_ops->write_v_block ((writer), (num), (val)) /* A unique pointer policy class for trace_file_writer. */ @@ -53,7 +51,7 @@ struct trace_file_writer_deleter /* A unique_ptr specialization for trace_file_writer. */ typedef std::unique_ptr<trace_file_writer, trace_file_writer_deleter> - trace_file_writer_up; + trace_file_writer_up; /* Save tracepoint data to file named FILENAME through WRITER. WRITER determines the trace file format. If TARGET_DOES_SAVE is non-zero, @@ -78,8 +76,7 @@ trace_save (const char *filename, struct trace_file_writer *writer, if (target_does_save) { if (!writer->ops->target_save (writer, filename)) - error (_("Target failed to save trace data to '%s'."), - filename); + error (_ ("Target failed to save trace data to '%s'."), filename); return; } @@ -150,7 +147,7 @@ trace_save (const char *filename, struct trace_file_writer *writer, gotten = target_get_raw_trace_data (buf.data (), offset, MAX_TRACE_UPLOAD); if (gotten < 0) - error (_("Failure to get requested trace buffer data")); + error (_ ("Failure to get requested trace buffer data")); /* No more data is forthcoming, we're done. */ if (gotten == 0) break; @@ -173,11 +170,11 @@ trace_save (const char *filename, struct trace_file_writer *writer, /* Read the first six bytes in, which is the tracepoint number and trace frame size. */ - tp_num = (uint16_t) - extract_unsigned_integer (&((buf.data ())[0]), 2, byte_order); + tp_num = (uint16_t) extract_unsigned_integer (&((buf.data ())[0]), 2, + byte_order); - tf_size = (uint32_t) - extract_unsigned_integer (&((buf.data ())[2]), 4, byte_order); + tf_size = (uint32_t) extract_unsigned_integer (&((buf.data ())[2]), + 4, byte_order); writer->ops->frame_ops->start (writer, tp_num); gotten = 6; @@ -188,17 +185,16 @@ trace_save (const char *filename, struct trace_file_writer *writer, offset += 6; - for (block = 0; block < tf_size; ) + for (block = 0; block < tf_size;) { gdb_byte block_type; /* We'll fetch one block each time, in order to handle the extremely large 'M' block. We first fetch one byte to get the type of the block. */ - gotten = target_get_raw_trace_data (buf.data (), - offset, 1); + gotten = target_get_raw_trace_data (buf.data (), offset, 1); if (gotten < 1) - error (_("Failure to get requested trace buffer data")); + error (_ ("Failure to get requested trace buffer data")); gotten = 1; block += 1; @@ -208,12 +204,11 @@ trace_save (const char *filename, struct trace_file_writer *writer, switch (block_type) { case 'R': - gotten - = target_get_raw_trace_data (buf.data (), offset, - trace_regblock_size); + gotten = target_get_raw_trace_data (buf.data (), offset, + trace_regblock_size); if (gotten < trace_regblock_size) - error (_("Failure to get requested trace" - " buffer data")); + error (_ ("Failure to get requested trace" + " buffer data")); TRACE_WRITE_R_BLOCK (writer, buf.data (), trace_regblock_size); @@ -225,30 +220,29 @@ trace_save (const char *filename, struct trace_file_writer *writer, LONGEST t; int j; - t = target_get_raw_trace_data (buf.data (), - offset, 10); + t = target_get_raw_trace_data (buf.data (), offset, + 10); if (t < 10) - error (_("Failure to get requested trace" - " buffer data")); + error (_ ("Failure to get requested trace" + " buffer data")); offset += 10; block += 10; gotten = 0; - addr = (ULONGEST) - extract_unsigned_integer (buf.data (), 8, - byte_order); - mlen = (unsigned short) - extract_unsigned_integer (&((buf.data ())[8]), 2, - byte_order); + addr + = (ULONGEST) extract_unsigned_integer (buf.data (), + 8, + byte_order); + mlen = (unsigned short) extract_unsigned_integer ( + &((buf.data ())[8]), 2, byte_order); - TRACE_WRITE_M_BLOCK_HEADER (writer, addr, - mlen); + TRACE_WRITE_M_BLOCK_HEADER (writer, addr, mlen); /* The memory contents in 'M' block may be very large. Fetch the data from the target and write them into file one by one. */ - for (j = 0; j < mlen; ) + for (j = 0; j < mlen;) { unsigned int read_length; @@ -261,11 +255,10 @@ trace_save (const char *filename, struct trace_file_writer *writer, offset + j, read_length); if (t < read_length) - error (_("Failure to get requested" - " trace buffer data")); + error (_ ("Failure to get requested" + " trace buffer data")); - TRACE_WRITE_M_BLOCK_MEMORY (writer, - buf.data (), + TRACE_WRITE_M_BLOCK_MEMORY (writer, buf.data (), read_length); j += read_length; @@ -279,26 +272,23 @@ trace_save (const char *filename, struct trace_file_writer *writer, int vnum; LONGEST val; - gotten - = target_get_raw_trace_data (buf.data (), - offset, 12); + gotten = target_get_raw_trace_data (buf.data (), + offset, 12); if (gotten < 12) - error (_("Failure to get requested" - " trace buffer data")); + error (_ ("Failure to get requested" + " trace buffer data")); - vnum = (int) extract_signed_integer (buf.data (), - 4, - byte_order); - val - = extract_signed_integer (&((buf.data ())[4]), - 8, byte_order); + vnum = (int) extract_signed_integer (buf.data (), 4, + byte_order); + val = extract_signed_integer (&((buf.data ())[4]), 8, + byte_order); TRACE_WRITE_V_BLOCK (writer, vnum, val); } break; default: - error (_("Unknown block type '%c' (0x%x) in" - " trace frame"), + error (_ ("Unknown block type '%c' (0x%x) in" + " trace frame"), block_type, block_type); } @@ -325,7 +315,7 @@ tsave_command (const char *args, int from_tty) int generate_ctf = 0; if (args == NULL) - error_no_arg (_("file in which to save trace data")); + error_no_arg (_ ("file in which to save trace data")); gdb_argv built_argv (args); argv = built_argv.get (); @@ -337,13 +327,13 @@ tsave_command (const char *args, int from_tty) else if (strcmp (*argv, "-ctf") == 0) generate_ctf = 1; else if (**argv == '-') - error (_("unknown option `%s'"), *argv); + error (_ ("unknown option `%s'"), *argv); else filename = *argv; } if (!filename) - error_no_arg (_("file in which to save trace data")); + error_no_arg (_ ("file in which to save trace data")); if (generate_ctf) trace_save_ctf (filename, target_does_save); @@ -351,7 +341,7 @@ tsave_command (const char *args, int from_tty) trace_save_tfile (filename, target_does_save); if (from_tty) - gdb_printf (_("Trace data saved to %s '%s'.\n"), + gdb_printf (_ ("Trace data saved to %s '%s'.\n"), generate_ctf ? "directory" : "file", filename); } @@ -396,23 +386,22 @@ tracefile_fetch_registers (struct regcache *regcache, int regno) /* But don't try to guess if tracepoint is multi-location... */ if (tp->loc->next) { - warning (_("Tracepoint %d has multiple " - "locations, cannot infer $pc"), + warning (_ ("Tracepoint %d has multiple " + "locations, cannot infer $pc"), tp->number); return; } /* ... or does while-stepping. */ else if (tp->step_count > 0) { - warning (_("Tracepoint %d does while-stepping, " - "cannot infer $pc"), + warning (_ ("Tracepoint %d does while-stepping, " + "cannot infer $pc"), tp->number); return; } /* Guess what we can from the tracepoint location. */ - gdbarch_guess_tracepoint_registers (gdbarch, regcache, - tp->loc->address); + gdbarch_guess_tracepoint_registers (gdbarch, regcache, tp->loc->address); } /* This is the implementation of target_ops method to_has_all_memory. */ @@ -473,10 +462,11 @@ tracefile_target::get_trace_status (struct trace_status *ts) } void _initialize_tracefile (); + void _initialize_tracefile () { - add_com ("tsave", class_trace, tsave_command, _("\ + add_com ("tsave", class_trace, tsave_command, _ ("\ Save the trace data to a file.\n\ Use the '-ctf' option to save the data to CTF format.\n\ Use the '-r' option to direct the target to save directly to the file,\n\ |