Hi all,
I had been running into problems using gdb to debug the virtual machine kernel. The problem I was experiencing is that I would set a breakpoint, but that gdb would only sometimes get notified that the breakpoint was hit.
I finally tracked down the problem to exec.c:breakpoint_invalidate. The problem is that breakpoint_invalidate, which is supposed to invalidate the translation block for the address you want to break at, was actualling invalidating the translation block for the base address of the page that contained your breakpoint address. The fix is actually very simple and is attached below.
Thanks
Andre Pech


diff -dc exec.c{.old,}
*** exec.c.old    2005-12-23 11:40:47.000000000 -0800
--- exec.c    2005-12-23 11:41:13.000000000 -0800
***************
*** 996,1001 ****
--- 996,1002 ----
      target_ulong phys_addr;
 
      phys_addr = cpu_get_phys_page_debug(env, pc);
+     phys_addr += pc & (~TARGET_PAGE_MASK);
      tb_invalidate_phys_page_range(phys_addr, phys_addr + 1, 0);
  }
  #endif


On 12/21/05, Mulyadi Santosa <[EMAIL PROTECTED] > wrote:
Hello Andre...

> I'm running into problems using qemu to debug a kernel module. My
> host and virtual machine are both x86 running Fedora Core 4. After
> insmoding the module in the virtual machine, starting gdbserver,
> running gdb on the host with the module sections loaded at the right
> place, and setting a breakpoint in the module code, gdb does not
> always get notified when the code is exectuted. After adding

I'm not doing module debugging, only core kernel code debugging, but
more or less I run into same situation (last time confirmed with Qemu
0.7.1)

For additional info, sometimes I also suffered the other condition.
Breakpoint is hit, but even if I delete it, the emulation still stops
whenever the code at related physical address is hit. I tried to
printf() every gdb command received by Qemu's gdbstub and it confirmed
that breakpoint deletion command is actually received, but I can't
confirm what is the real bug there.

regards

Mulyadi


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

Reply via email to