Print this page
9736 kmdb tortures via single-step miscellaneous trap
Reviewed by: Robert Mustacchi <rm@joyent.com>
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>

@@ -27,10 +27,12 @@
  */
 
 #ifndef _AMD64_SYS_KDI_REGS_H
 #define _AMD64_SYS_KDI_REGS_H
 
+#include <sys/stddef.h>
+
 #ifdef __cplusplus
 extern "C" {
 #endif
 
 /*

@@ -75,10 +77,57 @@
 
 #define KDIREG_PC       KDIREG_RIP
 #define KDIREG_SP       KDIREG_RSP
 #define KDIREG_FP       KDIREG_RBP
 
+#if !defined(_ASM)
+
+/*
+ * Handy for debugging krs_gregs; keep in sync with the KDIREG_* above.
+ */
+typedef struct {
+        greg_t kr_savfp;
+        greg_t kr_savpc;
+        greg_t kr_rdi;
+        greg_t kr_rsi;
+        greg_t kr_rdx;
+        greg_t kr_rcx;
+        greg_t kr_r8;
+        greg_t kr_r9;
+        greg_t kr_rax;
+        greg_t kr_rbx;
+        greg_t kr_rbp;
+        greg_t r_r10;
+        greg_t r_r11;
+        greg_t r_r12;
+        greg_t r_r13;
+        greg_t r_r14;
+        greg_t r_r15;
+        greg_t kr_fsbase;
+        greg_t kr_gsbase;
+        greg_t kr_kgsbase;
+        greg_t kr_cr2;
+        greg_t kr_cr3;
+        greg_t kr_ds;
+        greg_t kr_es;
+        greg_t kr_fs;
+        greg_t kr_gs;
+        greg_t kr_trapno;
+        greg_t kr_err;
+        greg_t kr_rip;
+        greg_t kr_cs;
+        greg_t kr_rflags;
+        greg_t kr_rsp;
+        greg_t kr_ss;
+} kdiregs_t;
+
+#if defined(_KERNEL)
+CTASSERT(offsetof(kdiregs_t, kr_ss) == ((KDIREG_NGREG - 1) * sizeof (greg_t)));
+#endif
+
+#endif /* !_ASM */
+
 #ifdef __cplusplus
 }
 #endif
 
 #endif /* _AMD64_SYS_KDI_REGS_H */