svn commit: r217708 - head/sys/arm/mv

Marcel Moolenaar marcel at FreeBSD.org
Sat Jan 22 00:32:12 UTC 2011


Author: marcel
Date: Sat Jan 22 00:32:12 2011
New Revision: 217708
URL: http://svn.freebsd.org/changeset/base/217708

Log:
  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.

Modified:
  head/sys/arm/mv/mv_machdep.c

Modified: head/sys/arm/mv/mv_machdep.c
==============================================================================
--- head/sys/arm/mv/mv_machdep.c	Sat Jan 22 00:19:15 2011	(r217707)
+++ head/sys/arm/mv/mv_machdep.c	Sat Jan 22 00:32:12 2011	(r217708)
@@ -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 {


More information about the svn-src-all mailing list