- 基本语法和参数含义
arm - none - eabi - addr2line.exe
是一个用于将程序中的地址转换为对应的文件名、函数名和行号的工具。其基本语法如下:arm - none - eabi - addr2line.exe [options] [addresses...]
- 主要参数含义:
-e
:指定可执行文件(ELF 格式)的路径,这个可执行文件是与要转换地址相关的程序文件,例如-e zephyr.elf
,其中zephyr.elf
是目标可执行文件。-a
:显示绝对文件名,而不仅仅是相对路径。-f
:在输出中同时显示函数名。-s
:只显示文件名和行号,省略函数名。这个参数与-f
参数是互斥的,不能同时使用。-p
:如果地址无法转换,不输出任何内容,而不是输出默认的错误信息。-i
:在输出函数名和行号后,尝试反汇编该地址附近的指令,提供更多关于该位置的信息。
- 使用场景示例
- 定位崩溃地址对应的代码位置:
- 假设你的嵌入式程序(如基于 Zephyr 操作系统的应用)崩溃了,并且你通过调试工具或者日志得到了崩溃时的程序地址,比如
0x1008d788
等。你可以使用arm - none - eabi - addr2line.exe
工具来找到这些地址在源代码中的位置。
- 假设你的嵌入式程序(如基于 Zephyr 操作系统的应用)崩溃了,并且你通过调试工具或者日志得到了崩溃时的程序地址,比如
- 定位崩溃地址对应的代码位置:
05-13
871

05-16
484

03-14