Determinar qué llamada genera el error cuando se llama a una función varias veces
Este tema se aplica a:
Edición |
Visual Basic |
C# |
F# |
C++ |
Web Developer |
---|---|---|---|---|---|
Express |
Sólo para código nativo |
||||
Pro, Premium y Ultimate |
Sólo para código nativo |
Descripción del problema
El programa presenta un error en una llamada a una cierta función, CnvtV. El programa probablemente llama a esa función unas doscientas veces antes del error. Si se define un punto de interrupción en CnvtV, el programa se detiene en todas las llamadas a esa función, pero no es eso lo que se pretende. No se sabe qué condiciones hacen que la llamada produzca un error, de modo que no se puede establecer un punto de interrupción condicional. ¿Qué puedo hacer?
Soluciones
Puede establecer un punto de interrupción en la función con el campo Número de llamadas establecido en un valor tan alto que no se pueda alcanzar. En este caso, como la función CnvtV se invoca unas doscientas veces, asigne a Número de llamadas un valor de 1000 o superior. A continuación, ejecute el programa y espere a que se produzca el error de la llamada. Cuando lo haga, abra la ventana Puntos de interrupción y examine la lista de puntos de interrupción. El punto de interrupción definido sobre CnvtV aparece seguido del número de llamadas y el número de iteraciones restantes:
CnvtV(int) (no condition) when hit count is equal to 1000 (currently 101)
Ahora sabe que la función produjo un error en la llamada nº 101. Si restablece el punto de interrupción con un número de llamadas de 101 y ejecuta el programa otra vez, éste se detiene en la llamada a CnvtV que causó el error.
Vea también
Conceptos
Preguntas más frecuentes sobre la depuración de código nativo
Puntos de interrupción y puntos de seguimiento