mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-17 07:02:03 -06:00
cpu: Turn cpu_dump_{state,statistics}() into CPUState hooks
Make cpustats monitor command available unconditionally. Prepares for changing kvm_handle_internal_error() and kvm_cpu_exec() arguments to CPUState. Signed-off-by: Andreas Färber <afaerber@suse.de>
This commit is contained in:
parent
13618e058c
commit
878096eeb2
63 changed files with 242 additions and 86 deletions
|
@ -901,7 +901,7 @@ void cpu_loop(CPUARMState *env)
|
|||
error:
|
||||
fprintf(stderr, "qemu: unhandled CPU exception 0x%x - aborting\n",
|
||||
trapnr);
|
||||
cpu_dump_state(env, stderr, fprintf, 0);
|
||||
cpu_dump_state(cs, stderr, fprintf, 0);
|
||||
abort();
|
||||
}
|
||||
process_pending_signals(env);
|
||||
|
@ -985,7 +985,7 @@ void cpu_loop(CPUUniCore32State *env)
|
|||
|
||||
error:
|
||||
fprintf(stderr, "qemu: unhandled CPU exception 0x%x - aborting\n", trapnr);
|
||||
cpu_dump_state(env, stderr, fprintf, 0);
|
||||
cpu_dump_state(cs, stderr, fprintf, 0);
|
||||
abort();
|
||||
}
|
||||
#endif
|
||||
|
@ -1115,6 +1115,7 @@ static void flush_windows(CPUSPARCState *env)
|
|||
|
||||
void cpu_loop (CPUSPARCState *env)
|
||||
{
|
||||
CPUState *cs = CPU(sparc_env_get_cpu(env));
|
||||
int trapnr;
|
||||
abi_long ret;
|
||||
target_siginfo_t info;
|
||||
|
@ -1246,7 +1247,7 @@ void cpu_loop (CPUSPARCState *env)
|
|||
break;
|
||||
default:
|
||||
printf ("Unhandled trap: 0x%x\n", trapnr);
|
||||
cpu_dump_state(env, stderr, fprintf, 0);
|
||||
cpu_dump_state(cs, stderr, fprintf, 0);
|
||||
exit (1);
|
||||
}
|
||||
process_pending_signals (env);
|
||||
|
@ -1304,7 +1305,7 @@ int ppc_dcr_write (ppc_dcr_t *dcr_env, int dcrn, uint32_t val)
|
|||
#define EXCP_DUMP(env, fmt, ...) \
|
||||
do { \
|
||||
fprintf(stderr, fmt , ## __VA_ARGS__); \
|
||||
cpu_dump_state(env, stderr, fprintf, 0); \
|
||||
cpu_dump_state(ENV_GET_CPU(env), stderr, fprintf, 0); \
|
||||
qemu_log(fmt, ## __VA_ARGS__); \
|
||||
if (qemu_log_enabled()) { \
|
||||
log_cpu_state(env, 0); \
|
||||
|
@ -2391,7 +2392,7 @@ done_syscall:
|
|||
error:
|
||||
fprintf(stderr, "qemu: unhandled CPU exception 0x%x - aborting\n",
|
||||
trapnr);
|
||||
cpu_dump_state(env, stderr, fprintf, 0);
|
||||
cpu_dump_state(cs, stderr, fprintf, 0);
|
||||
abort();
|
||||
}
|
||||
process_pending_signals(env);
|
||||
|
@ -2403,6 +2404,7 @@ error:
|
|||
|
||||
void cpu_loop(CPUOpenRISCState *env)
|
||||
{
|
||||
CPUState *cs = CPU(openrisc_env_get_cpu(env));
|
||||
int trapnr, gdbsig;
|
||||
|
||||
for (;;) {
|
||||
|
@ -2420,7 +2422,7 @@ void cpu_loop(CPUOpenRISCState *env)
|
|||
break;
|
||||
case EXCP_DPF:
|
||||
case EXCP_IPF:
|
||||
cpu_dump_state(env, stderr, fprintf, 0);
|
||||
cpu_dump_state(cs, stderr, fprintf, 0);
|
||||
gdbsig = TARGET_SIGSEGV;
|
||||
break;
|
||||
case EXCP_TICK:
|
||||
|
@ -2469,7 +2471,7 @@ void cpu_loop(CPUOpenRISCState *env)
|
|||
default:
|
||||
qemu_log("\nqemu: unhandled CPU exception %#x - aborting\n",
|
||||
trapnr);
|
||||
cpu_dump_state(env, stderr, fprintf, 0);
|
||||
cpu_dump_state(cs, stderr, fprintf, 0);
|
||||
gdbsig = TARGET_SIGILL;
|
||||
break;
|
||||
}
|
||||
|
@ -2489,6 +2491,7 @@ void cpu_loop(CPUOpenRISCState *env)
|
|||
#ifdef TARGET_SH4
|
||||
void cpu_loop(CPUSH4State *env)
|
||||
{
|
||||
CPUState *cs = CPU(sh_env_get_cpu(env));
|
||||
int trapnr, ret;
|
||||
target_siginfo_t info;
|
||||
|
||||
|
@ -2537,7 +2540,7 @@ void cpu_loop(CPUSH4State *env)
|
|||
|
||||
default:
|
||||
printf ("Unhandled trap: 0x%x\n", trapnr);
|
||||
cpu_dump_state(env, stderr, fprintf, 0);
|
||||
cpu_dump_state(cs, stderr, fprintf, 0);
|
||||
exit (1);
|
||||
}
|
||||
process_pending_signals (env);
|
||||
|
@ -2548,6 +2551,7 @@ void cpu_loop(CPUSH4State *env)
|
|||
#ifdef TARGET_CRIS
|
||||
void cpu_loop(CPUCRISState *env)
|
||||
{
|
||||
CPUState *cs = CPU(cris_env_get_cpu(env));
|
||||
int trapnr, ret;
|
||||
target_siginfo_t info;
|
||||
|
||||
|
@ -2595,7 +2599,7 @@ void cpu_loop(CPUCRISState *env)
|
|||
break;
|
||||
default:
|
||||
printf ("Unhandled trap: 0x%x\n", trapnr);
|
||||
cpu_dump_state(env, stderr, fprintf, 0);
|
||||
cpu_dump_state(cs, stderr, fprintf, 0);
|
||||
exit (1);
|
||||
}
|
||||
process_pending_signals (env);
|
||||
|
@ -2606,6 +2610,7 @@ void cpu_loop(CPUCRISState *env)
|
|||
#ifdef TARGET_MICROBLAZE
|
||||
void cpu_loop(CPUMBState *env)
|
||||
{
|
||||
CPUState *cs = CPU(mb_env_get_cpu(env));
|
||||
int trapnr, ret;
|
||||
target_siginfo_t info;
|
||||
|
||||
|
@ -2673,7 +2678,7 @@ void cpu_loop(CPUMBState *env)
|
|||
default:
|
||||
printf ("Unhandled hw-exception: 0x%x\n",
|
||||
env->sregs[SR_ESR] & ESR_EC_MASK);
|
||||
cpu_dump_state(env, stderr, fprintf, 0);
|
||||
cpu_dump_state(cs, stderr, fprintf, 0);
|
||||
exit (1);
|
||||
break;
|
||||
}
|
||||
|
@ -2694,7 +2699,7 @@ void cpu_loop(CPUMBState *env)
|
|||
break;
|
||||
default:
|
||||
printf ("Unhandled trap: 0x%x\n", trapnr);
|
||||
cpu_dump_state(env, stderr, fprintf, 0);
|
||||
cpu_dump_state(cs, stderr, fprintf, 0);
|
||||
exit (1);
|
||||
}
|
||||
process_pending_signals (env);
|
||||
|
@ -2706,6 +2711,7 @@ void cpu_loop(CPUMBState *env)
|
|||
|
||||
void cpu_loop(CPUM68KState *env)
|
||||
{
|
||||
CPUState *cs = CPU(m68k_env_get_cpu(env));
|
||||
int trapnr;
|
||||
unsigned int n;
|
||||
target_siginfo_t info;
|
||||
|
@ -2787,7 +2793,7 @@ void cpu_loop(CPUM68KState *env)
|
|||
default:
|
||||
fprintf(stderr, "qemu: unhandled CPU exception 0x%x - aborting\n",
|
||||
trapnr);
|
||||
cpu_dump_state(env, stderr, fprintf, 0);
|
||||
cpu_dump_state(cs, stderr, fprintf, 0);
|
||||
abort();
|
||||
}
|
||||
process_pending_signals(env);
|
||||
|
@ -2843,6 +2849,7 @@ static void do_store_exclusive(CPUAlphaState *env, int reg, int quad)
|
|||
|
||||
void cpu_loop(CPUAlphaState *env)
|
||||
{
|
||||
CPUState *cs = CPU(alpha_env_get_cpu(env));
|
||||
int trapnr;
|
||||
target_siginfo_t info;
|
||||
abi_long sysret;
|
||||
|
@ -3017,7 +3024,7 @@ void cpu_loop(CPUAlphaState *env)
|
|||
break;
|
||||
default:
|
||||
printf ("Unhandled trap: 0x%x\n", trapnr);
|
||||
cpu_dump_state(env, stderr, fprintf, 0);
|
||||
cpu_dump_state(cs, stderr, fprintf, 0);
|
||||
exit (1);
|
||||
}
|
||||
process_pending_signals (env);
|
||||
|
@ -3028,6 +3035,7 @@ void cpu_loop(CPUAlphaState *env)
|
|||
#ifdef TARGET_S390X
|
||||
void cpu_loop(CPUS390XState *env)
|
||||
{
|
||||
CPUState *cs = CPU(s390_env_get_cpu(env));
|
||||
int trapnr, n, sig;
|
||||
target_siginfo_t info;
|
||||
target_ulong addr;
|
||||
|
@ -3118,7 +3126,7 @@ void cpu_loop(CPUS390XState *env)
|
|||
|
||||
default:
|
||||
fprintf(stderr, "Unhandled program exception: %#x\n", n);
|
||||
cpu_dump_state(env, stderr, fprintf, 0);
|
||||
cpu_dump_state(cs, stderr, fprintf, 0);
|
||||
exit(1);
|
||||
}
|
||||
break;
|
||||
|
@ -3135,7 +3143,7 @@ void cpu_loop(CPUS390XState *env)
|
|||
|
||||
default:
|
||||
fprintf(stderr, "Unhandled trap: 0x%x\n", trapnr);
|
||||
cpu_dump_state(env, stderr, fprintf, 0);
|
||||
cpu_dump_state(cs, stderr, fprintf, 0);
|
||||
exit(1);
|
||||
}
|
||||
process_pending_signals (env);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue