diff options
author | Peter Maydell | 2016-07-19 11:54:49 +0200 |
---|---|---|
committer | Peter Maydell | 2016-07-19 11:54:49 +0200 |
commit | 0c1b58f25025cc09463aae235162b19ff45c37b7 (patch) | |
tree | 93f05bbeadc130a91399cc98ac3c914df87958e3 /bsd-user/main.c | |
parent | Merge remote-tracking branch 'remotes/awilliam/tags/vfio-update-20160718.0' i... (diff) | |
parent | trace: Add QAPI/QMP interfaces to query and control per-vCPU tracing state (diff) | |
download | qemu-0c1b58f25025cc09463aae235162b19ff45c37b7.tar.gz qemu-0c1b58f25025cc09463aae235162b19ff45c37b7.tar.xz qemu-0c1b58f25025cc09463aae235162b19ff45c37b7.zip |
Merge remote-tracking branch 'remotes/stefanha/tags/tracing-pull-request' into staging
# gpg: Signature made Mon 18 Jul 2016 22:59:55 BST
# gpg: using RSA key 0x9CA4ABB381AB73C8
# gpg: Good signature from "Stefan Hajnoczi <stefanha@redhat.com>"
# gpg: aka "Stefan Hajnoczi <stefanha@gmail.com>"
# Primary key fingerprint: 8695 A8BF D3F9 7CDA AC35 775A 9CA4 ABB3 81AB 73C8
* remotes/stefanha/tags/tracing-pull-request:
trace: Add QAPI/QMP interfaces to query and control per-vCPU tracing state
trace: Allow event name pattern in "info trace-events"
trace: Conditionally trace events based on their per-vCPU state
trace: Add per-vCPU tracing states for events with the 'vcpu' property
trace: Cosmetic changes on fast-path tracing
disas: Remove unused macro '_'
trace: Identify events with the 'vcpu' property
trace: [bsd-user] Commandline arguments to control tracing
trace: [linux-user] Commandline arguments to control tracing
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'bsd-user/main.c')
-rw-r--r-- | bsd-user/main.c | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/bsd-user/main.c b/bsd-user/main.c index 4819b9ec63..315ba1d10c 100644 --- a/bsd-user/main.c +++ b/bsd-user/main.c @@ -21,6 +21,7 @@ #include "qapi/error.h" #include "qemu.h" +#include "qemu/config-file.h" #include "qemu/path.h" #include "qemu/help_option.h" /* For tb_lock */ @@ -30,6 +31,8 @@ #include "qemu/timer.h" #include "qemu/envlist.h" #include "exec/log.h" +#include "trace/control.h" +#include "glib-compat.h" int singlestep; unsigned long mmap_min_addr; @@ -687,6 +690,8 @@ static void usage(void) "-p pagesize set the host page size to 'pagesize'\n" "-singlestep always run in singlestep mode\n" "-strace log system calls\n" + "-trace [[enable=]<pattern>][,events=<file>][,file=<file>]\n" + " specify tracing options\n" "\n" "Environment variables:\n" "QEMU_STRACE Print system calls and arguments similar to the\n" @@ -735,6 +740,7 @@ int main(int argc, char **argv) int gdbstub_port = 0; char **target_environ, **wrk; envlist_t *envlist = NULL; + char *trace_file = NULL; bsd_type = target_openbsd; if (argc <= 1) @@ -754,8 +760,10 @@ int main(int argc, char **argv) cpu_model = NULL; + qemu_add_opts(&qemu_trace_opts); + optind = 1; - for(;;) { + for (;;) { if (optind >= argc) break; r = argv[optind]; @@ -840,8 +848,10 @@ int main(int argc, char **argv) singlestep = 1; } else if (!strcmp(r, "strace")) { do_strace = 1; - } else - { + } else if (!strcmp(r, "trace")) { + g_free(trace_file); + trace_file = trace_opt_parse(optarg); + } else { usage(); } } @@ -865,6 +875,11 @@ int main(int argc, char **argv) } filename = argv[optind]; + if (!trace_init_backends()) { + exit(1); + } + trace_init_file(trace_file); + /* Zero out regs */ memset(regs, 0, sizeof(struct target_pt_regs)); @@ -1116,6 +1131,7 @@ int main(int argc, char **argv) gdbserver_start (gdbstub_port); gdb_handlesig(cpu, 0); } + trace_init_vcpu_events(); cpu_loop(env); /* never exits */ return 0; |