From 59c9bb54ee9f788e7a3e3c17027f3f770ca200af Mon Sep 17 00:00:00 2001 From: Marcel Moolenaar Date: Sat, 1 Mar 2003 05:18:28 +0000 Subject: [PATCH] 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. --- sys/boot/efi/loader/main.c | 11 ++++++----- sys/boot/ia64/efi/main.c | 11 ++++++----- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/sys/boot/efi/loader/main.c b/sys/boot/efi/loader/main.c index 7d138a17021..bc1c044c96e 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 7d138a17021..bc1c044c96e 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 */