Précédent   Forum du club des développeurs et IT Pro > C et C++ > C++
C++ Forum d'entraide technique sur le langage C++. Avant de poster -> F.A.Q C++
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Actualité déjà publiée
 
Outils de la discussion
Publicité
'
Vieux 11/03/2013, 10h02   #1
ram-0000
Rédacteur/Modérateur

 
Avatar de ram-0000
 
Homme Raymond
Inscription : mai 2007
Messages : 9 011
Détails du profil
Informations personnelles :
Nom : Homme Raymond
Localisation : France

Informations forums :
Inscription : mai 2007
Messages : 9 011
Points : 27 692
Points : 27 692
Par défaut Programme d'étude sur le C++ bas niveau n° 8 : l'assembleur optimisé

Bonjour à tous

L'objectif de cette série d'articles d'Alex Darby sur la programmation « bas-niveau » est de permettre aux développeurs ayant déjà des connaissances de la programmation C++ de mieux comprendre comment vos programmes sont exécutés en pratique. Ce huitième article s'intéresse aux optimisations faites par le compilateur C/C++ et à l'assembleur optimisé.

Programme d'étude sur le C++ bas niveau n° 8 : l'assembleur optimisé

Bonne lecture.

Retrouver l'ensemble des articles de cette série sur la page d'index.
__________________
Raymond
Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
e-verbe Un logiciel de conjugaison des verbes de la langue française.

Ma page personnelle sur DVP
.
ram-0000 est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 11/03/2013, 12h56   #2
germinolegrand
Rédacteur/Modérateur
 
Avatar de germinolegrand
 
Homme Germino Legrand
Développeur de jeux vidéo
Inscription : octobre 2010
Messages : 366
Détails du profil
Informations personnelles :
Nom : Homme Germino Legrand
Localisation : France, Puy de Dôme (Auvergne)

Informations professionnelles :
Activité : Développeur de jeux vidéo
Secteur : Tourisme - Loisirs

Informations forums :
Inscription : octobre 2010
Messages : 366
Points : 1 932
Points : 1 932
Série d'articles très instructive, même en ne disposant pas de VS ^^
__________________
Choisis un travail que tu aimes et tu n'auras pas à travailler un seul jour de ta vie.
germinolegrand est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2013, 13h25   #3
gbdivers
Responsable C++

 
Homme Guillaume Belz
Biochimiste
Inscription : novembre 2008
Messages : 5 312
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Belz
Âge : 37
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Biochimiste
Secteur : Santé

Informations forums :
Inscription : novembre 2008
Messages : 5 312
Points : 19 513
Points : 19 513
Pour info, pour avoir le code assembleur avec gcc et Clang, il suffit d'utiliser l'option de compilation -S
__________________
Vous souhaitez rejoindre l'équipe de bénévoles qui fait vivre Developpez (traduction, rédaction, modération) ? Contactez moi par MP.

Ma page personnelle avec la liste de mes articles - Mon blog sur le C++, Qt et les GPU.

Je suis régulièrement sur le chat pour les questions C++/Qt.

Apprendre Qt 5 : vidéos d'installation (YouTube), extraites du livre Créer des applications avec Qt 5.
gbdivers est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2013, 13h52   #4
germinolegrand
Rédacteur/Modérateur
 
Avatar de germinolegrand
 
Homme Germino Legrand
Développeur de jeux vidéo
Inscription : octobre 2010
Messages : 366
Détails du profil
Informations personnelles :
Nom : Homme Germino Legrand
Localisation : France, Puy de Dôme (Auvergne)

Informations professionnelles :
Activité : Développeur de jeux vidéo
Secteur : Tourisme - Loisirs

Informations forums :
Inscription : octobre 2010
Messages : 366
Points : 1 932
Points : 1 932
A noter qu'avec gdb + C::b (dernière version), on dispose d'une fenêtre permettant de débugger en ayant le code asm et C++ mixé (Debug->Debugging-Windows->Disassembly, on peut cocher la case mixed), bien appréciable quand on tombe sur certains bugs notamment relatifs au traitement des exceptions.
__________________
Choisis un travail que tu aimes et tu n'auras pas à travailler un seul jour de ta vie.
germinolegrand est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2013, 14h22   #5
gbdivers
Responsable C++

 
Homme Guillaume Belz
Biochimiste
Inscription : novembre 2008
Messages : 5 312
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Belz
Âge : 37
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Biochimiste
Secteur : Santé

Informations forums :
Inscription : novembre 2008
Messages : 5 312
Points : 19 513
Points : 19 513
Dans Qt Creator (on va faire le tour des IDE ), il faut mettre un breakpoint dans le code, lancer en mode débug, puis dans la fenêtre de débogage, bouton droit sur le nom d'une fonction et "Open Dissasembler at..." (je sais pas s'il y a plus simple)
__________________
Vous souhaitez rejoindre l'équipe de bénévoles qui fait vivre Developpez (traduction, rédaction, modération) ? Contactez moi par MP.

Ma page personnelle avec la liste de mes articles - Mon blog sur le C++, Qt et les GPU.

Je suis régulièrement sur le chat pour les questions C++/Qt.

Apprendre Qt 5 : vidéos d'installation (YouTube), extraites du livre Créer des applications avec Qt 5.
gbdivers est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 11/03/2013, 15h05   #6
Arzar
Membre Expert
 
Inscription : mai 2008
Messages : 937
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 937
Points : 1 783
Points : 1 783
Je concours, cette série d'article est vraiment excellente !

Sinon pour revenir à Visual Studio, la méthode employée par l'auteur pour lire l'assembleur optimisé m'a l'air un peu compliqué. Pour ma part, je mets le code qui m'intéresse dans une fonction (jusque là c'est identique), en revanche je rajoute l'attribut _declspec(noinline) pour empêcher la fonction d'être inliné, le but étant de s'assurer qu'un breakpoint mis dans la fonction ne va pas disparaître pour cause d'inlining.

L'avantage c'est qu'une fois qu'on tient un breakpoint stable on peut voir l'assembleur très simplement, comme dans les articles précédents de la série (atteindre le break point en lançant le prog dans vs, puis utiliser la fenêtre de désassemblage)
Arzar est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Actualité déjà publiée
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 09h36.


 
 
 
 
Partenaires

Hébergement Web