Avatar ·

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! <<>> <