Fonctionnement de gdb
Résolu
grangev-TIMA
Messages postés
10
Date d'inscription
Statut
Membre
Dernière intervention
-
jack -
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
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
A voir également:
- Fonctionnement de gdb
- Fonctionnement processeur - Guide
- Fonctionnement du protocole http - Guide
- Notice de fonctionnement - Guide
- Fonctionnement onedrive - Guide
- Fonctionnement time machine - Guide
8 réponses
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
++
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
++
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...
++
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...
++
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
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
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
je suis intéressé par le même sujet que vous.
est il possible de nous fournir un autre lien pour ce document ?
Merci