summary refs log tree commit diff stats
path: root/plugins/api.c
diff options
context:
space:
mode:
authorAlex Bennée <alex.bennee@linaro.org>2019-05-22 10:27:14 +0100
committerAlex Bennée <alex.bennee@linaro.org>2019-10-28 15:12:38 +0000
commitcbafa2362ab8d96af39d6b01a79ea4ed16d47dda (patch)
tree57c3f69e05f35e4fd9c0f5aa11a5ad7a3685de1d /plugins/api.c
parent5901b2e15b673720b050fc88e7912e33f0e53604 (diff)
downloadfocaccia-qemu-cbafa2362ab8d96af39d6b01a79ea4ed16d47dda.tar.gz
focaccia-qemu-cbafa2362ab8d96af39d6b01a79ea4ed16d47dda.zip
plugin: add qemu_plugin_insn_disas helper
Give the plugins access to the QEMU dissasembler so they don't have to
re-invent the wheel. We generate a warning when there are spare bytes
in the decode buffer. This is usually due to the front end loading in
more bytes than decoded.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'plugins/api.c')
-rw-r--r--plugins/api.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/plugins/api.c b/plugins/api.c
index 33dac8e790..5adc4d25a1 100644
--- a/plugins/api.c
+++ b/plugins/api.c
@@ -39,7 +39,8 @@
 #include "cpu.h"
 #include "sysemu/sysemu.h"
 #include "tcg/tcg.h"
-#include "trace/mem-internal.h" /* mem_info macros */
+#include "exec/exec-all.h"
+#include "disas/disas.h"
 #include "plugin.h"
 #ifndef CONFIG_USER_ONLY
 #include "qemu/plugin-memory.h"
@@ -212,6 +213,12 @@ void *qemu_plugin_insn_haddr(const struct qemu_plugin_insn *insn)
     return insn->haddr;
 }
 
+char *qemu_plugin_insn_disas(const struct qemu_plugin_insn *insn)
+{
+    CPUState *cpu = current_cpu;
+    return plugin_disas(cpu, insn->vaddr, insn->data->len);
+}
+
 /*
  * The memory queries allow the plugin to query information about a
  * memory access.