trace: [linux-user] Commandline arguments to control tracing
[Changed const char *trace_file to char *trace_file since it's a heap-allocated string that needs to be freed. This type is also returned by trace_opt_parse() and used in vl.c. --Stefan] Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu> Message-id: 146860251784.30668.17339867835129075077.stgit@fimbulvetr.bsc.es Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
parent
3913d3707e
commit
6533dd6e11
|
@ -24,6 +24,7 @@
|
||||||
#include "qapi/error.h"
|
#include "qapi/error.h"
|
||||||
#include "qemu.h"
|
#include "qemu.h"
|
||||||
#include "qemu/path.h"
|
#include "qemu/path.h"
|
||||||
|
#include "qemu/config-file.h"
|
||||||
#include "qemu/cutils.h"
|
#include "qemu/cutils.h"
|
||||||
#include "qemu/help_option.h"
|
#include "qemu/help_option.h"
|
||||||
#include "cpu.h"
|
#include "cpu.h"
|
||||||
|
@ -33,6 +34,8 @@
|
||||||
#include "qemu/envlist.h"
|
#include "qemu/envlist.h"
|
||||||
#include "elf.h"
|
#include "elf.h"
|
||||||
#include "exec/log.h"
|
#include "exec/log.h"
|
||||||
|
#include "trace/control.h"
|
||||||
|
#include "glib-compat.h"
|
||||||
|
|
||||||
char *exec_path;
|
char *exec_path;
|
||||||
|
|
||||||
|
@ -4001,6 +4004,13 @@ static void handle_arg_version(const char *arg)
|
||||||
exit(EXIT_SUCCESS);
|
exit(EXIT_SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static char *trace_file;
|
||||||
|
static void handle_arg_trace(const char *arg)
|
||||||
|
{
|
||||||
|
g_free(trace_file);
|
||||||
|
trace_file = trace_opt_parse(arg);
|
||||||
|
}
|
||||||
|
|
||||||
struct qemu_argument {
|
struct qemu_argument {
|
||||||
const char *argv;
|
const char *argv;
|
||||||
const char *env;
|
const char *env;
|
||||||
|
@ -4048,6 +4058,8 @@ static const struct qemu_argument arg_table[] = {
|
||||||
"", "log system calls"},
|
"", "log system calls"},
|
||||||
{"seed", "QEMU_RAND_SEED", true, handle_arg_randseed,
|
{"seed", "QEMU_RAND_SEED", true, handle_arg_randseed,
|
||||||
"", "Seed for pseudo-random number generator"},
|
"", "Seed for pseudo-random number generator"},
|
||||||
|
{"trace", "QEMU_TRACE", true, handle_arg_trace,
|
||||||
|
"", "[[enable=]<pattern>][,events=<file>][,file=<file>]"},
|
||||||
{"version", "QEMU_VERSION", false, handle_arg_version,
|
{"version", "QEMU_VERSION", false, handle_arg_version,
|
||||||
"", "display version information and exit"},
|
"", "display version information and exit"},
|
||||||
{NULL, NULL, false, NULL, NULL, NULL}
|
{NULL, NULL, false, NULL, NULL, NULL}
|
||||||
|
@ -4237,8 +4249,15 @@ int main(int argc, char **argv, char **envp)
|
||||||
|
|
||||||
srand(time(NULL));
|
srand(time(NULL));
|
||||||
|
|
||||||
|
qemu_add_opts(&qemu_trace_opts);
|
||||||
|
|
||||||
optind = parse_args(argc, argv);
|
optind = parse_args(argc, argv);
|
||||||
|
|
||||||
|
if (!trace_init_backends()) {
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
trace_init_file(trace_file);
|
||||||
|
|
||||||
/* Zero out regs */
|
/* Zero out regs */
|
||||||
memset(regs, 0, sizeof(struct target_pt_regs));
|
memset(regs, 0, sizeof(struct target_pt_regs));
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue