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

Reply via email to