summaryrefslogtreecommitdiffstats
path: root/gnu
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>2001-12-11 07:04:48 +0000
committerpeter <peter@FreeBSD.org>2001-12-11 07:04:48 +0000
commita4375c2daefe97b3afaa1fdafdeee28b27e33720 (patch)
tree85646328211833ee1d57d4eae2f011ab29468844 /gnu
parentf2a2bcb9ed4d56b09bae3846eac4cfc62cdd6d58 (diff)
downloadFreeBSD-src-a4375c2daefe97b3afaa1fdafdeee28b27e33720.zip
FreeBSD-src-a4375c2daefe97b3afaa1fdafdeee28b27e33720.tar.gz
*** empty log message ***
Diffstat (limited to 'gnu')
-rw-r--r--gnu/usr.bin/binutils/gdb/i386/kvm-fbsd.c26
-rw-r--r--gnu/usr.bin/binutils/gdb/kvm-fbsd.c26
2 files changed, 44 insertions, 8 deletions
diff --git a/gnu/usr.bin/binutils/gdb/i386/kvm-fbsd.c b/gnu/usr.bin/binutils/gdb/i386/kvm-fbsd.c
index 07a1e18..b2238ad 100644
--- a/gnu/usr.bin/binutils/gdb/i386/kvm-fbsd.c
+++ b/gnu/usr.bin/binutils/gdb/i386/kvm-fbsd.c
@@ -402,6 +402,24 @@ kcore_files_info (t)
printf ("\t`%s'\n", core_file);
}
+static CORE_ADDR
+ksym_maxuseraddr()
+{
+ static CORE_ADDR maxuseraddr;
+ struct minimal_symbol *sym;
+
+ if (maxuseraddr == 0)
+ {
+ sym = lookup_minimal_symbol ("PTmap", NULL, NULL);
+ if (sym == NULL) {
+ maxuseraddr = VM_MAXUSER_ADDRESS;
+ } else {
+ maxuseraddr = SYMBOL_VALUE_ADDRESS (sym);
+ }
+ }
+ return maxuseraddr;
+}
+
static int
kcore_xfer_kmem (memaddr, myaddr, len, write, target)
CORE_ADDR memaddr;
@@ -413,7 +431,7 @@ kcore_xfer_kmem (memaddr, myaddr, len, write, target)
int ns;
int nu;
- if (memaddr >= (CORE_ADDR)VM_MAXUSER_ADDRESS)
+ if (memaddr >= ksym_maxuseraddr())
nu = 0;
else
{
@@ -423,7 +441,7 @@ kcore_xfer_kmem (memaddr, myaddr, len, write, target)
if (nu == len)
return (nu);
memaddr += nu;
- if (memaddr != (CORE_ADDR)VM_MAXUSER_ADDRESS)
+ if (memaddr != ksym_maxuseraddr())
return (nu);
myaddr += nu;
len -= nu;
@@ -584,7 +602,7 @@ kvm_open (efile, cfile, sfile, perm, errout)
}
physrd (cfd, ksym_lookup ("IdlePTD") - KERNOFF, (char*)&sbr, sizeof sbr);
- printf ("IdlePTD %lu\n", (unsigned long)sbr);
+ printf ("IdlePTD at phsyical address 0x%08lx\n", (unsigned long)sbr);
curpcb = kvtophys(cfd, pcpu + PCPU_OFFSET (curpcb));
physrd (cfd, curpcb, (char*)&curpcb, sizeof curpcb);
@@ -594,7 +612,7 @@ kvm_open (efile, cfile, sfile, perm, errout)
else
paddr = kvtophys (cfd, curpcb);
read_pcb (cfd, paddr);
- printf ("initial pcb at %lx\n", (unsigned long)paddr);
+ printf ("initial pcb at physical address 0x%08lx\n", (unsigned long)paddr);
return (cfd);
}
diff --git a/gnu/usr.bin/binutils/gdb/kvm-fbsd.c b/gnu/usr.bin/binutils/gdb/kvm-fbsd.c
index 07a1e18..b2238ad 100644
--- a/gnu/usr.bin/binutils/gdb/kvm-fbsd.c
+++ b/gnu/usr.bin/binutils/gdb/kvm-fbsd.c
@@ -402,6 +402,24 @@ kcore_files_info (t)
printf ("\t`%s'\n", core_file);
}
+static CORE_ADDR
+ksym_maxuseraddr()
+{
+ static CORE_ADDR maxuseraddr;
+ struct minimal_symbol *sym;
+
+ if (maxuseraddr == 0)
+ {
+ sym = lookup_minimal_symbol ("PTmap", NULL, NULL);
+ if (sym == NULL) {
+ maxuseraddr = VM_MAXUSER_ADDRESS;
+ } else {
+ maxuseraddr = SYMBOL_VALUE_ADDRESS (sym);
+ }
+ }
+ return maxuseraddr;
+}
+
static int
kcore_xfer_kmem (memaddr, myaddr, len, write, target)
CORE_ADDR memaddr;
@@ -413,7 +431,7 @@ kcore_xfer_kmem (memaddr, myaddr, len, write, target)
int ns;
int nu;
- if (memaddr >= (CORE_ADDR)VM_MAXUSER_ADDRESS)
+ if (memaddr >= ksym_maxuseraddr())
nu = 0;
else
{
@@ -423,7 +441,7 @@ kcore_xfer_kmem (memaddr, myaddr, len, write, target)
if (nu == len)
return (nu);
memaddr += nu;
- if (memaddr != (CORE_ADDR)VM_MAXUSER_ADDRESS)
+ if (memaddr != ksym_maxuseraddr())
return (nu);
myaddr += nu;
len -= nu;
@@ -584,7 +602,7 @@ kvm_open (efile, cfile, sfile, perm, errout)
}
physrd (cfd, ksym_lookup ("IdlePTD") - KERNOFF, (char*)&sbr, sizeof sbr);
- printf ("IdlePTD %lu\n", (unsigned long)sbr);
+ printf ("IdlePTD at phsyical address 0x%08lx\n", (unsigned long)sbr);
curpcb = kvtophys(cfd, pcpu + PCPU_OFFSET (curpcb));
physrd (cfd, curpcb, (char*)&curpcb, sizeof curpcb);
@@ -594,7 +612,7 @@ kvm_open (efile, cfile, sfile, perm, errout)
else
paddr = kvtophys (cfd, curpcb);
read_pcb (cfd, paddr);
- printf ("initial pcb at %lx\n", (unsigned long)paddr);
+ printf ("initial pcb at physical address 0x%08lx\n", (unsigned long)paddr);
return (cfd);
}
OpenPOWER on IntegriCloud