Tecnología

Inicio

Cómo arreglar Visual C Fallo de aserción

Cómo arreglar Visual C Fallo de aserción


Las afirmaciones son una disposición hecha por los compiladores ANSI C / C ++ para comprobar la integridad de una declaración de programación en tiempo de ejecución. Una afirmación es una macro o función que toma una sentencia condicional como parámetro. Si la condición de falla, el programa se interrumpe con un cuadro de diálogo que indica error de aserción. Un buen ejemplo es el uso descuidado de los punteros. Los punteros son direcciones de memoria en donde se encuentran los datos o un punto de entrada de la función. Si la variable de puntero no está apuntando al espacio utilizable y libre de la memoria, o apunta a espacio en una zona prohibida, a continuación, acceder a ese puntero en tiempo de ejecución puede causar un fallo del sistema.

Instrucciones

1 Lanzamiento de Visual Studio. Seleccione el proyecto de su aplicación. Haga clic en el extremo derecho del menú desplegable en el espacio de trabajo del proyecto. Muestra dos entradas: "Win32 Debug" y "versión de Win32." Elija "depuración Win32."

2 Haga clic en "Build" en el menú del espacio de trabajo del proyecto o seleccione "Build <nombre del proyecto de aplicación>" para reconstruir la aplicación en modo de depuración.

3 Ejecutar la nueva construcción dentro de Visual Studio.

4 Tenga en cuenta la información facilitada por ejemplo, el nombre de archivo de origen, número de línea, el nombre del módulo o biblioteca cuando recibe el mensaje "Error de aserción". Pulse "Reintentar" para depurar el código fuente.

5 Pulse la tecla "Alt + 7" ( "Alt" y luego "7" mientras se pulsa la tecla Alt) para que aparezca la ventana de depuración. Busque en la pila de llamadas de arriba a abajo, e ir a la primera función a partir del código fuente de la aplicación, saltándose las llamadas al sistema que son una parte del código generado por el compilador.

6 Lea su línea de función de aplicación por línea. Tenga en cuenta y realizar un seguimiento de cada parámetro de la función, variable local, global y estático utilizado. Busque variables de puntero ser utilizados sin una sentencia condicional que comprueba si el puntero es NULL. Busque punteros no inicializados y los índices de matriz ido fuera de límites.

7 Corregir los errores de programación que se encuentran en y / o alrededor de esta pieza de código, posiblemente en la función madre o previamente llamada función.

8 Siga la pila de llamadas de depuración para ver qué línea en la aplicación causó la violación si el error aún no se diagnostica. Paso a través de las llamadas anidadas para detectar el error. Estos podrían ser una combinación de biblioteca y llamadas al sistema de MFC, Windows.

9 Utilice la utilidad "Pageheap.exe" a los errores de referencia complejo de depuración de Windows memoria del montón que no pueden ser capturadas por el diagnóstico de código de la aplicación. Utilizar la información proporcionada por el mensaje de afirmación para su posterior seguimiento.