Re: [PATCH 07/31] Add debugger entry points for NIOS2

From: Jeffrey Merkey
Date: Thu Jan 28 2016 - 22:49:59 EST


On 1/28/16, Ley Foon Tan <lftan@xxxxxxxxxx> wrote:
> On Fri, Jan 29, 2016 at 3:46 AM, Jeffrey Merkey <jeffmerkey@xxxxxxxxx>
> wrote:
>> This patch series adds an export which can be set by system debuggers to
>> direct the hard lockup and soft lockup detector to trigger a breakpoint
>> exception and enter a debugger if one is active. It is assumed that if
>> someone sets this variable, then an breakpoint handler of some sort will
>> be actively loaded or registered via the notify die handler chain.
>>
>> This addition is extremely useful for debugging hard and soft lockups
>> real time and quickly from a console debugger.
>>
>> Signed-off-by: Jeffrey Merkey <jeffmerkey@xxxxxxxxx>
>> ---
>> arch/nios2/include/asm/kdebug.h | 5 +++++
>> 1 file changed, 5 insertions(+)
>> create mode 100644 arch/nios2/include/asm/kdebug.h
>>
>> diff --git a/arch/nios2/include/asm/kdebug.h
>> b/arch/nios2/include/asm/kdebug.h
>> new file mode 100644
>> index 0000000..d5d9957
>> --- /dev/null
>> +++ b/arch/nios2/include/asm/kdebug.h
>> @@ -0,0 +1,5 @@
>> +
>> +static inline void arch_breakpoint(void)
>> +{
>> + __asm__ __volatile__("trap 30\n");
>> +}
>> --
> Hi Jeffrey
>
> We already have similar function in arch/nios2/include/asm/kgdb.h. Can
> we reuse this?
>
> static inline void arch_kgdb_breakpoint(void)
> {
> __asm__ __volatile__("trap 30\n");
> }
>
> Regards
> Ley Foon
>

Hi Ley,

I actually copied it from there. As it turns out, since it is being
called from watchdog.c it cannot be dependent on kgdb being compiled
so that function will not work . I am looking at a better way to do
this by using the BUG() macro instead of this function in all the
arches. Looks to be a lot cleaner and I can set the includes to
conditionally compile it with a breakpoint instead of the BUG while
loop.

Jeff