[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PULL 26/29] disas: introduce show_opcodes
From: |
Alex Bennée |
Subject: |
Re: [PULL 26/29] disas: introduce show_opcodes |
Date: |
Mon, 11 Mar 2024 12:00:41 +0000 |
User-agent: |
mu4e 1.12.1; emacs 29.1 |
Thomas Huth <thuth@redhat.com> writes:
> On 06/03/2024 15.40, Alex Bennée wrote:
>> For plugins we don't expect the raw opcodes in the disassembly. We
>> already deal with this by hand crafting our capstone call but for
>> other diassemblers we need a flag. Introduce show_opcodes which
>> defaults to off.
>> Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
>> Message-Id: <20240305121005.3528075-27-alex.bennee@linaro.org>
>> diff --git a/include/disas/dis-asm.h b/include/disas/dis-asm.h
>> index 2324f6b1a46..b26867b6417 100644
>> --- a/include/disas/dis-asm.h
>> +++ b/include/disas/dis-asm.h
>> @@ -396,6 +396,14 @@ typedef struct disassemble_info {
>> /* Command line options specific to the target disassembler. */
>> char * disassembler_options;
>> + /*
>> + * When true instruct the disassembler it may preface the
>> + * disassembly with the opcodes values if it wants to. This is
>> + * mainly for the benefit of the plugin interface which doesn't want
>> + * that.
>> + */
>> + bool show_opcodes;
>> +
>> /* Field intended to be used by targets in any way they deem suitable.
>> */
>> void *target_info;
>> diff --git a/disas/disas.c b/disas/disas.c
>> index 0d2d06c2ecc..17170d291ec 100644
>> --- a/disas/disas.c
>> +++ b/disas/disas.c
>> @@ -299,6 +299,7 @@ void disas(FILE *out, const void *code, size_t size)
>> s.info.buffer = code;
>> s.info.buffer_vma = (uintptr_t)code;
>> s.info.buffer_length = size;
>> + s.info.show_opcodes = true;
>> if (s.info.cap_arch >= 0 && cap_disas_host(&s.info, code,
>> size)) {
>> return;
>
> I know it's too late now for a patch review, but anyway: What about
> the other spots that set up a "CPUDebug" struct? Like monitor_disas()
> or target_disas() ? Shouldn't we initialize the new struct member
> there, too?
Hmm maybe. I can post some follow up fixes.
>
> Thomas
--
Alex Bennée
Virtualisation Tech Lead @ Linaro
- [PULL 25/29] plugins: cleanup codepath for previous inline operation, (continued)
- [PULL 25/29] plugins: cleanup codepath for previous inline operation, Alex Bennée, 2024/03/06
- [PULL 24/29] plugins: remove non per_vcpu inline operation from API, Alex Bennée, 2024/03/06
- [PULL 23/29] contrib/plugins/howvec: migrate to new per_vcpu API, Alex Bennée, 2024/03/06
- [PULL 29/29] target/riscv: honour show_opcodes when disassembling, Alex Bennée, 2024/03/06
- [PULL 21/29] tests/plugin/bb: migrate to new per_vcpu API, Alex Bennée, 2024/03/06
- [PULL 20/29] tests/plugin/insn: migrate to new per_vcpu API, Alex Bennée, 2024/03/06
- [PULL 28/29] target/loongarch: honour show_opcodes when disassembling, Alex Bennée, 2024/03/06
- [PULL 22/29] contrib/plugins/hotblocks: migrate to new per_vcpu API, Alex Bennée, 2024/03/06
- [PULL 26/29] disas: introduce show_opcodes, Alex Bennée, 2024/03/06
- [PULL 27/29] disas/hppa: honour show_opcodes, Alex Bennée, 2024/03/06
- Re: [PULL for 9.0 00/29] maintainer updates (tests, gdbstub, plugins), Peter Maydell, 2024/03/07