Como obter listagem assembly do código C/C++ no GCC?
Olá a todos. Estou estudando C++ e tentando entender como o compilador traduz meu código em instruções de máquina. Quero ver no que se transforma, por exemplo, um loop simples ou uma chamada de função. Estou usando GCC (g++) no Linux.
Tentei a flag `-S`, que parece criar um arquivo `.s`, mas tem um monte de lixo — rótulos, diretivas `.cfi_*`, nomes estranhos como `.LC0`. Até um simples `hello.cpp`:
```cpp
#include
int main() {
std::cout << "Hello\n";
return 0;
}
```
Depois de `g++ -S hello.cpp`, no `hello.s` vejo não só o código, mas um monte de coisas extras. Como obter uma listagem assembly limpa, onde só veja o código da minha função, sem toda essa informação auxiliar?
Também me interessa: é possível ver o assembly diretamente no terminal, sem criar um arquivo? E como fazer uma listagem com o código fonte intercalado, para ver claramente qual linha C++ se transforma em quê?
No geral, por favor, me indiquem as melhores práticas para obter saída assembly do C/C++ no GCC. Obrigado!
<<>>
<