gpt4 book ai didi

disassembly - RISCV 反汇编选项数字和无别名

转载 作者:行者123 更新时间:2023-12-04 03:12:05 25 4
gpt4 key购买 nike

我克隆了 riscv-tools 存储库(master 分支)并遵循了构建过程。一切顺利。

然后我尝试为 RV32IM 指令集编译 hello world 程序,这样做:

riscv64-unknown-elf-gcc -m32 -march=RV32IM -o hello hello.c -save-temps

我使用选项 save-temps 来保存中间文件。 (你好.s, 你好.i, 你好.o)

到目前为止一切正常,我可以运行 hello world 程序:

spike pk hello
Hello world!

现在我想看一下这个程序的汇编代码。我做了以下操作,并将汇编代码放入 hello.dump

riscv64-unknown-elf-objdump -D -S -l -F  hello.o > hello.o.dump

现在我感兴趣的是没有伪指令和非 ABI 寄存器名称的汇编代码。

当我这样做时,似乎有可能得到它:

riscv64-unknown-elf-objdump --target-help

我明白了:

The following RISC-V-specific disassembler options are supported for use
with the -M switch (multiple options should be separated by commas):

numeric Print numeric reigster names, rather than ABI names.

no-aliases Disassemble only into canonical instructions, rather
than into pseudoinstructions.

但是,当我尝试添加这些选项时,它不起作用。

riscv64-unknown-elf-objdump -D -S -l -F  -Mno-aliases hello.o > hello.o.dump
Unrecognized disassembler option: no-aliases

riscv64-unknown-elf-objdump -D -S -l -F -Mnumeric hello.o > hello.o.dump
Unrecognized disassembler option: numeric

riscv64-unknown-elf-objdump -D -S -l -F -Mnumeric,no-aliases hello.o > hello.o.dump
Unrecognized disassembler option: numeric
Unrecognized disassembler option: no-aliases

这是命令语法错误还是反汇编程序还不支持它?

最佳答案

我可以重现这个并得到相同的错误消息。但是,riscv64-unknown-elf-objdump 返回 0,并且输出文件确实包含没有伪指令和/或带有数字寄存器名称的汇编程序转储,如选项所要求的那样。所以它看起来像预期的那样工作,它也输出了一个恼人的错误消息。

riscv-tools自 2 月以来,repo 就没有更新过。我也尝试过构建更新版本的 riscv-gnu-toolchain在这里我没有收到错误消息。所以我想说这是一个已经在 riscv-gnu-toolchain 中修复的非严重错误,因此它将尽快在 riscv-tools 中修复riscv-gnu-toolchain 在那里更新。

关于disassembly - RISCV 反汇编选项数字和无别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31455996/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com