Fonctionnement de gdb

Résolu
grangev-TIMA Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -  
 jack -
Bonjour,

je cherche à savoir comment gdb fonctionne, j'entends par là: comment accède-t'il aux données? Est-ce par voie matérielle (accès direct au contenu des registres par exemple), par le biais de primitives particulières (lesquelles?), ou par un autre moyen?

S'il s'avérait que ce fut à l'aide des primitives, sont-elles en asm ou dans un autre language?

L'idée qu'il y a derrière est de pouvoir connecter une plateforme de simulation de processeurs à gdb en utilisant gdbserver, et pour l'instant, c'est pas de la tarte. Si quelqu'un pouvait me renseigner sur la manière de collecter les infos nécessaires au débbugage, ça serait génial!

Merci d'avance,

Vic

8 réponses

help
 
compile avec l option -g3 ou -ggdb oui oui 2g
et apres tu fais : gdb ./binary_file

fais bt (back trace) pour voir ce qu il s est passe

j espere avoir pu t aider
++
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
LO
DDD permet d'exécuter gdb en mode graphique.
http://www.gnu.org/software/ddd/
0
grangev-TIMA Messages postés 10 Date d'inscription   Statut Membre Dernière intervention  
 
Salut,

je pense que ma question a été mal comprise: je cherche à savoir non pas ce que gdb produit, mais comment gdb est conçu. C'est à dire, le code de gdb comporte-t'il des primitives en assembleur qui vont vérifier l'état des piles, registres et autres; ou bien gdb "calcule"-t'il les @, valeurs de registres, ...

Les sources sont suffisamment denses pour que ça soit confu, donc si quelqu'un a une idée...

++
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
Voila de la lecture technique
GDB Internals Manual (gziped PDF) Technical details of the internals of GDB.
http://sourceware.org/gdb/current/onlinedocs/gdbint_toc.html

9.6 Raw and Virtual Register Representations

Table of Contents

      1. Requirements
      2. Overall Structure
            2.1 The Symbol Side
            2.2 The Target Side
            2.3 Configurations
            2.4 Source Tree Structure
      3. Algorithms
            3.1 Frames
            3.2 Prologue Analysis
            3.3 Breakpoint Handling
            3.4 Single Stepping
            3.5 Signal Handling
            3.6 Thread Handling
            3.7 Inferior Function Calls
            3.8 Longjmp Support
            3.9 Watchpoints
                  3.9.1 x86 Watchpoints
            3.10 Checkpoints
            3.11 Observing changes in GDB internals
etc
 
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
grangev-TIMA Messages postés 10 Date d'inscription   Statut Membre Dernière intervention  
 
Hello dubcek,

Merci pour l'adresse, c'est effectivement là que se trouvaient mes réponses, comme pour toutes les questions qu'on se pose sur gdb. J'espérais juste que quelqu'un le savait histoire de pas avoir à fouiller...

Pour info, il existe en effet des primitives qui vont chercher ce qu'il faut là où il faut, mais il semblerait qu'une fois qu'on a pris ce qu'on voulait, gdb n'accède plus aux données que par voie soft, mis à part pour les watchpoints matériels (en gros, il calcule le reste "à la main" pour prévoir l'état de la machine après une instruction). Par contre, je ne sais pas si les primitives sont en assembleur ou non, et finalement, je vais faire sans le savoir =).

Voili voilà, si ça peut servir à quelqu'un j'en serais ravi, mais aussi le premier surpris.

A bientôt pour de nouvelles questions toujours plus palpitantes!

Vic
0
jack
 
bonjour,
je suis intéressé par le même sujet que vous.
est il possible de nous fournir un autre lien pour ce document ?

Merci
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hello
Google est ton ami
Se mettre à GDB en 5 minutes
0
jack
 
oui j'ai vu qu'il ya plein de tuto sur gdb mais ce que je cherche est comment il fonctionne exactement comment il se comporte avec le processeur d'un ordinateur classique
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
0
jack
 
Merci, c'est bon !
0