qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 2/2] PPC: Fix GDB read on code area for PPC6xx


From: Alexander Graf
Subject: Re: [Qemu-devel] [PATCH 2/2] PPC: Fix GDB read on code area for PPC6xx
Date: Sat, 22 Jun 2013 02:26:52 +0200

On 21.06.2013, at 20:10, Jan Kiszka wrote:

> On 2013-06-18 17:34, Alexander Graf wrote:
>> 
>> On 18.06.2013, at 16:53, Fabien Chouteau wrote:
>> 
>>> On PPC 6xx, data and code have separated TLBs. Until now QEMU was only
>>> looking at data TLBs, which is not good when GDB wants to read code.
>>> 
>>> This patch adds a second call to get_physical_address() with an
>>> ACCESS_CODE type of access when the first call with ACCESS_INT fails.
>>> 
>>> Signed-off-by: Fabien Chouteau <address@hidden>
>>> ---
>>> target-ppc/mmu_helper.c |   10 +++++++++-
>>> 1 file changed, 9 insertions(+), 1 deletion(-)
>>> 
>>> diff --git a/target-ppc/mmu_helper.c b/target-ppc/mmu_helper.c
>>> index 910e022..19f0b8c 100644
>>> --- a/target-ppc/mmu_helper.c
>>> +++ b/target-ppc/mmu_helper.c
>>> @@ -1378,7 +1378,15 @@ hwaddr cpu_get_phys_page_debug(CPUPPCState *env, 
>>> target_ulong addr)
>>>    }
>>> 
>>>    if (unlikely(get_physical_address(env, &ctx, addr, 0, ACCESS_INT) != 0)) 
>>> {
>>> -        return -1;
>>> +
>>> +        /* Some MMUs have separate TLBs for code and data. If we only try 
>>> an
>>> +         * ACCESS_INT, we may not be able to read instructions mapped by 
>>> code
>>> +         * TLBs, so we also try a ACCESS_CODE.
>> 
>> This is pretty ugly, but I don't see any other way to conveniently give gdb 
>> the information it needs. Let's ask Jan whether he has an idea. Maybe a 
>> monitor command to switch memory access modes?
> 
> I suppose the gdb frontend is not willing to tell us what kind of memory
> it accesses (code disassembling or data access etc.), right? So we can
> only guess here, ie. try both. I don't see how a monitor-based side
> channel could help. If we touched gdb, we could also touch the remote
> protocol (for memory accesses).

Thanks, applied to ppc-next. Teaching gdb a new protocol is way out of scope 
for these rare cases :).


Alex




reply via email to

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