Skip to contentSkip to conversation

Add debugger entry points for NIOS2

PATCH In review Jeffrey Merkey 2 participants 3 messages Jan 28, 2016 – Jan 29, 2016 NIOS2 architecture

lore
Share & tools
lore
#0 lore raw

PATCH 7/31 Add debugger entry points for NIOS2

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.

---
 arch/nios2/include/asm/kdebug.h | 5 +++++
 1 file changed, 5 insertions(+)
 create mode 100644 arch/nios2/include/asm/kdebug.h
arch/nios2/include/asm/kdebug.h new file +5 -0
new file mode 100644
index 0000000..d5d9957
@@ -0,0 +1,5 @@
+
+static inline void arch_breakpoint(void)
+{
+	__asm__ __volatile__("trap 30\n");
+}
Signature · 1 line
1.8.3.1
#1 lore raw
Quoted 21 lines · Jeffrey Merkey

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.

---
 arch/nios2/include/asm/kdebug.h | 5 +++++
 1 file changed, 5 insertions(+)
 create mode 100644 arch/nios2/include/asm/kdebug.h
arch/nios2/include/asm/kdebug.h new file +0 -0
new file mode 100644
index 0000000..d5d9957

arch/nios2/include/asm/kdebug.h

Quoted 6 lines
arch/nios2/include/asm/kdebug.h new file +5 -1
@@ -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

#2 lore raw
Quoted 35 lines · Ley Foon Tan
Quoted 22 lines · Jeffrey Merkey

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.

---
 arch/nios2/include/asm/kdebug.h | 5 +++++
 1 file changed, 5 insertions(+)
 create mode 100644 arch/nios2/include/asm/kdebug.h
arch/nios2/include/asm/kdebug.h new file +0 -0
new file mode 100644
index 0000000..d5d9957

arch/nios2/include/asm/kdebug.h

Quoted 6 lines
arch/nios2/include/asm/kdebug.h new file +5 -1
@@ -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?

Quoted 8 lines

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