[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] workaround: qemu-0.9.0 emulating mipsel (32-bit R3000)
From: |
Paul Brook |
Subject: |
Re: [Qemu-devel] workaround: qemu-0.9.0 emulating mipsel (32-bit R3000) on amd64 |
Date: |
Tue, 8 May 2007 00:03:36 +0100 |
User-agent: |
KMail/1.9.6 |
On Monday 07 May 2007, John Reiser wrote:
> Daniel Jacobowitz wrote:
> > On Sun, May 06, 2007 at 09:04:52PM +0100, Thiemo Seufer wrote:
> >>This looks like another instance of "Qemu/MIPS doesn't handle
> >>self-modifying code correctly" (the break instructions inserted
> >>by gdb are exactly this).
> >>
> >>A gross workaround is
> >>http://lists.nongnu.org/archive/html/qemu-devel/2007-05/msg00037.html
> >
> > Someone might want to try:
> > http://lists.nongnu.org/archive/html/qemu-devel/2007-04/msg00514.html
>
> This works for me so far: I can single-step reliably in gdb.
>
> --- a/qemu-0.9.0/target-mips/helper.c 2007-05-05 15:39:21.000000000 -0700
> +++ b/qemu-0.9.0/target-mips/helper.c 2007-05-07 13:24:50.000000000 -0700
> @@ -358,6 +358,7 @@
> goto set_EPC;
> case EXCP_BREAK:
> cause = 9;
> + tlb_flush_page(env, env->PC);
> goto set_EPC;
> case EXCP_RI:
> cause = 10;
I think this is still broken if the breakpoint is the first instruction on a
page. The changes Daniel mentioned should make this sort of flushing
unnecessary.
Paul