【发布时间】:2019-09-07 04:41:58
【问题描述】:
我已经通过添加以下打印打印了U-boot中函数的地址。
printf("initcall: %pS \n", (char *)*init_fnc_ptr - reloc_ofs);
通过添加调试打印打印以下行。有没有办法从函数地址知道函数名。
initcall: 80809c05
【问题讨论】:
-
在 U-boot 中我们不会有 /proc/,backtrace() 在 U-boot 中也不可用。
-
减去加载地址然后查找编译后二进制的符号表
-
关于示例输出:“initcall: 80809c05” 这不是发布代码的输出,因为对
printf()的调用在地址后有一个“S”。 -
输出格式说明符需要
void*,而不是char*