summaryrefslogtreecommitdiffstats
path: root/sys/boot
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2003-03-01 05:18:28 +0000
committermarcel <marcel@FreeBSD.org>2003-03-01 05:18:28 +0000
commitb945595d09ddf57e3f0064d59e060af059b1824d (patch)
tree46c4fd2fe7b9ec9e2f1eca3a1535bfa2aa3c63f6 /sys/boot
parentb6d91ca8936616a9e0a7d01f7a18d366d496902c (diff)
downloadFreeBSD-src-b945595d09ddf57e3f0064d59e060af059b1824d.zip
FreeBSD-src-b945595d09ddf57e3f0064d59e060af059b1824d.tar.gz
Speed up debugging in the context of unexpected traps by printing
the address of the image base of the loader. Given cr.iip, we can use the symbol table to figure out what function caused the trap.
Diffstat (limited to 'sys/boot')
-rw-r--r--sys/boot/efi/loader/main.c11
-rw-r--r--sys/boot/ia64/efi/main.c11
2 files changed, 12 insertions, 10 deletions
diff --git a/sys/boot/efi/loader/main.c b/sys/boot/efi/loader/main.c
index 7d138a1..bc1c044 100644
--- a/sys/boot/efi/loader/main.c
+++ b/sys/boot/efi/loader/main.c
@@ -131,12 +131,15 @@ main(int argc, CHAR16 *argv[])
efinet_init_driver();
+
+ /* Get our loaded image protocol interface structure. */
+ BS->HandleProtocol(IH, &imgid, (VOID**)&img);
+
+ printf("Image base: 0x%016lx\n", (u_long)img->ImageBase);
+
printf("\n");
printf("%s, Revision %s\n", bootprog_name, bootprog_rev);
printf("(%s, %s)\n", bootprog_maker, bootprog_date);
-#if 0
- printf("Memory: %ld k\n", memsize() / 1024);
-#endif
/*
* XXX quick and dirty check to see if we're loaded from the
@@ -144,8 +147,6 @@ main(int argc, CHAR16 *argv[])
* other cases we set the default device to 'disk'. We presume
* fixed positions in devsw for both net and disk.
*/
- BS->HandleProtocol(IH, &imgid, (VOID**)&img);
-
status = BS->HandleProtocol(img->DeviceHandle, &netid, (VOID**)&net);
if (status == EFI_SUCCESS && net != NULL) {
currdev.d_dev = devsw[1]; /* XXX net */
diff --git a/sys/boot/ia64/efi/main.c b/sys/boot/ia64/efi/main.c
index 7d138a1..bc1c044 100644
--- a/sys/boot/ia64/efi/main.c
+++ b/sys/boot/ia64/efi/main.c
@@ -131,12 +131,15 @@ main(int argc, CHAR16 *argv[])
efinet_init_driver();
+
+ /* Get our loaded image protocol interface structure. */
+ BS->HandleProtocol(IH, &imgid, (VOID**)&img);
+
+ printf("Image base: 0x%016lx\n", (u_long)img->ImageBase);
+
printf("\n");
printf("%s, Revision %s\n", bootprog_name, bootprog_rev);
printf("(%s, %s)\n", bootprog_maker, bootprog_date);
-#if 0
- printf("Memory: %ld k\n", memsize() / 1024);
-#endif
/*
* XXX quick and dirty check to see if we're loaded from the
@@ -144,8 +147,6 @@ main(int argc, CHAR16 *argv[])
* other cases we set the default device to 'disk'. We presume
* fixed positions in devsw for both net and disk.
*/
- BS->HandleProtocol(IH, &imgid, (VOID**)&img);
-
status = BS->HandleProtocol(img->DeviceHandle, &netid, (VOID**)&net);
if (status == EFI_SUCCESS && net != NULL) {
currdev.d_dev = devsw[1]; /* XXX net */
OpenPOWER on IntegriCloud