[PATCH, v3] Expect SI_KERNEL or TRAP_BRKPT si_code values for MIPS breakpoint traps
Luis Machado
lgustavo@codesourcery.com
Tue Feb 23 02:00:00 GMT 2016
On 02/22/2016 07:41 PM, Pedro Alves wrote:
> On 02/22/2016 10:20 PM, Luis Machado wrote:
>
>> diff --git a/gdb/nat/linux-ptrace.h b/gdb/nat/linux-ptrace.h
>> index ba58717..72b32b1 100644
>> --- a/gdb/nat/linux-ptrace.h
>> +++ b/gdb/nat/linux-ptrace.h
>> @@ -140,11 +140,16 @@ struct buffer;
>> in SPU code on a Cell/B.E. However, SI_KERNEL is never seen
>> on a SIGTRAP for any other reason.
>>
>> + The MIPS kernel uses the default si_code of SI_KERNEL for software
>> + breakpoints, hardware watchpoints and SIGTRAP's in general.
>
> If we get this for both software breakpoints and hardware watchpoints,
> then it seems to me that this change still leaves watchpoints broken,
> as I can't see how check_stopped_by_watchpoint is reached, in either
> gdb/linux-nat.c or gdbserver/linux-low.c.
With or without this specific breakpoint fix, hardware watchpoints are
already broken for MIPS AFAICS.
MIPS' kernel has never set si_code to anything other than SI_KERNEL.
When the change to expect TRAP_HWBKPT was committed, then hardware
watchpoints stopped working properly for MIPS.
Now all hardware watchpoints produce are breakpoint-like traps that get
silently ignored by GDB as "delayed software breakpoint trap". Neither
GDB nor GDBserver can tell when a hardware watchpoint really happened by
using si_code information.
But this seems to be a different issue and i think it should be handle
separately.
>
> Also, "and SIGTRAP's in general." seems wrong. I hope that that's
> not the case for user-sent SIGTRAPs?
>
I'll get this updated in the next version.
More information about the Gdb-patches
mailing list