Mads, thanks for the review and feedbacks. I worked on this a few months ago but only managed to have it published now, I'm sorry for work being done twice.
I'll add support for SSTEP_NOIRQ as you suggested. For multi-core systems there's no particular issue, just I'm not familiar with all of these topics and I'm asking for good practices. KVM saves breakpoints information in struct 'KVMState', and following the same approach I've updated struct 'HVFState' to store equivalent data. To keep separate information for each cpu, KVM uses field 'kvm_state' in struct 'CPUState' (see 'include/hw/core/cpu.h'), but at the moment there's no analogous field for the HVF state (which is instead defined as a single global variable in 'accel/hvf/hvf-accel-ops.c'). Should we add a new field to 'CPUState' for the HVF state, or take a different approach? For your last question regarding `hv_vcpu_set_trap_debug_exceptions()`, I think it's possible to move it to `hvf_arch_update_guest_debug()` but I'm not confident about `hvf_arch_init_vcpu()`, I will experiment again.