[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v5 06/22] instrument: [softmmu] Add command line lib
From: |
Lluís Vilanova |
Subject: |
[Qemu-devel] [PATCH v5 06/22] instrument: [softmmu] Add command line library loader |
Date: |
Wed, 13 Sep 2017 00:25:56 +0300 |
User-agent: |
StGit/0.18 |
Signed-off-by: Lluís Vilanova <address@hidden>
---
qemu-options.hx | 19 +++++++++++++++++++
vl.c | 15 +++++++++++++++
2 files changed, 34 insertions(+)
diff --git a/qemu-options.hx b/qemu-options.hx
index 9f6e2adfff..6947388aab 100644
--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -4077,6 +4077,25 @@ HXCOMM HX does not support conditional compilation of
text.
@findex -trace
@include qemu-option-trace.texi
ETEXI
+#if defined(CONFIG_INSTRUMENT)
+DEF("instr", HAS_ARG, QEMU_OPTION_instr,
+ "-instr [file=]<file>[,arg=<string>]\n"
+ " load an instrumentation library\n",
+ QEMU_ARCH_ALL)
+#endif
+STEXI
address@hidden -instr address@hidden,address@hidden
address@hidden -instr
+
+Load a dynamic trace instrumentation library.
+
address@hidden @option
address@hidden address@hidden
+Load the given dynamic trace instrumentation library.
address@hidden address@hidden
+String argument passed as to the library's @code{qi_init} routine (can be
given multiple times).
address@hidden table
+ETEXI
HXCOMM Internal use
DEF("qtest", HAS_ARG, QEMU_OPTION_qtest, "", QEMU_ARCH_ALL)
diff --git a/vl.c b/vl.c
index fb1f05b937..aea05ed4cc 100644
--- a/vl.c
+++ b/vl.c
@@ -118,6 +118,7 @@ int main(int argc, char **argv)
#include "trace-root.h"
#include "trace/control.h"
+#include "instrument/cmdline.h"
#include "qemu/queue.h"
#include "sysemu/arch_init.h"
@@ -3037,6 +3038,9 @@ int main(int argc, char **argv, char **envp)
} BlockdevOptions_queue;
QSIMPLEQ_HEAD(, BlockdevOptions_queue) bdo_queue
= QSIMPLEQ_HEAD_INITIALIZER(bdo_queue);
+ char *instrument_path = NULL;
+ int instrument_argc = 0;
+ const char **instrument_argv = NULL;
module_call_init(MODULE_INIT_TRACE);
@@ -3064,6 +3068,9 @@ int main(int argc, char **argv, char **envp)
qemu_add_opts(&qemu_global_opts);
qemu_add_opts(&qemu_mon_opts);
qemu_add_opts(&qemu_trace_opts);
+#if defined(CONFIG_INSTRUMENT)
+ qemu_add_opts(&qemu_instr_opts);
+#endif
qemu_add_opts(&qemu_option_rom_opts);
qemu_add_opts(&qemu_machine_opts);
qemu_add_opts(&qemu_accel_opts);
@@ -4009,6 +4016,12 @@ int main(int argc, char **argv, char **envp)
g_free(trace_file);
trace_file = trace_opt_parse(optarg);
break;
+#if defined(CONFIG_INSTRUMENT)
+ case QEMU_OPTION_instr:
+ instr_opt_parse(optarg, &instrument_path,
+ &instrument_argc, &instrument_argv);
+ break;
+#endif
case QEMU_OPTION_readconfig:
{
int ret = qemu_read_config_file(optarg);
@@ -4196,6 +4209,8 @@ int main(int argc, char **argv, char **envp)
}
trace_init_file(trace_file);
+ instr_init(instrument_path, instrument_argc, instrument_argv);
+
/* Open the logfile at this point and set the log mask if necessary.
*/
if (log_file) {
- [Qemu-devel] [PATCH v5 00/22] instrument: Add basic event instrumentation, Lluís Vilanova, 2017/09/12
- [Qemu-devel] [PATCH v5 01/22] instrument: Add documentation, Lluís Vilanova, 2017/09/12
- [Qemu-devel] [PATCH v5 02/22] instrument: Add configure-time flag, Lluís Vilanova, 2017/09/12
- [Qemu-devel] [PATCH v5 03/22] instrument: Add generic library loader, Lluís Vilanova, 2017/09/12
- [Qemu-devel] [PATCH v5 04/22] instrument: [linux-user] Add command line library loader, Lluís Vilanova, 2017/09/12
- [Qemu-devel] [PATCH v5 05/22] instrument: [bsd-user] Add command line library loader, Lluís Vilanova, 2017/09/12
- [Qemu-devel] [PATCH v5 06/22] instrument: [softmmu] Add command line library loader,
Lluís Vilanova <=
- [Qemu-devel] [PATCH v5 07/22] instrument: [qapi] Add library loader, Lluís Vilanova, 2017/09/12
- [Qemu-devel] [PATCH v5 08/22] instrument: [hmp] Add library loader, Lluís Vilanova, 2017/09/12
- [Qemu-devel] [PATCH v5 09/22] instrument: Add basic control interface, Lluís Vilanova, 2017/09/12
- [Qemu-devel] [PATCH v5 10/22] instrument: Add support for tracing events, Lluís Vilanova, 2017/09/12
- [Qemu-devel] [PATCH v5 11/22] instrument: Track vCPUs, Lluís Vilanova, 2017/09/12
- [Qemu-devel] [PATCH v5 12/22] instrument: Add event 'guest_cpu_enter', Lluís Vilanova, 2017/09/12
- [Qemu-devel] [PATCH v5 13/22] instrument: Support synchronous modification of vCPU state, Lluís Vilanova, 2017/09/12
- [Qemu-devel] [PATCH v5 14/22] exec: Add function to synchronously flush TB on a stopped vCPU, Lluís Vilanova, 2017/09/12
- [Qemu-devel] [PATCH v5 15/22] instrument: Add event 'guest_cpu_exit', Lluís Vilanova, 2017/09/12
- [Qemu-devel] [PATCH v5 16/22] instrument: Add event 'guest_cpu_reset', Lluís Vilanova, 2017/09/12