Quelle est la différence entre visual studio F5, ctrl+F5 ou de l'exécution en dehors de visual studio?
J'ai écrit un programme en c++ qui a un comportement différent dans les différents cas ci-dessous.
Quand je le lance par F5 il fonctionne correctement en mode release.
Quand je le lance en faisant ctrl + F5 il se bloque quand je commence à envoyer des données pour le programme.
En dehors de visual studio, il se bloque immédiatement.
Je ne sais pas comment trouver le bug. Aucune idée sur
quelle est la différence entre ces deux cas?
La raison habituelle est une uninitialzed variable qui est différente des valeurs aléatoires en fonction de la façon dont le programme est démarré.
cela dépend de envirment var? comment je peux suivre le bug.
Cela peut dépendre de l'environnement. Ou qu'il commence dans des répertoires différents (si vous utilisez des fichiers). Sinon, vous pourriez avoir quelque chose comme
cela dépend de envirment var? comment je peux suivre le bug.
Cela peut dépendre de l'environnement. Ou qu'il commence dans des répertoires différents (si vous utilisez des fichiers). Sinon, vous pourriez avoir quelque chose comme
int i;
, où i
est utilisé avant d'être affecté à une valeur.
OriginalL'auteur herzl shemuelian | 2012-06-26
Vous devez vous connecter pour publier un commentaire.
L'exécution de ctrl + F5 va lancer l'application sans débogueur.
(http://msdn.microsoft.com/en-US/library/8b59xk0f(v=vs. 90).aspx)
Ce n'est pas la même que l'exécution en mode release.
Vous pouvez exécuter votre application en mode debug, mais sans débogueur.
Il semble stupide, mais est par exemple utile si vous souhaitez arrêter la console de clôture sur la sortie. (Comment arrêter la console de clôture sur la sortie?)
OriginalL'auteur Markus
Vous avez besoin de comprendre la différence entre l'exécution d'une application en mode debug et release mode. F5 sera généralement vous aider à déboguer l'application et ctrl + F5 exécute l'application. Il pourrait y avoir quelques problèmes dans le mode de libération qui rend votre vs de crash. Lire cette afin d'obtenir une compréhension.
vous essayez de déboguer en mode release
car cela se réalise uniquement en mode release(ctrl+F5 et pas en F5) je dois le faire.
Cela peut être à cause de débordement de la mémoire tampon ou les variables non initialisées
OriginalL'auteur Jeeva