使用addr2line定位call trace代码位置
addr2line可以用来定位call trace打印的PC值对应的代码位置。
1.要找到用于 addr2line 的镜像文件,你需要一个包含调试符号的 ELF(Executable and Linkable Format)文件。这个文件通常不会被剥离(strip),这意味着它包含了源代码的调试信息,如文件名、行号和符号信息。
2.可以使用file检查文件属性,观察是否有debug info的字样。或者使用readelf --sections file.elf,观察是否有debug字段。
3.使用编译时的GCC工具。推荐使用编译用的gcc工具,如果gcc版本不一致,可能有差别。
arm-linux-gnueabihf-addr2line -e your-image 0xfffffxxxxxx
yocto项目产生的lk.elf位于 bulld/tmp/work/xxx_project-pokym/lib64-lk
也可以在build/tmp/work/ find -name "*.elf"找到文件位置。

浙公网安备 33010602011771号