Y a-t-il un moyen de désactiver les affirmations au lieu de passer en mode de libération. J'ai besoin de déboguer un code qui fait des affirmations très souvent et que cela ralentit mon travail. Ces affirmations ne sont pas liées à la question que j'essaie de résoudre, donc pour le moment, ils ne ralentissent que mes progrès, car ils sont appelés très souvent dans l'une de mes classes de base. Maintenant, je n'ai pas le temps d'améliorer leur conception, alors quelqu'un peut-il me dire s'il existe un moyen de désactiver les affirmations tout en étant en mode de débogage et en utilisant ses capacités. p>
5 Réponses :
Vous pouvez donc ajouter cela à la définition de pré-processeur dans les paramètres du projet. P> #define ndebug code> avant
#include
affirmation code> macro. p>
Informations utiles, Toutefois, MFC affirmer code> n'est pas la même chose que la bibliothèque standard
affirmer code> et est contrôlée différemment.
Vous pouvez utiliser Notez également que les défaillances affirmées sont généralement pour une raison et que vous souhaitez corriger le code, non seulement supprimer le rapport. En les éliminant de Débogu construit complètement, vous rompez simplement de bonnes choses construites pour vous. P> p> _set_error_mode code>
ou _crtsetrepormode code>
(voir la réponse de XMRI) pour modifier Méthode de déclaration de défaillance et évitez la boîte de dialogue modale. Voir le code Snippet là-bas:
Ne semble pas aider - je vois toujours des dialogues modaux comme: l'assertion de débogage a échoué! Fichier: Minkernel \ Crts \ UCRT \ SRC \ AppCrT \ Heap \ Debug_heap.cpp Line: 996 Expression: __acrt_first_block == en-tête
Utilisateur _crtstreportmode au lieu d'utiliser 0, vous pouvez utiliser _crtdbg_mode_debug uniquement. p> p>
Ne semble pas aider - je vois toujours des dialogues modaux comme: l'assertion de débogage a échoué! Fichier: Minkernel \ Crts \ UCRT \ SRC \ AppCrT \ Heap \ Debug_heap.cpp Line: 996 Expression: __acrt_first_block == en-tête
Ceci est une erreur de tas. Ils apparaissent toujours. Vous avez une erreur fatale dans votre code qui corrompt la chaleur! Vous ne devriez jamais ignorer une telle erreur!
Je n'ai pas de studio Visual 2013, mais ce qui suit fonctionne pour moi dans Visual Studio 2015, alors peut-être peut-être la même chose ou quelque chose d'œuvres similaires pour vs 2013, aussi.
dans votre fonction principale (), appelez p> dans Visual Studio, accédez aux paramètres de débogage / Windows / Exception. Dans les paramètres d'exception, accédez à Win32 Exceptions / 0xc0000420 L'affirmation a échoué. Décochez la case devant cette entrée. P> J'ai besoin des deux ci-dessus pour supprimer les fenêtres contextuelles d'affirmation en mode de débogage. P> P>
Vous pouvez ajouter un drapeau de compilateur fromm the MSVC Documents : P>
Vous pouvez désactiver la macro ASSTER sans modifier vos fichiers source à l'aide d'une option de ligne de commande A / DNDEBUG. P>
blockQuote> / dndebug code> pour désactiver les affirmations. Je sens que cela est plus propre puisque vous n'avez rien à changer dans votre code. P>