arm-none-eabi-addr2line和arm-none-eabi-objdump使用笔记

1. arm-none-eabi-addr2line

arm-none-eabi-addr2line -ife ./nuttx/vela_ap.elf  0x0c177186

arm-none-eabi-addr2line 是一个用于将地址转换为文件名和行号的工具,用于在嵌入式系统中调试程序时定位代码位置。命令的一般格式是:
arm-none-eabi-addr2line -e <可执行文件> <地址>

  • -e 参数指定可执行文件。
  • -i 选项,该工具会显示关于输入文件的详细信息
  • -f 选项,它将显示完整的函数名称
  • <可执行文件> 是你要查找代码位置的可执行文件。
  • <地址> 是要转换为文件名和行号的十六进制地址。

举例来说,如果你有一个名为 example.elf 的可执行文件,并且想要查找地址 0x12345678 对应的代码位置,你可以运行以下命令:

arm-none-eabi-addr2line -e example.elf 0x12345678

2. arm-none-eabi-objdump

arm-none-eabi-objdump --source --all-headers --demangle --file-headers --line-numbers --wide "test.elf" > "test.lst"

这条命令是用来对名为"test.elf"的二进制文件进行反汇编并生成一个包含源代码、头文件、行号等信息的列表文件"test.lst"。

arm-none-eabi-objdump: 这是一个用于反汇编目标文件的工具。

  • –source: 表示在列表文件中包含反汇编后的源代码。
  • –all-headers: 表示在列表文件中包含所有的头文件信息。
  • –demangle: 表示对C++符号进行解缠。
  • –file-headers: 表示在列表文件中包含有关文件本身的头信息。
  • –line-numbers: 表示在列表文件中包含源代码行号。
  • –wide: 表示在列表文件中使用宽格式输出。

执行这条命令后,生成的"test.lst"文件将包含了"test.elf"二进制文件的反汇编内容、源代码、头文件信息、行号等详细信息。这个列表文件可以帮助你更好地理解和调试这个二进制文件的内容。

相关推荐

  1. arm-none-eabi-addr2linearm-none-eabi-objdump使用笔记

    2024-04-09 06:28:06       11 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-09 06:28:06       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-09 06:28:06       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-09 06:28:06       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-09 06:28:06       18 阅读

热门阅读

  1. 18、Lua 错误处理

    2024-04-09 06:28:06       13 阅读
  2. VUE实现增删改查功能

    2024-04-09 06:28:06       10 阅读
  3. 前端小白的学习之路(Vue2 一)

    2024-04-09 06:28:06       10 阅读
  4. 刷题DAY46 | LeetCode 139-单词拆分 多重背包问题

    2024-04-09 06:28:06       9 阅读
  5. vue 文件导出

    2024-04-09 06:28:06       12 阅读
  6. 版本管理面试题|SVN和Git有什么区别?

    2024-04-09 06:28:06       12 阅读
  7. 理解Go语言中的竞争问题

    2024-04-09 06:28:06       11 阅读