2010-06-20 3 views
0

Je viens de découvrir comment percer dans la fonction SetTimer dans une DLL dll (user32.dll). link textVS2010 pile de données de thread

Cependant, j'ai besoin de savoir quels arguments sont appelés avec. Je pense que les arguments sont poussés sur la pile de données juste avant d'appeler la fonction, mais je n'ai trouvé aucun moyen d'afficher une pile de données threads dans Visual Studio 2010.

+0

Je vous suggère de télécharger les symboles ici: http://www.microsoft.com/whdc/DevTools/Debugging/symbolpkg.mspx –

Répondre

3

Ouvrez une fenêtre de débogage de la mémoire et chargez l'adresse à ESP (que vous pouvez obtenir à partir de la fenêtre Registres). L'ESP pointe vers le haut de la pile. Si vous faites défiler la fenêtre un peu, vous verrez ce qui a été récemment poussé sur la pile. Assurez-vous de définir la fenêtre de mémoire pour afficher une colonne de 4 octets entiers (sauf si vous êtes une application 64 bits, puis utilisez 8 octets).

0

Si vous ouvrez la fenêtre de pile d'appel (Debug -> Windows -> Call Stack) vous devriez être capable de double-cliquer sur les fonctions de la pile d'appel, voir les paramètres, les variables locales et ainsi de suite.

+1

Cela ne vaut que pour les fonctions pour lesquelles vous avez des symboles. Il débogage SetTimer, qui est une fonction win32, donc il n'a que des symboles publics. Pour obtenir les paramètres, vous devez avoir des symboles de débogage complets. –

+0

Vous pouvez trouver des symboles ici (je suppose): http://www.microsoft.com/whdc/DevTools/Debugging/symbolpkg.mspx –

+0

@jeffamaphone: S'il veut seulement voir les paramètres passés * dans * 'SetTimer', alors vous pouvez juste regarder la pile des appels pour voir ce qui s'appelle 'SetTimer': en supposant que vous ayez le code source/les symboles pour cela (ce que je suppose qu'il fait), alors cela ne devrait pas poser de problème. –

Questions connexes