GCC:编译成程序集并明确与代码的对应关系?
Posted
技术标签:
【中文标题】GCC:编译成程序集并明确与代码的对应关系?【英文标题】:GCC: Compile to assembly with clarified correspondence to code? 【发布时间】:2010-06-14 10:46:45 【问题描述】:当您在 VS 中闯入调试器并打开反汇编窗口时,每个程序集片段都会显示在其对应的代码部分下方(或多或少)。带有 -S 的 GCC 仅输出精简后的程序集。
GCC 中是否有一个选项可以显示与原始代码的某些对应关系?
源代码是 C++。
【问题讨论】:
***.com/questions/1289881/… 【参考方案1】:用gcc -g
编译你的代码,然后你可以用objdump -S yourfile
反汇编。这会给你一个散布在源代码中的反汇编。
【讨论】:
【参考方案2】:如果您询问调试,请在 gdb 中使用带有 /m(混合)标志的反汇编命令:
(gdb) disas /m main
假设代码可用并且您使用 -g 标志编译,将使用散布在汇编器中的 C++ 代码反汇编 main。
【讨论】:
【参考方案3】:改为反汇编对象。 -S 通常给出的代码正是 gcc 为您的代码生成的代码,没有起始代码或链接器放在一起的其他内容。 补充:当然,在对象中包含调试信息会有很大帮助。
【讨论】:
【参考方案4】:gcc yourFile.C -S -fverbose-asm
不完全是您要找的东西,但比没有更有用。
【讨论】:
以上是关于GCC:编译成程序集并明确与代码的对应关系?的主要内容,如果未能解决你的问题,请参考以下文章