diff options
Diffstat (limited to 'documentation/GNU-efi')
-rw-r--r-- | documentation/GNU-efi | 36 |
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) * +********************************************************************************* + + + + + + + + + + + + + + |