summaryrefslogtreecommitdiffstats
path: root/sys/arm/mv/mv_machdep.c
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2011-01-22 00:32:12 +0000
committermarcel <marcel@FreeBSD.org>2011-01-22 00:32:12 +0000
commit2d20aaad9b43a7bcc980097df067f7bdf067c2cc (patch)
tree7511ca54038f25f1f58872d4faa69ec76125fbd3 /sys/arm/mv/mv_machdep.c
parent809122d5c7c9019a4d1ff6ae7205400a6ca76f88 (diff)
downloadFreeBSD-src-2d20aaad9b43a7bcc980097df067f7bdf067c2cc.zip
FreeBSD-src-2d20aaad9b43a7bcc980097df067f7bdf067c2cc.tar.gz
Fix backtraces by defining ksym_start & ksym_end if DDB is
defined. The kernel linker doesn't deal with symbols of type NOTYPE and typically gives the wrong symbol ($a) for local symbols. Obtained from: Juniper Networks, Inc.
Diffstat (limited to 'sys/arm/mv/mv_machdep.c')
-rw-r--r--sys/arm/mv/mv_machdep.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/sys/arm/mv/mv_machdep.c b/sys/arm/mv/mv_machdep.c
index 4981d22..9347c56 100644
--- a/sys/arm/mv/mv_machdep.c
+++ b/sys/arm/mv/mv_machdep.c
@@ -118,6 +118,10 @@ extern unsigned char _edata[];
extern unsigned char __bss_start[];
extern unsigned char _end[];
+#ifdef DDB
+extern vm_offset_t ksym_start, ksym_end;
+#endif
+
extern u_int data_abort_handler_address;
extern u_int prefetch_abort_handler_address;
extern u_int undefined_handler_address;
@@ -330,6 +334,10 @@ initarm(void *mdp, void *unused __unused)
dtbp = MD_FETCH(kmdp, MODINFOMD_DTBP, vm_offset_t);
lastaddr = MD_FETCH(kmdp, MODINFOMD_KERNEND,
vm_offset_t);
+#ifdef DDB
+ ksym_start = MD_FETCH(kmdp, MODINFOMD_SSYM, uintptr_t);
+ ksym_end = MD_FETCH(kmdp, MODINFOMD_ESYM, uintptr_t);
+#endif
}
} else {
OpenPOWER on IntegriCloud