Page MenuHomeFreeBSD

D44353.diff
No OneTemporary

D44353.diff

diff --git a/sys/arm64/arm64/gdb_machdep.c b/sys/arm64/arm64/gdb_machdep.c
--- a/sys/arm64/arm64/gdb_machdep.c
+++ b/sys/arm64/arm64/gdb_machdep.c
@@ -110,6 +110,7 @@
switch (type) {
case EXCP_WATCHPT_EL1:
case EXCP_SOFTSTP_EL1:
+ case EXCP_BRKPT_EL1:
case EXCP_BRK:
return (SIGTRAP);
}
diff --git a/sys/arm64/arm64/trap.c b/sys/arm64/arm64/trap.c
--- a/sys/arm64/arm64/trap.c
+++ b/sys/arm64/arm64/trap.c
@@ -500,6 +500,7 @@
*/
switch (exception) {
case EXCP_BRK:
+ case EXCP_BRKPT_EL1:
case EXCP_WATCHPT_EL1:
case EXCP_SOFTSTP_EL1:
break;
@@ -551,6 +552,7 @@
panic("No debugger in kernel.");
#endif
break;
+ case EXCP_BRKPT_EL1:
case EXCP_WATCHPT_EL1:
case EXCP_SOFTSTP_EL1:
#ifdef KDB
diff --git a/sys/arm64/include/armreg.h b/sys/arm64/include/armreg.h
--- a/sys/arm64/include/armreg.h
+++ b/sys/arm64/include/armreg.h
@@ -439,6 +439,7 @@
#define EXCP_TRAP_FP 0x2c /* Trapped FP exception */
#define EXCP_SERROR 0x2f /* SError interrupt */
#define EXCP_BRKPT_EL0 0x30 /* Hardware breakpoint, from same EL */
+#define EXCP_BRKPT_EL1 0x31 /* Hardware breakpoint, from same EL */
#define EXCP_SOFTSTP_EL0 0x32 /* Software Step, from lower EL */
#define EXCP_SOFTSTP_EL1 0x33 /* Software Step, from same EL */
#define EXCP_WATCHPT_EL0 0x34 /* Watchpoint, from lower EL */
diff --git a/sys/arm64/include/db_machdep.h b/sys/arm64/include/db_machdep.h
--- a/sys/arm64/include/db_machdep.h
+++ b/sys/arm64/include/db_machdep.h
@@ -36,6 +36,7 @@
#include <machine/trap.h>
#define T_BREAKPOINT (EXCP_BRK)
+#define T_HW_BREAKPOINT (EXCP_BRKPT_EL1)
#define T_SINGLESTEP (EXCP_SOFTSTP_EL1)
#define T_WATCHPOINT (EXCP_WATCHPT_EL1)
@@ -56,7 +57,8 @@
#define db_clear_single_step kdb_cpu_clear_singlestep
#define db_set_single_step kdb_cpu_set_singlestep
-#define IS_BREAKPOINT_TRAP(type, code) (type == T_BREAKPOINT)
+#define IS_BREAKPOINT_TRAP(type, code) \
+ (type == T_BREAKPOINT || type == T_HW_BREAKPOINT)
#define IS_SSTEP_TRAP(type, code) (type == T_SINGLESTEP)
#define IS_WATCHPOINT_TRAP(type, code) (type == T_WATCHPOINT)

File Metadata

Mime Type
text/plain
Expires
Wed, Nov 20, 3:24 AM (22 h, 2 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
14729265
Default Alt Text
D44353.diff (2 KB)

Event Timeline