Share via


Lorsque j'appelle une fonction des centaines de fois, comment puis-je savoir quel appel a échoué ?

Mise à jour : novembre 2007

Cette rubrique s'applique à :

Édition

Visual Basic

C#

C++

Web Developer

Express

La rubrique ne s'applique pas La rubrique ne s'applique pas

Natif uniquement

La rubrique ne s'applique pas

Standard

La rubrique ne s'applique pas La rubrique ne s'applique pas

Natif uniquement

La rubrique ne s'applique pas

Pro et Team

La rubrique ne s'applique pas La rubrique ne s'applique pas

Natif uniquement

La rubrique ne s'applique pas

Légende du tableau :

La rubrique s'applique

Applicable

La rubrique ne s'applique pas

Non applicable

La rubrique s'applique mais la commande est masquée par défaut

Commande ou commandes masquées par défaut.

Description du problème

Mon programme échoue lors de l'appel à une certaine fonction, CnvtV. Mais cet échec survient probablement après plusieurs centaines d'appels à la fonction par le programme. Si je définis un point d'arrêt d'emplacement sur CnvtV, le programme s'arrête à chaque appel de cette fonction, ce que je souhaite éviter. J'ignore quelles conditions ont provoqué l'échec de l'appel et je ne peux donc pas définir un point d'arrêt conditionnel. Que puis-je faire ?

Solution

Vous pouvez définir un point d'arrêt sur la fonction en affectant au champ Nombre d'accès une valeur très élevée que vous ne risquez pas d'atteindre. Dans le cas présent, vous estimez que la fonction CnvtV est appelée plusieurs centaines de fois ; vous affectez par conséquent à Nombre d'accès la valeur 1000 ou une valeur supérieure. Exécutez ensuite le programme et patientez jusqu'à l'échec de l'appel. Ouvrez alors la Fenêtre des points d'arrêt et examinez la liste des points d'arrêt. Le point d'arrêt que vous avez défini sur CnvtV apparaît, suivi du nombre d'accès et du nombre d'itérations restantes :

CnvtV(int) (no condition) when hit count is equal to 1000 (currently 101)

Vous savez à présent que la fonction a échoué au 101e appel. Si vous réinitialisez le point d'arrêt avec un nombre d'accès égal à 101, puis que vous réexécutez le programme, ce dernier s'arrête au niveau de l'appel à CnvtV qui a provoqué son échec.

Voir aussi

Concepts

Forum Aux Questions sur le débogage du code natif

Points d'arrêt et points de trace

Autres ressources

Débogage du code natif