mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-12-18 05:28:36 -07:00
*: Use fprintf between qemu_log_trylock/unlock
Inside qemu_log, we perform qemu_log_trylock/unlock, which need not be done if we have already performed the lock beforehand. Always check the result of qemu_log_trylock -- only checking qemu_loglevel_mask races with the acquisition of the lock on the logfile. Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20220417183019.755276-10-richard.henderson@linaro.org>
This commit is contained in:
parent
6fef222971
commit
78b548583e
9 changed files with 162 additions and 132 deletions
14
cpu.c
14
cpu.c
|
|
@ -400,12 +400,14 @@ void cpu_abort(CPUState *cpu, const char *fmt, ...)
|
|||
cpu_dump_state(cpu, stderr, CPU_DUMP_FPU | CPU_DUMP_CCOP);
|
||||
if (qemu_log_separate()) {
|
||||
FILE *logfile = qemu_log_trylock();
|
||||
qemu_log("qemu: fatal: ");
|
||||
qemu_log_vprintf(fmt, ap2);
|
||||
qemu_log("\n");
|
||||
log_cpu_state(cpu, CPU_DUMP_FPU | CPU_DUMP_CCOP);
|
||||
qemu_log_flush();
|
||||
qemu_log_unlock(logfile);
|
||||
if (logfile) {
|
||||
fprintf(logfile, "qemu: fatal: ");
|
||||
vfprintf(logfile, fmt, ap2);
|
||||
fprintf(logfile, "\n");
|
||||
cpu_dump_state(cpu, logfile, CPU_DUMP_FPU | CPU_DUMP_CCOP);
|
||||
qemu_log_flush();
|
||||
qemu_log_unlock(logfile);
|
||||
}
|
||||
qemu_log_close();
|
||||
}
|
||||
va_end(ap2);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue