Jerone Young wrote: > New code recently added to the repository has made some modifications to > the kvm_update_debugger() function in qemu-kvm.c. Where as no longer to > just call kvm_guest_debug...Now there is a new fuction on_vcpu() that > places things in work queues and launches them. > > The problem is when kvm_invold_guest_debug() gets called, it segfaults > calling kvm_guest_debug(). I bet this piece from [1] will solve it: Index: b/qemu/qemu-kvm.c =================================================================== --- a/qemu/qemu-kvm.c +++ b/qemu/qemu-kvm.c @@ -268,7 +268,7 @@ static void kvm_main_loop_wait(CPUState exit(1); } - + cpu_single_env = env; flush_queued_work(env); if (vcpu_info[env->cpu_index].stop) { I didn't bother posting it separately as I (obviously wrongly) assumed this wouldn't trigger for the existing code. > > What exactly is the point of complicating this? The old code quickly live-locked when you invoked kvm_guest_debug while the target vcpu was still running. I suggested to stop the vcpu when invoking this (and other problematic) services, Avi preferred the on_vcpu aproach. And that, indeed, turned out to be cleaner and easier reusable. > > This code does segfault on x86 also. For now I have just placed the old > code back locally. I would be happy if you could give my patches a spin as well. I was using them for kernel debugging during this week, but I guess I'm still alone. :-> Jan [1] http://permalink.gmane.org/gmane.comp.emulators.kvm.devel/17968