10
votes

Visual Studio Watch Fenêtre Greré?

J'ai une application VB que j'ai besoin de surveiller lorsqu'elle est en cours d'exécution. J'ai ajouté des variables à la fenêtre de la montre, mais lorsque l'application est exécutée, la fenêtre de montre est grisée. La seule façon dont j'ai trouvé les valeurs variables consiste à utiliser debug -> pause tout, mais cela arrête le programme.

J'ai utilisé d'autres idées et ils permettent de surveiller les variables actives. Est-ce possible dans vs?

désolé s'il s'agit d'une question noob.

Mise à jour: Pour être claire, mon application communique avec un équipement de laboratoire et que les données sont envoyées ou reçues ou que les erreurs sont détectées des comptoirs sont incrémentés. Je voudrais regarder ces comptoirs mais je ne veux pas construire un écran pour le faire car ils sont en train de déboguer. Je viens de supposer que c'est une fonctionnalité de base dans n'importe quel IDE

choqué: il semble que Visual Studio n'offre pas cela (ce que je considérerais) fonctionnalité de base. Pour ceux qui semblent penser que cela n'est pas possible avec une langue interprétée, considérez cette expérience de pensée. Si vous avez appuyé sur une pause, tout suivit rapidement d'une suite, vous rafraîchissez la fenêtre de la montre - corrigez-vous? Pourquoi alors ne peut pas que Visual Studio, faire cela comme une seule commande de surveillance d'actualisation ou mieux pour améliorer encore cette fonction d'exécuter automatiquement à une période spécifiée par l'utilisateur. Aucun débogage n'écrit, pas de fichiers journaux, sans arrêter votre programme Mid-Stream et créer des délais d'attente. Je suis juste choqué que vous ne pouvez pas faire cela. C'est un peu comme ne pas avoir des points d'arrêt.


1 commentaires

@Shocked in Théory Un débogueur pourrait également le faire en définissant un point d'arrêt de la gamme de données de données de la CPU sur la mémoire et de faire une pause, mettez-la mettre à jour la montre, puis continuez automatiquement chaque fois que la variable est mise à jour.


5 Réponses :


5
votes

Après avoir terminé "Casser" pour contrôler le programme au débogueur, vous pouvez "étatir" via le code à l'aide des touches de fonction telles que F10 et F11. Au cours de chaque "étape", le programme évalue une ou plusieurs déclarations; Après chaque étape, il s'arrête (jusqu'à la prochaine étape), et tandis que (seulement tandis que), il est arrêté, vous pouvez «regarder» son état actuel.

Il existe également d'autres moyens pour briser le débogueur (pour utiliser la fenêtre de surveillance pendant que le programme est arrêté): d'autres façons de définir des «points d'arrêt» et utilisez la fonctionnalité 'Exécuter sur le curseur'.


Bien sûr, mais arrêt d'un programme qui reçoit ou envoyé des données à un autre processus, pilote, etc., arrête cette communication et provoque des délais d'expiration et d'autres problèmes.

C'est vrai. Pour regarder les valeurs Changer en temps réel, j'utilise un fichier journal:

  • Ajouter des instructions à mon code, telles que lorsque je modifie la valeur d'une variable, j'émette une nouvelle ligne vers un fichier journal (affichant la valeur modifiée)

  • exécutez le programme

  • regarder de nouvelles lignes étant ajoutées au fichier journal à l'aide d'un utilitaire comme queue -f .

    Je n'ai jamais vu de débogueur avec les fonctionnalités que vous mentionnez. La chose la plus proche de la fonctionnalité que vous avez mentionnée (et qui n'est pas exactement la fonctionnalité que vous avez mentionnée) est Comment: Définir un point d'arrêt de données (natif uniquement) .


3 commentaires

Bien sûr, mais arrêter un programme qui reçoit ou envoyé des données à un autre processus, le pilote, etc., arrête cette communication et provoque des délais d'attente et d'autres problèmes.


Il y a beaucoup de problèmes avec un fichier journal. Disons que vous recevez des milliers de paquets de données par seconde, si au lieu d'incrémenter simplement un compteur, vous écrivez une ligne sur un fichier journal, le système tombera. Même l'écriture sur une console est une opération très lourde par rapport à l'incrémentation d'un compteur.


Dans un autre commentaire, vous avez dit "Codewarrior et Chameleon vous permettent de ... spécifier un intervalle de rafraîchissement en SEC ou MSEC"; Vous pouvez créer la même logique dans votre journalisation, par ex. Écrivez dans le fichier journal une fois toutes les quelques secondes. Quoi qu'il en soit, je pense que vous avez votre réponse maintenant.



0
votes

Assurez-vous que vous êtes dans "Débogage" Construire et Microsoft Debugger est en cours d'exécution sous forme de service et non bloqué / désactivé.


1 commentaires

J'appuie sur F5 et l'application fonctionne. Je suppose que c'est la construction de débogage depuis si je brise l'application, les variables ont toutes des valeurs. Les houes font-elles un débogage en tant que service? Cela me permettrait-il de voir les variables comme le programme change?



7
votes

Quel environnement IDE ou développement montre - en temps réel - les valeurs des variables dans la fenêtre de surveillance, sans avoir à toucher des points d'arrêt, tandis que l'application est en cours d'exécution?

Visual Studio ne fournit pas cela. Afin de recevoir des valeurs mises à jour dans la fenêtre de surveillance ou de modifier des éléments, l'application doit être à un point d'arrêt ou de débogage.


2 commentaires

CodeWarrior et Chameleon vous permettent de rafraîchir manuellement le contenu des variables ou de définir un rafraîchissement automatique, en spécifiant un intervalle de rafraîchissement dans la SEC ou MSEC. Je viens de supposer que c'est la fonctionnalité de base dans tout débogueur.


Ah, ça fait certainement un certain temps depuis que j'ai utilisé de la marque. Je n'étais pas au courant de cela, c'est pourquoi j'ai demandé quels IDes vous permettent de faire cela. Je suis impressionné et que je souhaite que Visual Studio ait eu une caractéristique similaire. Merci pour l'information.



2
votes

Ce que vous essayez de faire n'est pas possible dans Visual Studio. Toutes les fenêtres d'inspection variables (regarder, locaux, autos, etc.) s'appuient sur le processus de débuge étant dans un état de pause afin de fonctionner.

Ceci est vrai de l'essentiel de tout débogueur avec lequel j'ai travaillé dans le passé. Au moins ceux qui utilisent une langue compilée.

Je suis curieux de savoir ce que vous parlez de l'IDE? Ont-ils géré les langues interprétées?


0 commentaires