Hi Andre...

> The problem that you are running into here is that sys_uname has been
> replaced by sys_newuname in kernel/sys.c. When I put a breakpoint in
> this function, everything works correctly when I run uname in the
> virtual machine.

yes, you're right. sys_newuname is the system call handler that handles 
"uname" in kernel space, as it is confirmed with eax=122 when we reach 
system_call entry in arch/i386/kernel/entry.S. Thanks for pointing me 
into the correct handler.

> I'm not sure I exactly understand your concern that breakpoints could
> be missed. When you set the breakpoint, tb_invalidate_phys_page_range
> is called, invalidating the translation block block for the address
> where you are placing the breakpoint. At this point, the next time
> that the address is hit, translate.c:gen_intermediate_code will have
> to be called, and the breakpoint will be hit. Let me know if I've
> missed something here.

I'm not 100% sure too, but maybe I need to confirm what I understand 
about "translation block" in Qemu. Suppose we have following asm 
snippet:
<....>
mov eax,8
mov ebx,10
move ecx,16
ret
<....>
When qemu check the above codes, I learn that it is converted into a 
single translation block ("ret" is the end mark of the translation 
block). Do I get something wrong here? Please CMIIW.

regards

Mulyadi



_______________________________________________
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel

Reply via email to