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