qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] sparc32 remote debugger mem access problems with 0.9.1


From: Blue Swirl
Subject: Re: [Qemu-devel] sparc32 remote debugger mem access problems with 0.9.1
Date: Thu, 14 Feb 2008 19:43:13 +0200

On 2/14/08, address@hidden <address@hidden> wrote:
> Hello,
>
>  recently I have updated my qemu from 0.9.0 to 0.9.1 and had problems
>  with the remote debugger memory access. Especially the command
>
>  x /10i 0x4000
>
>  doesn't work, even if the PC is 0x4000.
>
>  I have tracked down the problem till target-sparc/translate.c, where the
>  following calls are done:
>
>     if (get_physical_address(env, &phys_addr, &prot, &access_index, addr,
>  2, 0) != 0)
>         if (get_physical_address(env, &phys_addr, &prot, &access_index,
>  addr, 0, 0) != 0)
>             return -1;
>
>  In 0.9.0 the last arg to get_physical_address was 'is_user', now it is
>  'mmu_idx'. is_user
>  is now evaluated in target-sparc/helper.c:get_physical_adress by
>
>    is_user = mmu_idx == MMU_USER_IDX;
>
>  So if 'mmu_idx' ist still 0 (and MMU_USER_IDX is also 0) the resulting
>  'is_user' is TRUE
>  and the later
>
>    error_code = access_table[*access_index][access_perms];
>     if (error_code && !((env->mmuregs[0] & MMU_NF) && is_user))
>         return error_code;
>
>  always fails with access_index 0/2 and access_perms 7.
>
>  I have changed the last arg of get_physical_address to 1 and all works as
>  expected.

Thank you for the analysis! I'll commit the change.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]