À l'heure actuelle, j'ai utilisé GDB pour démonter un fichier binaire et vérifier différents registres et autres joyeusetés. Y at-il une commande facile à examiner tout sur la pile? Cela peut-il être limité à tout dans une fonction?Comment puis-je examiner le cadre de la pile avec GDB?
Répondre
Pour le cadre de la pile actuelle:
- Info cadre liste des informations générales sur le cadre (où les choses commencent à la mémoire, etc.)
- args info listes d'arguments à la fonction
- info locales répertorie les variables locales stockées dans le cadre
bt
(oubacktrace
) vous donnera une pile d'appels.frame <args>
vous donnera des informations sur une trame spécifique de la pile.info locals
peut vous fournir des informations sur les variables locales de la pile.
Vous pouvez afficher le contenu de la pile avec x/10x $sp
Ce imprimera les 10 premiers éléments de la pile.
Quelle version de GDB est-ce? Je ne peux pas obtenir gdb pour utiliser les registres comme arguments de commande sur GDB 7.7-0ubuntu3.1 – nightpool
@nightpool fonctionne pour moi sur 7.7.1-0ubuntu5 ~ 14.04.2 –
Cette réponse vous indique comment réellement regarder les octets sur la pile cadre, que j'ai eu du mal à trouver comment faire. Merci! –
Cela devrait vous aider: http://cs.nyu.edu/courses/spring07/V22.0474-001/misc/gdb-refcard.pdf. Vous pouvez toujours utiliser la commande "frame" pour sauter entre les images. – dicaprio