vmlinux or vmlinuz not containg device driver function name and address but same driver is working correctly

277 views Asked by At

there is a function rtl8169_poll in linux kernel linux-5.12.6 inside realtek Ethernet device driver. inside the location lib/modules/5.12.6/kernel/drivers/net/ethernet/realtek/ there is r8169.ko which shows the function exists and gives offset address 0000000000000f00 when do objdump command objdump -S r8169.ko

So in gdb when I debug vmlinux -- and did list rtl8169_poll it says Function "rtl8169_poll" not defined. Basically I will be unable to debug this function when remote debugging with kgdb running target and gdb on development system. all this is done in compiled directory which contains vmlinux file. the full location is /home/fwd/Desktop/kernel-5.12.5/vmlinux

But when I did debug vmlinuz file and tried to list rtl8169_poll the out of this is

No symbol table is loaded.  Use the "file" command.

what the above line says I have added these flags when compiling kernel what is this output No symbol table is loaded. Use the "file" command talks about

CONFIG_DEBUG_KERNEL=y
CONFIG_DEBUG_INFO=y
CONFIG_CONSOLE_POLL=y
CONFIG_KDB_CONTINUE_CATASTROPHIC=0
CONFIG_KDB_DEFAULT_ENABLE=0x1
CONFIG_KDB_KEYBOARD=y
CONFIG_KGDB=y
CONFIG_KGDB_KDB=y
CONFIG_KGDB_LOW_LEVEL_TRAP=y
CONFIG_KGDB_SERIAL_CONSOLE=y
CONFIG_KGDB_TESTS=y
CONFIG_KGDB_TESTS_ON_BOOT=n
CONFIG_MAGIC_SYSRQ=y
CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1
CONFIG_SERIAL_KGDB_NMI=n

the gdb list command rtl8169_poll is done locally on target machine.Currently not started remote debugging. But I expect that the list command should have printed the function because its verified that function exists inside the driver located at /lib/modules/...../realtek/ with objdump and I have added degug flags when compiling kernel plus lspci -vvv also display the driver under 04:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 06)

0

There are 0 answers