【问题标题】:How to disassemble .elf file to .asm file in riscv如何在 riscv 中将 .elf 文件反汇编为 .asm 文件
【发布时间】:2021-06-16 07:41:48
【问题描述】:

我通过使用生成了一个.elf文件

riscv64-unknown-elf-gcc -march=rv64imac -mabi=lp64 -Tlinker.ld *.o add.o -o add.elf -static -nostartfiles -lm -lgcc

现在我想查看堆栈以检查分配给我的 add.c 中使用的变量的值。我相信同样可以从 .dasm/.asm 文件中获得。如何从 .elf 文件生成 .asm/.dasm 文件?

【问题讨论】:

    标签: c gcc riscv


    【解决方案1】:

    作为对 dratenik 答案的扩展。

    我正在使用 riscv32-unknown-elf-objdump --disassemble-all NAME.elf > NAME.disasm

    这样您甚至不必检查 -S 选项。并且可以反汇编你的 .elf 文件。

    再次正如 dratenik 所说,您需要将 objdump 的前缀调整为您的工具链。你的编译器前缀

    【讨论】:

      【解决方案2】:

      你可以通过添加-S开关在汇编阶段停止gcc,-o输出的文件将是一个asm源文件。或者您可以让 gcc 完成,然后使用objdump -d 将生成的二进制文件分开。当然,您需要从同一个工具链运行objdump 二进制文件,而不是您的系统。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-10-21
        • 1970-01-01
        • 2020-07-09
        • 2018-06-25
        • 1970-01-01
        • 1970-01-01
        • 2013-08-04
        • 1970-01-01
        相关资源
        最近更新 更多