X-Git-Url: https://review.openocd.org/gitweb?a=blobdiff_plain;f=src%2Ftarget%2Ftrace.c;h=f2ceb03d95009f313e86867a18ddc6f85097b352;hb=d74f11dcd43914702ea7b011c4bbb7da8d4a2f5c;hp=56a18a4f9fe3de5d1bc0baa6def514ef72e03168;hpb=b3bf1d12b2fdfba1c1cbee3e1afbfbb27cbd1a26;p=openocd.git diff --git a/src/target/trace.c b/src/target/trace.c index 56a18a4f9f..f2ceb03d95 100644 --- a/src/target/trace.c +++ b/src/target/trace.c @@ -13,10 +13,9 @@ * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + * along with this program. If not, see . * ***************************************************************************/ + #ifdef HAVE_CONFIG_H #include "config.h" #endif @@ -34,11 +33,9 @@ int trace_point(struct target *target, uint32_t number) if (number < trace->num_trace_points) trace->trace_points[number].hit_counter++; - if (trace->trace_history_size) - { + if (trace->trace_history_size) { trace->trace_history[trace->trace_history_pos++] = number; - if (trace->trace_history_pos == trace->trace_history_size) - { + if (trace->trace_history_pos == trace->trace_history_size) { trace->trace_history_pos = 0; trace->trace_history_overflowed = 1; } @@ -52,13 +49,11 @@ COMMAND_HANDLER(handle_trace_point_command) struct target *target = get_current_target(CMD_CTX); struct trace *trace = target->trace_info; - if (CMD_ARGC == 0) - { + if (CMD_ARGC == 0) { uint32_t i; - for (i = 0; i < trace->num_trace_points; i++) - { - command_print(CMD_CTX, "trace point 0x%8.8" PRIx32 " (%lld times hit)", + for (i = 0; i < trace->num_trace_points; i++) { + command_print(CMD, "trace point 0x%8.8" PRIx32 " (%lld times hit)", trace->trace_points[i].address, (long long)trace->trace_points[i].hit_counter); } @@ -66,13 +61,10 @@ COMMAND_HANDLER(handle_trace_point_command) return ERROR_OK; } - if (!strcmp(CMD_ARGV[0], "clear")) - { - if (trace->trace_points) - { - free(trace->trace_points); - trace->trace_points = NULL; - } + if (!strcmp(CMD_ARGV[0], "clear")) { + free(trace->trace_points); + trace->trace_points = NULL; + trace->num_trace_points = 0; trace->trace_points_size = 0; @@ -80,9 +72,9 @@ COMMAND_HANDLER(handle_trace_point_command) } /* resize array if necessary */ - if (!trace->trace_points || (trace->trace_points_size == trace->num_trace_points)) - { - trace->trace_points = realloc(trace->trace_points, sizeof(struct trace_point) * (trace->trace_points_size + 32)); + if (!trace->trace_points || (trace->trace_points_size == trace->num_trace_points)) { + trace->trace_points = realloc(trace->trace_points, + sizeof(struct trace_point) * (trace->trace_points_size + 32)); trace->trace_points_size += 32; } @@ -100,56 +92,46 @@ COMMAND_HANDLER(handle_trace_history_command) struct target *target = get_current_target(CMD_CTX); struct trace *trace = target->trace_info; - if (CMD_ARGC > 0) - { + if (CMD_ARGC > 0) { trace->trace_history_pos = 0; trace->trace_history_overflowed = 0; - if (!strcmp(CMD_ARGV[0], "clear")) - { + if (!strcmp(CMD_ARGV[0], "clear")) { /* clearing is implicit, we've just reset position anyway */ return ERROR_OK; } - if (trace->trace_history) - free(trace->trace_history); + free(trace->trace_history); COMMAND_PARSE_NUMBER(u32, CMD_ARGV[0], trace->trace_history_size); trace->trace_history = malloc(sizeof(uint32_t) * trace->trace_history_size); - command_print(CMD_CTX, "new trace history size: %i", (int)(trace->trace_history_size)); - } - else - { + command_print(CMD, "new trace history size: %i", (int)(trace->trace_history_size)); + } else { uint32_t i; uint32_t first = 0; uint32_t last = trace->trace_history_pos; if (!trace->trace_history_size) { - command_print(CMD_CTX, "trace history buffer is not allocated"); + command_print(CMD, "trace history buffer is not allocated"); return ERROR_OK; } - if (trace->trace_history_overflowed) - { + + if (trace->trace_history_overflowed) { first = trace->trace_history_pos; last = trace->trace_history_pos - 1; } - for (i = first; (i % trace->trace_history_size) != last; i++) - { - if (trace->trace_history[i % trace->trace_history_size] < trace->num_trace_points) - { + for (i = first; (i % trace->trace_history_size) != last; i++) { + if (trace->trace_history[i % trace->trace_history_size] < trace->num_trace_points) { uint32_t address; address = trace->trace_points[trace->trace_history[i % trace->trace_history_size]].address; - command_print(CMD_CTX, "trace point %i: 0x%8.8" PRIx32 "", - (int)(trace->trace_history[i % trace->trace_history_size]), - address); - } - - else - { - command_print(CMD_CTX, "trace point %i: -not defined-", (int)(trace->trace_history[i % trace->trace_history_size])); - } + command_print(CMD, "trace point %i: 0x%8.8" PRIx32 "", + (int)(trace->trace_history[i % trace->trace_history_size]), + address); + } else + command_print(CMD, "trace point %i: -not defined-", + (int)(trace->trace_history[i % trace->trace_history_size])); } } @@ -159,18 +141,18 @@ COMMAND_HANDLER(handle_trace_history_command) static const struct command_registration trace_exec_command_handlers[] = { { .name = "history", - .handler = &handle_trace_history_command, + .handler = handle_trace_history_command, .mode = COMMAND_EXEC, - .help = "display trace history, clear history or set [size]", - .usage = "[clear|]", + .help = "display trace history, clear history or set size", + .usage = "['clear'|size]", }, { .name = "point", - .handler = &handle_trace_point_command, + .handler = handle_trace_point_command, .mode = COMMAND_EXEC, .help = "display trace points, clear list of trace points, " - "or add new tracepoint at [address]", - .usage = "[clear|
]", + "or add new tracepoint at address", + .usage = "['clear'|address]", }, COMMAND_REGISTRATION_DONE }; @@ -179,6 +161,7 @@ static const struct command_registration trace_command_handlers[] = { .name = "trace", .mode = COMMAND_EXEC, .help = "trace command group", + .usage = "", .chain = trace_exec_command_handlers, }, COMMAND_REGISTRATION_DONE