【发布时间】:2018-09-22 13:56:45
【问题描述】:
我在调试程序时使用了 Eclipse-CDT“反汇编”视图(在“调试”透视图中。我发现 Eclipse-CDT 使源代码显示和汇编代码显示同步的方式很有用。
我想在不运行调试器的情况下仔细阅读编译器生成的汇编代码。我有兴趣更改以下内容:
- 编译器标志(例如:-O0、-O1、-O2、-O3)
- 更改 C 代码
然后观察生成的汇编代码的变化。
在Eclipse-CDT中,不主动调试程序是否可以查看反汇编,yes/no?
如果是,怎么做?
也许 Eclipse-CDT 不是解决此问题的正确工具。我似乎记得有一种方法可以促使编译器生成一个详细/可读的汇编列表,其中包含行号和注释返回到原始源。
【问题讨论】:
-
在 Eclipse-CDT 中,我刚刚注意到您可以双击一个目标文件并禁用生成程序集。我必须检查一下。
-
如果您想更改源或编译器选项并查看 asm 更改,您可能需要安装 Matt Godbolt 的编译器资源管理器 Web 界面的本地副本,您可以在其中在大型代码库的一部分上运行它。 (或者在线使用gcc.godbolt.org,如果您需要特殊的标头,请使用特殊的#include 语法用于github repos。)请参阅How to remove "noise" from GCC/clang assembly output?,以及Matt 的CppCon2017 演讲:“What Has My Compiler Done for Me Lately? Unbolting the Compiler's Lid”,其中他提到了本地安装。
-
Eclipse 没有这个特性是非常令人失望的。您仍然必须使用 objdump 来查看与代码交错的反汇编,但这当然不是用户友好的。
标签: c++ c assembly eclipse-cdt disassembly