2008-11-20 3 views
5

Voici le scénario. Je débogue ma propre application (C/C++) qui utilise une bibliothèque développée par une autre équipe de l'entreprise. Une assertion échoue lorsque mon code génère un cas de bordure. C'est une douleur parce que l'assertion n'est pas formulée correctement, donc la fonction de la bibliothèque fonctionne bien mais je reçois toutes ces interruptions où je dois juste continuer (beaucoup en tant que boucle) pour que je puisse accéder aux choses qui m'intéressent réellement Je dois utiliser la version de débogage de la bibliothèque lors du débogage pour d'autres raisons. L'autre équipe ne corrigera pas cela jusqu'à la prochaine version (hé, cela fonctionne sur notre machine). Puis-je dire au débogueur d'ignorer les points d'arrêt affirmés par cette section de code (c'est-à-dire qu'il peut continuer automatiquement pour moi).Puis-je configurer Visual Studio 2005 pour qu'il ignore les assertions dans une région de code spécifique pendant le débogage?

Répondre

3

Si le code déclenche des points d'arrêt sur son propre (par __debugbreak ou int 3), vous ne pouvez pas utiliser des points d'arrêt conditionnels, comme les points d'arrêt ne sont pas connues à Visual Studio du tout. Toutefois, vous pouvez désactiver ces points d'arrêt qui ne vous intéressent pas en modifiant le code du débogueur. Probablement pas ce que vous voulez, parce que vous devez le répéter dans chaque session de débogage, mais peut-être encore mieux que rien. Pour plus d'informations, lisez How to disable a programmatical breakpoint/assert?.

+0

Oui, ça génère un INT 3, je vais voir si je peux faire un pop à ce moment-là pour que ça arrête de m'interrompre ... –

2

Il n'y a aucun moyen d'ignorer automatiquement les échecs ASSERT() dans une bibliothèque de débogage. Si c'est celui que vous devez utiliser, vous allez juste devoir convaincre l'autre équipe que cela a besoin d'être réparé maintenant, ou si vous avez la source de cette bibliothèque, vous pouvez corriger ou supprimer vous-même les affirmations juste pour obtenir votre travail fait en attendant.

Questions connexes