Rupture automatique lorsque le contenu d'un emplacement mémoire de changement ou de lire
L'ancien DÉC Tru64 UNIX débogueur avait une fonction (appelée "les points d'observation pour surveiller les variables") qui montre un emplacement de mémoire (ou la plage d'adresses) pour lire ou écrire activité et lorsqu'il a détecté une telle activité serait briser le programme de sorte que vous pourriez chercher le pourquoi. Voir pour plus de détails:
http://h30097.www3.hp.com/docs/base_doc/DOCUMENTATION/V50_HTML/ARH9QATE/DOCU_009.HTM
Est-il possible de faire ce genre de chose dans le VisualStudio débogueur? Ou est-il un add-on ou un autre outil qui peut le faire sous Windows?
OriginalL'auteur | 2009-08-11
Vous devez vous connecter pour publier un commentaire.
Oui, vous pouvez le faire dans visual studio. Vous pouvez créer un "Nouvelles Données de point d'arrêt" sous le menu débogage pendant que vous êtes rompu à l'exécution d'un programme. Vous devez ensuite spécifier l'adresse de regarder et le nombre d'octets.
Cela ne fonctionne que pour la modification de la valeur. Je ne sais pas comment regarder pour un accès en lecture. Cependant, il est une question très fréquente veux savoir si une valeur a été modifiée. Je trouve que je ne veux pas savoir qui lit une valeur comme souvent.
OriginalL'auteur Matt Price
Visual Studio permet de définir d'arrêt sur l'emplacement de mémoire seulement une longueur de 4 octets (32 bits version de Windows). Pour attraper l'accès à la mémoire (lecture ou écriture), vous pouvez utiliser la classe suivante:
Il change de mode d'accès sur une sélection de pages de mémoire. Taille de la Page est égale à 4 096 octets sur les systèmes 32 bits. Exception sera levée sur chaque accès à la mémoire protégée. Cette classe est limitée à l'utilisation à des grandes zones de mémoire, mais j'espère que cela peut être utile.
Il pourrait être utilisé de la manière suivante:
OriginalL'auteur Kirill V. Lyadvinsky
Vous pouvez utiliser WINDBG et de définir un ba de point d'arrêt sur l'adresse de votre choix
OriginalL'auteur steve
Oui, les points d'arrêt peuvent détecter écrit. Ne sais pas si il est possible de vérifier pour la lire, bien que. Je ne crois pas x86 a un support natif pour que.
OriginalL'auteur MSalters
Je recommande le hwbreak projet. Il permet même à un point d'arrêt est défini lorsqu'un emplacement est lu.
Je l'ai modifié de n'en créer qu'un seul thread, et à réutiliser ce thread pour toutes les données des points d'arrêt, mais c'était juste pour l'efficacité.
OriginalL'auteur ulatekh