How to compile u-boot with debug option?
ckim at etri.re.kr
Tue Oct 19 07:01:23 CEST 2021
Hello, Jaehoon and all,
I tried setting in menuconfig TOOLS_DEBUG but no change. It's strainge, when I add "V=1" in the make command, I can see the commands run during the make. The cc command has -g options, a typical command being like this :
aarch64-none-elf-gcc -Wp,-MD,lib/.asm-offsets.s.d -nostdinc -isystem /home/ckim/prj/abdsn/ab21cv/tools/cc_zeus/gcc-arm-9.2-2019.12-x86_64-aarch64-none-elf/bin/../lib/gcc/aarch64-none-elf/9.2.1/include -Iinclude -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -std=gnu11 -fshort-wchar -fno-strict-aliasing -fno-PIE -Os -fno-stack-protector -fno-delete-null-pointer-checks -Wno-pointer-sign -Wno-stringop-truncation -Wno-array-bounds -Wno-stringop-overflow -Wno-maybe-uninitialized -fmacro-prefix-map=./= -g -fstack-usage -Wno-format-nonliteral -Wno-address-of-packed-member -Wno-unused-but-set-variable -Werror=date-time -Wno-packed-not-aligned -D__ARM__ -fno-pic -mstrict-align -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -mgeneral-regs-only -fno-common -ffixed-x18 -pipe -march=armv8-a+crc -D__LINUX_ARM_ARCH__=8 -DDO_DEPS_ONLY -DKBUILD_BASENAME='"asm_offsets"' -DKBUILD_MODNAME='"asm_offsets"' -fverbose-asm -S -o lib/asm-offsets.s lib/asm-offsets.c
(you can see -g option near the middle place)
I don't know why the final .elf file doesn't contain debuginfo.
ckim at ckim-ubuntu:~/U-BOOT/u-boot$ readelf -S u-boot.elf
There are 5 section headers, starting at offset 0xc8950:
[Nr] Name Type Address Offset
Size EntSize Flags Link Info Align
[ 0] NULL 0000000000000000 00000000
0000000000000000 0000000000000000 0 0 0
[ 1] .data PROGBITS 0000000000000000 00010000
00000000000b8850 0000000000000000 WA 0 0 1
[ 2] .symtab SYMTAB 0000000000000000 000c8850
0000000000000090 0000000000000018 3 2 8
[ 3] .strtab STRTAB 0000000000000000 000c88e0
0000000000000049 0000000000000000 0 0 1
[ 4] .shstrtab STRTAB 0000000000000000 000c8929
0000000000000021 0000000000000000 0 0 1
Key to Flags:
W (write), A (alloc), X (execute), M (merge), S (strings), I (info),
L (link order), O (extra OS processing required), G (group), T (TLS),
C (compressed), x (unknown), o (OS specific), E (exclude),
p (processor specific)
And there are many configs including pattern "DEBUG" like CONFIG_DEBUG_UART_SANDBOX but it seems they are adding special debug features in the program behavior. What I want is to run the u-boot program itself in debug mode so that I can attach gdb and follow the program steps. (continue, step-in, step-out things..)
Any comment will be very much appreciated.
Thank you, and best regards,
> -----Original Message-----
> From: Jaehoon Chung <jh80.chung at samsung.com>
> Sent: Tuesday, October 19, 2021 12:26 PM
> To: Chan Kim <ckim at etri.re.kr>; U-Boot Mailing List <u-boot at lists.denx.de>
> Subject: Re: How to compile u-boot with debug option?
> On 10/19/21 11:21 AM, Chan Kim wrote:
> > Hello,
> > With these commands,
> > make ARCH=arm CROSS_COMPILE=aarch64-none-elf- qemu_arm64_defconfig
> > make ARCH=arm CROSS_COMPILE=aarch64-none-elf-
> > I see only u-boot.bin. How can I make u-boot.elf with debug info?
> > I found
> > https://protect2.fireeye.com/v1/url?k=126d5a6e-4df662a4-126cd121-0cc47
> > a31bee8-8e6c8ef0c2793943&q=1&e=4928b69d-166a-4647-b6c5-88bc2f73a780&u=
> > https%3A%2F%2Flists.denx.de%2Fpipermail%2Fu-boot%2F2005-May%2F010240.h
> > tml and tried adding
> It's too old patch. It's not proper to current u-boot.
> make ARCH=arm menucofig and check config relevant to DEBUG option.
> Best Regards,
> Jaehoon Chung
> > -DDEBUG to CFLAGS_NON_EFI in arch/arm/config.mk and adding CFLAGS +=
> > -DDEBUG in arch/arm/cpu/armv8/config.mk
> > But after doing "make ARCH=arm CROSS_COMPILE=aarch64-none-elf-
> > u-boot.elf", when I give file command for the u-boot.elf, it says
> > u-boot.elf: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV),
> > statically linked, not stripped
> > I think I should see "with debug_info, not stripped". With connecting
> > gdb, I can't see the source file. The run responds to 'continue' command
> > Could any tell me what I can do?
> > Thank you,
> > Chan Kim
More information about the U-Boot