2010-05-05 1 views
52

À 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?

+2

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

Répondre

55

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
38
  • bt (ou backtrace) 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.

74

Vous pouvez afficher le contenu de la pile avec x/10x $sp

Ce imprimera les 10 premiers éléments de la pile.

+0

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

+1

@nightpool fonctionne pour moi sur 7.7.1-0ubuntu5 ~ 14.04.2 –

+0

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! –

Questions connexes