如何使objdump像otool一样显式显示汇编指令的操作数大小?
问题:让objdump显式显示操作数大小后缀
我有一个名为test.c的小型C程序,代码如下:
int main(){ int a = 10; a++; }
我分别在不同系统上编译该程序:
- macOS(x86_64):使用命令
clang test.c -o test编译,通过otool -tV test查看可执行文件时,汇编指令会显式标注操作数大小后缀(如pushq) - Ubuntu:使用命令
gcc test.c -o test编译,通过objdump -dw test查看时,部分指令未标注该后缀(如push)
请问是否存在objdump的选项,能使其像otool一样显式显示这些操作数大小后缀?
解决方案
使用objdump的-M suffix选项即可实现该效果,执行命令如下:
objdump -dw -M suffix test
该选项会强制objdump在输出汇编指令时添加明确的操作数大小后缀,和otool的输出风格保持一致,比如原本的push会显示为pushq,mov会根据实际操作数大小显示为movl或movq等。
内容的提问来源于stack exchange,提问作者alessio solari
相关产品推荐
相关产品推荐

