diff options
author | Prerna Saxena <prerna@linux.vnet.ibm.com> | 2010-08-09 11:48:32 +0100 |
---|---|---|
committer | Anthony Liguori <aliguori@us.ibm.com> | 2010-09-09 16:22:44 -0500 |
commit | ab6540d55e8d57609c1e0c18b40269b05e231ce7 (patch) | |
tree | 7e761d38b442099464d8ea2c2b82d7e25274db2e | |
parent | c5ceb523fa6fc168d3f51e306fee3def458e047e (diff) |
trace: Add trace file name command-line option
This patch adds an optional command line switch '-trace' to specify the
filename to write traces to, when qemu starts.
Eg, If compiled with the 'simple' trace backend,
[temp@system]$ qemu -trace FILENAME IMAGE
Allows the binary traces to be written to FILENAME instead of the option
set at config-time.
Signed-off-by: Prerna Saxena <prerna@linux.vnet.ibm.com>
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
-rw-r--r-- | qemu-config.c | 18 | ||||
-rw-r--r-- | qemu-options.hx | 11 | ||||
-rw-r--r-- | vl.c | 21 |
3 files changed, 50 insertions, 0 deletions
diff --git a/qemu-config.c b/qemu-config.c index 1efdbecdad..e3b746cc2b 100644 --- a/qemu-config.c +++ b/qemu-config.c @@ -288,6 +288,21 @@ static QemuOptsList qemu_mon_opts = { }, }; +#ifdef CONFIG_SIMPLE_TRACE +static QemuOptsList qemu_trace_opts = { + .name = "trace", + .implied_opt_name = "trace", + .head = QTAILQ_HEAD_INITIALIZER(qemu_trace_opts.head), + .desc = { + { + .name = "file", + .type = QEMU_OPT_STRING, + }, + { /* end if list */ } + }, +}; +#endif + static QemuOptsList qemu_cpudef_opts = { .name = "cpudef", .head = QTAILQ_HEAD_INITIALIZER(qemu_cpudef_opts.head), @@ -346,6 +361,9 @@ static QemuOptsList *vm_config_groups[32] = { &qemu_global_opts, &qemu_mon_opts, &qemu_cpudef_opts, +#ifdef CONFIG_SIMPLE_TRACE + &qemu_trace_opts, +#endif NULL, }; diff --git a/qemu-options.hx b/qemu-options.hx index 368bf964a8..a0b5ae9bf1 100644 --- a/qemu-options.hx +++ b/qemu-options.hx @@ -2230,6 +2230,17 @@ Normally QEMU loads a configuration file from @var{sysconfdir}/qemu.conf and @var{sysconfdir}/target-@var{ARCH}.conf on startup. The @code{-nodefconfig} option will prevent QEMU from loading these configuration files at startup. ETEXI +#ifdef CONFIG_SIMPLE_TRACE +DEF("trace", HAS_ARG, QEMU_OPTION_trace, + "-trace\n" + " Specify a trace file to log traces to\n", + QEMU_ARCH_ALL) +STEXI +@item -trace +@findex -trace +Specify a trace file to log output traces to. +ETEXI +#endif HXCOMM This is the last statement. Insert new options before this line! STEXI @@ -47,6 +47,10 @@ #include <dirent.h> #include <netdb.h> #include <sys/select.h> +#ifdef CONFIG_SIMPLE_TRACE +#include "trace.h" +#endif + #ifdef CONFIG_BSD #include <sys/stat.h> #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__) @@ -1823,6 +1827,9 @@ int main(int argc, char **argv, char **envp) int show_vnc_port = 0; int defconfig = 1; +#ifdef CONFIG_SIMPLE_TRACE + const char *trace_file = NULL; +#endif atexit(qemu_run_exit_notifiers); error_set_progname(argv[0]); @@ -2595,6 +2602,14 @@ int main(int argc, char **argv, char **envp) } xen_mode = XEN_ATTACH; break; +#ifdef CONFIG_SIMPLE_TRACE + case QEMU_OPTION_trace: + opts = qemu_opts_parse(qemu_find_opts("trace"), optarg, 0); + if (opts) { + trace_file = qemu_opt_get(opts, "file"); + } + break; +#endif case QEMU_OPTION_readconfig: { int ret = qemu_read_config_file(optarg); @@ -2638,6 +2653,12 @@ int main(int argc, char **argv, char **envp) data_dir = CONFIG_QEMU_DATADIR; } +#ifdef CONFIG_SIMPLE_TRACE + /* + * Set the trace file name, if specified. + */ + st_set_trace_file(trace_file); +#endif /* * Default to max_cpus = smp_cpus, in case the user doesn't * specify a max_cpus value. |