如何从GCC中的C/C++代码获取汇编清单?
大家好。我正在学习C++,并试图理解编译器如何将我的代码转换为机器指令。我想看看例如一个简单的循环或函数调用会变成什么。我在Linux下使用GCC(g++)。
我试过`-S`标志,它似乎会生成一个`.s`文件,但里面有很多垃圾——标签、`.cfi_*`指令、像`.LC0`这样难以理解的名称。即使是一个简单的`hello.cpp`:
```cpp
#include
int main() {
std::cout << "Hello\n";
return 0;
}
```
执行`g++ -S hello.cpp`后,在`hello.s`中我不仅看到代码,还有很多多余的东西。如何获得一个干净的汇编清单,只显示我的函数代码,而不包含所有这些辅助信息?
另外我还想知道:是否可以在终端中直接查看汇编,而不创建文件?以及如何生成混合了源代码的清单,以便直观地看到哪一行C++代码转换成了什么?
总之,请告诉我从GCC中的C/C++获取汇编输出的最佳实践。谢谢!