c - 如何将 IAR IDE 反汇编窗口内容保存到文件中?

标签 c embedded disassembly iar

使用 IAR IDE 从 C 源构建 ARM 可执行文件,我可以在相关窗口中看到反汇编,包括标签、地址、操作码和指令。

我正在尝试将一系列地址的内容转储到文本文件中,但找不到执行此操作的方法。窗口文本不可选择,因此我无法使用复制/粘贴。没有关联的菜单可以启用此功能。

作为替代方案,我可以生成列表和汇编文件,但这些似乎仅限于我的代码,并且不包含我感兴趣的 CRT 代码或任何 ROM 部分。

有什么方法可以转储选定的地址范围?

最佳答案

您想使用位于 arm/bin 下 Workbench 目录中的 ielfdumparm。这是该工具的帮助。

Usage:          IElfDump input_file [output_file]

Available command line options:
--all           Dump all sections
--code          Dump only code sections
--no_header     Do not produce a list header
--no_rel_sections
                Do not output associated .rel sections
--no_strtab     Do not include strtab sections
--output file
-o file         Name of text file to create
--raw           Use raw text format
--section #|name[,...]
-s #|name[,...] Dump only section(s) with given numbers/names
--source        Include source in disassembled code in executables
--use_full_std_template_names
                Don't use short names for standard C++ templates
-a              All sections, except strtab sections
-f file         Read command line options from file

要获得与调试 View 类似的输出,我建议 --code 以避免转储您的数据空间,并建议 --source 让它嵌入您的原始C 与程序集交织在一起。

您可以指定部分,但您似乎无法指定地址范围。您可以将它与其他一些 ELF 工具配对以仅提取特定地址范围,然后在其上运行此工具。或者,这会按地址顺序转储,因此您可以转储整个 ELF 文件,然后在事后查看您想要的地址范围。

关于c - 如何将 IAR IDE 反汇编窗口内容保存到文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19576032/

相关文章:

c - 为什么我们可以对 scanf 和 printf 使用 %d?

c++ - 面向对象对嵌入式系统不利,为什么?

linux - QScrollBar 在编译到桌面和嵌入式 Linux 环境之间有区别

c - *** 检测到 glibc *** outfile : free(): invalid pointer: ***

c - C 库中的错误报告

c++ - 执行比较和交换指令时微处理器是否禁用中断?

c - 逆向工程c程序

c++ - 如何使用 gcc-linaro-arm-linux-gnueabihf-objdump 使用源代码行和文件名分解二进制文件?

c++ - 调用 dll 中的另一个函数会导致访问冲突

c - 结构指针