diff options
author | Mike Frysinger <vapier@gentoo.org> | 2011-05-26 00:09:59 +0000 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2011-05-26 00:09:59 +0000 |
commit | 3a49ea9faceb2a5c0d8d3afdee0a057c8ebe9501 (patch) | |
tree | 2bb4cee29cc74384e4ec52406a5a892c4252f46a /sim/common/sim-trace.c | |
parent | 39f8b7c1fa376ee6d1ecb6ebee6b5fe506d269f4 (diff) | |
download | gdb-3a49ea9faceb2a5c0d8d3afdee0a057c8ebe9501.zip gdb-3a49ea9faceb2a5c0d8d3afdee0a057c8ebe9501.tar.gz gdb-3a49ea9faceb2a5c0d8d3afdee0a057c8ebe9501.tar.bz2 |
sim: add syscall tracing level
It's useful to be able to trace just the system calls the simulated
program is calling, so add a new --trace-syscall option for ports to
leverage if they choose.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'sim/common/sim-trace.c')
-rw-r--r-- | sim/common/sim-trace.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/sim/common/sim-trace.c b/sim/common/sim-trace.c index 0373532..da3e290 100644 --- a/sim/common/sim-trace.c +++ b/sim/common/sim-trace.c @@ -77,7 +77,8 @@ enum { OPTION_TRACE_FUNCTION, OPTION_TRACE_DEBUG, OPTION_TRACE_FILE, - OPTION_TRACE_VPU + OPTION_TRACE_VPU, + OPTION_TRACE_SYSCALL }; static const OPTION trace_options[] = @@ -125,6 +126,9 @@ static const OPTION trace_options[] = { {"trace-events", optional_argument, NULL, OPTION_TRACE_EVENTS}, '\0', "on|off", "Trace events", trace_option_handler, NULL }, + { {"trace-syscall", optional_argument, NULL, OPTION_TRACE_SYSCALL}, + '\0', "on|off", "Trace system calls", + trace_option_handler, NULL }, #ifdef SIM_HAVE_ADDR_RANGE { {"trace-range", required_argument, NULL, OPTION_TRACE_RANGE}, '\0', "START,END", "Specify range of addresses for instruction tracing", @@ -331,6 +335,13 @@ trace_option_handler (SIM_DESC sd, sim_cpu *cpu, int opt, sim_io_eprintf (sd, "Branch tracing not compiled in, `--trace-branch' ignored\n"); break; + case OPTION_TRACE_SYSCALL : + if (WITH_TRACE_SYSCALL_P) + return set_trace_option (sd, "-syscall", TRACE_SYSCALL_IDX, arg); + else + sim_io_eprintf (sd, "System call tracing not compiled in, `--trace-syscall' ignored\n"); + break; + case OPTION_TRACE_SEMANTICS : if (WITH_TRACE_ALU_P && WITH_TRACE_FPU_P @@ -621,6 +632,7 @@ trace_idx_to_str (int trace_idx) case TRACE_EVENTS_IDX: return "events: "; case TRACE_FPU_IDX: return "fpu: "; case TRACE_BRANCH_IDX: return "branch: "; + case TRACE_SYSCALL_IDX: return "syscall: "; case TRACE_VPU_IDX: return "vpu: "; default: sprintf (num, "?%d?", trace_idx); |