Print this page
9441 kmdb should stash %cr3 in kdiregs
Reviewed by: John Levon <john.levon@joyent.com>
8956 Implement KPTI
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
Reviewed by: Robert Mustacchi <rm@joyent.com>
@@ -22,11 +22,11 @@
/*
* Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
/*
- * Copyright (c) 2012, Joyent, Inc. All rights reserved.
+ * Copyright (c) 2018, Joyent, Inc. All rights reserved.
* Copyright 2014 Nexenta Systems, Inc. All rights reserved.
* Copyright (c) 2013 by Delphix. All rights reserved.
*/
#include <sys/types.h>
@@ -131,10 +131,14 @@
{ "rsp", KREG_RSP, MDB_TGT_R_EXPORT },
{ "esp", KREG_RSP, MDB_TGT_R_EXPORT | MDB_TGT_R_32 },
{ "sp", KREG_RSP, MDB_TGT_R_EXPORT | MDB_TGT_R_16 },
{ "spl", KREG_RSP, MDB_TGT_R_EXPORT | MDB_TGT_R_8L },
{ "ss", KREG_SS, MDB_TGT_R_EXPORT },
+ { "gsbase", KREG_GSBASE, MDB_TGT_R_EXPORT },
+ { "kgsbase", KREG_KGSBASE, MDB_TGT_R_EXPORT },
+ { "cr2", KREG_CR2, MDB_TGT_R_EXPORT },
+ { "cr3", KREG_CR3, MDB_TGT_R_EXPORT },
{ NULL, 0, 0 }
};
void
mdb_amd64_printregs(const mdb_tgt_gregset_t *gregs)
@@ -184,17 +188,18 @@
(rflags & KREG_EFLAGS_ZF_MASK) ? "ZF" : "zf",
(rflags & KREG_EFLAGS_AF_MASK) ? "AF" : "af",
(rflags & KREG_EFLAGS_PF_MASK) ? "PF" : "pf",
(rflags & KREG_EFLAGS_CF_MASK) ? "CF" : "cf");
- mdb_printf("%24s%%cs = 0x%04x\t%%ds = 0x%04x\t%%es = 0x%04x\n",
- " ", kregs[KREG_CS], kregs[KREG_DS], kregs[KREG_ES]);
-
- mdb_printf("%%trapno = 0x%x\t\t%%fs = 0x%04x\t%%gs = 0x%04x\n",
- kregs[KREG_TRAPNO], (kregs[KREG_FS] & 0xffff),
- (kregs[KREG_GS] & 0xffff));
- mdb_printf(" %%err = 0x%x\n", kregs[KREG_ERR]);
+ mdb_printf("%%cs = 0x%04x\t%%ds = 0x%04x\t"
+ "%%es = 0x%04x\t%%fs = 0x%04x\n", kregs[KREG_CS], kregs[KREG_DS],
+ kregs[KREG_ES], kregs[KREG_FS] & 0xffff);
+ mdb_printf("%%gs = 0x%04x\t%%gsbase = 0x%lx\t%%kgsbase = 0x%lx\n",
+ kregs[KREG_GS] & 0xffff, kregs[KREG_GSBASE], kregs[KREG_KGSBASE]);
+ mdb_printf("%%trapno = 0x%x\t%%err = 0x%x\t%%cr2 = 0x%lx\t"
+ "%%cr3 = 0x%lx\n", kregs[KREG_TRAPNO], kregs[KREG_ERR],
+ kregs[KREG_CR2], kregs[KREG_CR3]);
}
int
mdb_amd64_kvm_stack_iter(mdb_tgt_t *t, const mdb_tgt_gregset_t *gsp,
mdb_tgt_stack_f *func, void *arg)