如何像C语言中使用objdump -S那样将Rust源码与汇编交错显示?
Rust源码与汇编代码交错显示的实现方案
目前直接用objdump -S <file>处理Rust编译产物会输出错误内容,且截至2024年9月27日,cargo-objdump暂不支持-S选项或源码与汇编交错显示的功能,你可以尝试以下替代方法:
通过rustc生成带源码注释的汇编文件
执行编译命令时添加--emit asm和调试信息参数:rustc --emit asm -g src/main.rs生成的
.s文件中会包含对应源码的注释,能清晰看到Rust代码与汇编指令的映射关系。使用在线汇编工具Godbolt
直接将Rust代码粘贴到Godbolt平台,可选择不同版本的Rust编译器,工具会自动展示源码与汇编的对应关系,支持代码高亮和跳转定位,直观性很强。借助GDB调试查看
先以调试模式编译项目:cargo build --debug启动GDB并加载编译后的二进制文件:
gdb target/debug/your_binary_name在GDB中执行
layout split命令,即可同时显示Rust源码和对应的汇编代码,单步调试时能实时跟踪两者的对应执行流程。
内容的提问来源于stack exchange,提问作者ZeZNiQ
相关产品推荐
相关产品推荐

