IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques, systèmes et outils C Discussion :

Comment fonctionne un débogueur ?


Sujet :

Bibliothèques, systèmes et outils C

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    juin 2008
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : juin 2008
    Messages : 56
    Points : 50
    Points
    50
    Par défaut Comment fonctionne un débogueur ?
    salut.

    Sans entrer dans les détail je me demandais un peu comment fonctionne un débogueur !

    1 - lorsqu'on met un point d'arret sur une instruction, je suppose que ce point d'arret est en fait mis sur une adresse mémoire où se trouve l'instruction compilée.
    2 - Quel est le mecanisme qui est déclenché lorsque le programme arrive sur cette instruction
    3 - comment le debugger fait-il le lien entre l'instruction assembleur et son équivalent C. Est-ce que le compilateur (ou le linker) créer un sorte de table de correspondance entre (nom de fichier + ligne) = adresse mémoire où se trouve l'instruction.

    Voilà c'est juste histoire de debroussailler un peu le terrain.

    merci.

  2. #2
    Responsable Systèmes


    Homme Profil pro
    Technicien maintenance
    Inscrit en
    août 2011
    Messages
    14 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : août 2011
    Messages : 14 160
    Points : 32 351
    Points
    32 351
    Par défaut
    1-2) Sur x86, Le debugger remplace l'instruction au point d'arrêt par int 3 (opcode 0xCC), puis la remet. int 3=breakpoint interrupt. L'int 1 (trap) peut aussi être utilisé
    3) on peut dire ça, ce sont les infos de déboguage qui doivent être intégrés lors de la compilation (option -g pour gcc).
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur la création d'un système : http://chrtophe.developpez.com/tutoriels/minisysteme/
    Mon article sur le P2V : http://chrtophe.developpez.com/tutoriels/p2v/
    Consultez nos FAQ : Windows, Linux, Virtualisation

  3. #3
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    mai 2008
    Messages
    25 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : mai 2008
    Messages : 25 711
    Points : 200 878
    Points
    200 878
    Billets dans le blog
    82
    Par défaut
    Bonjour,

    Vous pouvez mieux découvrir comment cela marche avec ces articles :
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

Discussions similaires

  1. [JSF] comment fonctionne <h:message> ?
    Par anitshka dans le forum JSF
    Réponses: 5
    Dernier message: 29/06/2005, 17h36
  2. Comment fonctionne TXmlDocumment ????
    Par almisuifre dans le forum C++Builder
    Réponses: 8
    Dernier message: 18/02/2005, 12h54
  3. comment fonctionne une interface graphique???
    Par elekis dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 27/10/2004, 23h10
  4. Comment fonctionne le ClassExplorer ?
    Par borisd dans le forum C++Builder
    Réponses: 7
    Dernier message: 30/09/2004, 17h44
  5. Comment fonctionne le CVS ?
    Par mathieu dans le forum CVS
    Réponses: 6
    Dernier message: 23/03/2004, 11h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo