summaryrefslogtreecommitdiffstats
path: root/documentation/GNU-efi
diff options
context:
space:
mode:
Diffstat (limited to 'documentation/GNU-efi')
-rw-r--r--documentation/GNU-efi36
1 files changed, 36 insertions, 0 deletions
diff --git a/documentation/GNU-efi b/documentation/GNU-efi
index 5d75960..1efe81c 100644
--- a/documentation/GNU-efi
+++ b/documentation/GNU-efi
@@ -190,3 +190,39 @@ ST->ConOut->OutputString(ST->ConOut, buffer);
# https://wiki.osdev.org/Debugging_UEFI_applications_with_GDB #
#################################################################################
+Makefile at:
+https://sourceforge.net/p/ast-phoenix/code/ci/master/tree/kernel/boot/Makefile#l72
+
+EFI firmware is unable to launch binaries with debug sections. What you need is
+to create two EFI binaries - one with only required sections to upload it to
+target system and another one with debug symbols to use with GDB. Actually you
+just need to run objcopy utility twice with different set of sections to copy and
+different output files. (See Makefile example)
+
+To load image with symbols to relocated addresses for .text and .data sections,
+you need to add ImageBase address to their offsets:
+
+*********************************************************************************
+* # gdb hello.efi *
+* (gdb) info files *
+* ... *
+* Entry point: 0x3000 *
+* 3000 - ... is .text *
+* c00 - ... is .data *
+* (gdb) file || unload file *
+* add-symbol-table hello.efi (ImageBase+text-off) -s .data (ImageBase+data-off) *
+*********************************************************************************
+
+
+
+
+
+
+
+
+
+
+
+
+
+