summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--gnu/usr.bin/binutils/gdb/i386/kvm-fbsd.c20
-rw-r--r--gnu/usr.bin/binutils/gdb/kvm-fbsd.c20
2 files changed, 38 insertions, 2 deletions
diff --git a/gnu/usr.bin/binutils/gdb/i386/kvm-fbsd.c b/gnu/usr.bin/binutils/gdb/i386/kvm-fbsd.c
index 9513af3..fdfc6a3 100644
--- a/gnu/usr.bin/binutils/gdb/i386/kvm-fbsd.c
+++ b/gnu/usr.bin/binutils/gdb/i386/kvm-fbsd.c
@@ -449,7 +449,25 @@ xfer_umem (memaddr, myaddr, len, write)
return n;
}
-#define KERNOFF ((unsigned)KERNBASE)
+static CORE_ADDR
+ksym_kernbase()
+{
+ static CORE_ADDR kernbase;
+ struct minimal_symbol *sym;
+
+ if (kernbase == 0)
+ {
+ sym = lookup_minimal_symbol ("kernbase", NULL, NULL);
+ if (sym == NULL) {
+ kernbase = KERNBASE;
+ } else {
+ kernbase = SYMBOL_VALUE_ADDRESS (sym);
+ }
+ }
+ return kernbase;
+}
+
+#define KERNOFF (ksym_kernbase())
#define INKERNEL(x) ((x) >= KERNOFF)
static CORE_ADDR sbr;
diff --git a/gnu/usr.bin/binutils/gdb/kvm-fbsd.c b/gnu/usr.bin/binutils/gdb/kvm-fbsd.c
index 9513af3..fdfc6a3 100644
--- a/gnu/usr.bin/binutils/gdb/kvm-fbsd.c
+++ b/gnu/usr.bin/binutils/gdb/kvm-fbsd.c
@@ -449,7 +449,25 @@ xfer_umem (memaddr, myaddr, len, write)
return n;
}
-#define KERNOFF ((unsigned)KERNBASE)
+static CORE_ADDR
+ksym_kernbase()
+{
+ static CORE_ADDR kernbase;
+ struct minimal_symbol *sym;
+
+ if (kernbase == 0)
+ {
+ sym = lookup_minimal_symbol ("kernbase", NULL, NULL);
+ if (sym == NULL) {
+ kernbase = KERNBASE;
+ } else {
+ kernbase = SYMBOL_VALUE_ADDRESS (sym);
+ }
+ }
+ return kernbase;
+}
+
+#define KERNOFF (ksym_kernbase())
#define INKERNEL(x) ((x) >= KERNOFF)
static CORE_ADDR sbr;
OpenPOWER on IntegriCloud