You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Compiler Explorer IDE模式下如何显示.rodata段中的字符串常量

Compiler Explorer IDE模式下如何显示.rodata段中的字符串常量

我太懂你这种困惑了——单文件编译时,Compiler Explorer明明白白把.LC0: .string "abcdef"这种字符串常量输出给你看,但一切换到多文件的IDE模式,这些存在于.rodata段里的内容就凭空“消失”了,明明从汇编指令能看出来它们还在二进制里,调了半天输出和过滤选项也没用。别慌,给你几个实用的解决办法:

  • 用objdump提取.rodata段内容
    切换到右侧的Output选项卡,把输出类型改成“Binary”,然后在下方的参数输入框里填入-s -j .rodata。这个参数会让工具专门提取并打印.rodata段的所有内容,你的字符串常量会原原本本显示出来,连十六进制和ASCII格式的对应都会给你列清楚。

  • 查看单个编译单元的汇编输出
    虽然是多文件项目,但你可以单独点开每个cpp文件的标签页,在右侧选择“Assembly”输出类型,这样每个文件里定义的字符串常量(比如.string "abcdef")就会在各自的汇编结果里显示出来。这个方法适合你想确认每个文件里的常量定义,而不是最终链接后的合并结果。

  • 调整输出与过滤的默认设置
    有时候是默认的过滤规则把这些段内容藏起来了:

    1. 打开Filter选项面板,检查有没有勾选类似“Hide .rodata”的选项,要是有就取消勾选;
    2. 在Output选项里,选择“Assembly (with symbols)”模式,这个模式会保留更多符号和段的细节信息,可能直接就能把字符串常量显示出来。

其实IDE模式下默认会优化输出,更侧重展示最终可执行的汇编流程,所以把段里的常量细节给默认隐藏了,手动调整下参数就能找回来啦。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.07 11:38:00