Le 20/11/2019 à 05:48, Taylor Simpson a écrit :
> For the general DEBUG_HEX messages, I think the trace infrastructure isn't
> quite what I'm looking for.
>
> Here's a sample of what it prints
> Start packet: pc = 0x4002f0
> Packet committed: pc = 0x4002f0
> Regs written
> r18 = -69420 (0xfffef0d4)
> r19 = -69412 (0xfffef0dc)
> Stores
> memd[0xfffef0b0] = 0 (0x0000000000000000)
> Next PC = 0x4002f8
> Exec counters: pkt = 17, insn = 24, hvx = 0
>
> For performance, I'd like a way to disable them completely when
> --enable-debug isn't passed to configure. It looks like #ifdef
> CONFIG_DEBUG_TCG will work for this. Then, I'd like a command-line option to
> turn them on. The "-d exec" seems like a reasonable place. So, the code
> will look like this
>
> #ifdef CONFIG_DEBUG_TCG
> if (qemu_loglevel_maks(CPU_LOG_EXEC)) {
> qemu_log(...);
> }
> #endif
>
> Please let me know if I'm on the right track here.
>
I'm not sure CONFIG_DEBUG_TCG is the good choice (Richard should
know...), you should keep your DEBUG_HEX in this case.
But the performance impact should not be big without the #ifdef as
qemu_loglevel_maks() is a simple test and the rest of the code is not
executed (Perhaps an "unlikely(qemu_loglevel_maks(CPU_LOG_EXEC))" could
help).
Thanks,
Laurent