为 MCU 应用程序添加符号文件,闪存上有偏移量,不显示任何函数名称
add-symbol-file for MCU app with offset on flash not showing any function names
我在 imx-rt-1024 nxp 芯片上有一个应用 运行。我有一个引导加载程序和实际的固件应用程序。我的引导加载程序位于 0x60000000,我的固件应用程序通常位于 0x60020000。
但该应用程序是使用 -fPIC(位置独立代码)编译的,因此我还可以将其闪存到闪存中的任何偏移位置。它还部署在 0x600b0000 上。
当我的 JLink 调试器在偏移应用程序中处于 运行 时,我可以将它连接到应用程序,但是,它不会在任何断点处中断,因为它不知道如何映射符号(自 elf文件会将所有地址映射到编译时地址:0x60020000)。
稍作阅读后,我应该能够加载带有如下偏移量的 elf 文件的符号:
gdb> add-symbol-file Debug/iobox-imx-rt-1020.axf 90000
我的elf文件是`iobox-imx-rt-1020.axf',0x60020000和0x600b0000之间的偏移量是0x90000。
gdb声称已经加载了符号,但之后我仍然无法破解或看到任何符号/函数名称。
remove-symbol-file Debug/iobox-imx-rt-1020.axf
No symbol file found
add-symbol-file Debug/iobox-imx-rt-1020.axf 90000
add symbol table from file "Debug/iobox-imx-rt-1020.axf" at
.text_addr = 0x15f90
(y or n) [answered Y; input not from terminal]
Reading symbols from Debug/iobox-imx-rt-1020.axf...
我做错了什么?我误解了偏移量吗?它应该与 90000 不同吗?
Am I misunderstanding the offset?
很有可能。偏移量应该是 .text
在运行时 的地址,而 90000 == 0x15f90
不是。
使用 readelf -WS Debug/iobox-imx-rt-1020.axf | grep .text
找出 .text
的起始位置(可能是 PIE 二进制文件中的某个低值),并且(假设您的加载程序将文件映射到 0x600b0000)使用 0x600b0000 + $text_start
add-symbol-file
命令。
我在 imx-rt-1024 nxp 芯片上有一个应用 运行。我有一个引导加载程序和实际的固件应用程序。我的引导加载程序位于 0x60000000,我的固件应用程序通常位于 0x60020000。
但该应用程序是使用 -fPIC(位置独立代码)编译的,因此我还可以将其闪存到闪存中的任何偏移位置。它还部署在 0x600b0000 上。
当我的 JLink 调试器在偏移应用程序中处于 运行 时,我可以将它连接到应用程序,但是,它不会在任何断点处中断,因为它不知道如何映射符号(自 elf文件会将所有地址映射到编译时地址:0x60020000)。
稍作阅读后,我应该能够加载带有如下偏移量的 elf 文件的符号:
gdb> add-symbol-file Debug/iobox-imx-rt-1020.axf 90000
我的elf文件是`iobox-imx-rt-1020.axf',0x60020000和0x600b0000之间的偏移量是0x90000。
gdb声称已经加载了符号,但之后我仍然无法破解或看到任何符号/函数名称。
remove-symbol-file Debug/iobox-imx-rt-1020.axf
No symbol file found
add-symbol-file Debug/iobox-imx-rt-1020.axf 90000
add symbol table from file "Debug/iobox-imx-rt-1020.axf" at
.text_addr = 0x15f90
(y or n) [answered Y; input not from terminal]
Reading symbols from Debug/iobox-imx-rt-1020.axf...
我做错了什么?我误解了偏移量吗?它应该与 90000 不同吗?
Am I misunderstanding the offset?
很有可能。偏移量应该是 .text
在运行时 的地址,而 90000 == 0x15f90
不是。
使用 readelf -WS Debug/iobox-imx-rt-1020.axf | grep .text
找出 .text
的起始位置(可能是 PIE 二进制文件中的某个低值),并且(假设您的加载程序将文件映射到 0x600b0000)使用 0x600b0000 + $text_start
add-symbol-file
命令。