From b945595d09ddf57e3f0064d59e060af059b1824d Mon Sep 17 00:00:00 2001 From: marcel Date: Sat, 1 Mar 2003 05:18:28 +0000 Subject: 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(-) (limited to 'sys/boot') 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 */ -- cgit v1.1