Avatar ·

Comment obtenir une liste assembleur à partir de code C/C++ dans GCC ?

Bonjour à tous. J'apprends le C++ et j'essaie de comprendre comment le compilateur traduit mon code en instructions machine. Je veux voir ce que devient, par exemple, une simple boucle ou un appel de fonction. J'utilise GCC (g++) sous Linux. J'ai essayé le flag `-S`, il crée bien un fichier `.s`, mais il y a plein de bruit — des labels, des directives `.cfi_*`, des noms obscurs comme `.LC0`. Même un simple `hello.cpp` : ```cpp #include int main() { std::cout << "Hello\n"; return 0; } ``` Après `g++ -S hello.cpp`, dans `hello.s`, je vois non seulement le code, mais aussi beaucoup de choses superflues. Comment obtenir une liste assembleur propre, où l'on ne voit que le code de ma fonction, sans toutes ces informations de service ? Je suis aussi intéressé par : peut-on voir l'assembleur directement dans le terminal, sans créer de fichier ? Et comment faire une liste avec le code source entrelacé, pour voir clairement quelle ligne C++ se transforme en quoi ? En gros, veuillez m'indiquer, s'il vous plaît, les meilleures pratiques pour obtenir une sortie assembleur à partir de C/C++ dans GCC. Merci !