Am 15. Mai 2024 07:52:32 UTC schrieb Richard Henderson
<richard.hender...@linaro.org>:
>Read from already translated pages, or saved mmio data.
>
>Reviewed-by: Philippe Mathieu-Daudé <phi...@linaro.org>
>Signed-off-by: Richard Henderson <richard.hender...@linaro.org>
>---
> include/disas/disas.h | 5 +++--
> include/exec/translator.h | 4 ++--
> include/qemu/typedefs.h | 1 +
> accel/tcg/translator.c | 2 +-
> disas/disas-common.c | 14 --------------
> disas/disas-mon.c | 15 +++++++++++++++
> disas/disas-target.c | 19 +++++++++++++++++--
> plugins/api.c | 4 ++--
> 8 files changed, 41 insertions(+), 23 deletions(-)
Hi,
this patch unfortunately breaks the "execlog" plugin which doesn't decode the
mnemonics correctly any longer. When launching `qemu-system-x86_64 -plugin
/path/to/qemu-build/contrib/plugins/libexeclog.so -d plugin`, it outputs either
"addb %al, (%bx, %si)" or ".byte 0x00", regardless of which instruction was
actually executed. It seems to invoke the disassembler on zero-initialized
data. Reverting the patch fixes the problem.
Moreover, patch 11 in this pull request "[PULL 11/34] plugins: Use
translator_st for qemu_plugin_insn_data" causes the plugin to not print the
correct machine code any longer, instead just printing "0x0". I haven't
investigated whether reverting that patch fixes the problem since it doesn't
revert cleanly.
It would be nice if somebody could look into this since I'm also trying to hunt
down an alignment problem in the ARM emulator introduced in 9.0 which now
prevents my guest from booting, and the execlog plugin is one of the tools I
use for investigation.
Best regards,
Bernhard