Citation :
Merci beaucoup pour l'explication. Ca a un rapport quelconque avec le fameux flag -fomit-frame-pointer
Non Stripper un code objet ou un binaire ne change absolument pas les instructions executees par le processeur. Ce sont les "meta informations" du binaires que tu changes. Avec -fomit-frame-pointer, c'est pas du tout la meme chose: la, tu changes comment les registres du CPU sont utilises, et donc les instructions utilisees, et donc par la ca peut changer le fonctionnement du programme (s'il y a bug du compilo par exemple). Plus exactement, cette option gcc permet de dire ne garde pas l'adresse de la fonction utilisee actuellement dans un registre si tu n'en as pas besoin. L'avantage, c'est d'avoir un registre de plus disponible pour autre chose (les registres, ce sont des petits emplacement memoires utilises pour les calculs: ils sont extremement plus rapides que les caches, et evidemment que la memoire principale. Pour un ordre de grandeur, acceder a une valeur en memoire vive a un cout de l'ordre de 250 cycles, alors que l'acces au cache de niveau 2 ~ 15, avec un registre, c'est 1 cycle; bref, c'est beaucoup plus rapide). L'architecture x86 etant extremement avare en registres (y en a pas beaucoup), ca peut aider dans certains cas.
Le lien avec les symboles dont je parlais avant, c'est que si tu fais -fomit-frame-pointer, y a de grandes chances que le debuggage de l'appli soit impossible (les debuggers utilisant ce registre pour "savoir ou ils sont et ou aller").