Volver a la portada de Duiops
Volver al Web de Duiops
 
   
Menú
Secciones destacadas
Artículos y FAQs
Trucos de Windows
Versiones de Windows
y suites de software
Windows Vista
Windows Media Center
Windows XP
Windows 2000
Windows Millenium
Windows 98/98 SE
Windows 95 OSR-2
Internet Explorer
Office
Otros
Tutorial muy básico
   
Portada
Portada - Artículos y FAQs - Fallo sobre página inválida
 
Fallo sobre página inválida

 

PorMr. Scary - Traducción de Julian Peris, extraído de microsoft.public.es.windows98

¿ Tu ordenador deja de responder (se cuelga) o sufre de Fallos de Página Inválida ?

Como actuar ante un cuelgue o FPI.

¿Que es un error de excepción?

Un error de excepción significa que algo inesperado ha sucedido en el entorno de Windows, típicamente un acceso a memoria incorrecto. Por ejemplo, un programa o un componente de Windows puede leer o escribir en una zona de memoria que no le ha sido asignada (memoria que no le pertenece), potencialmente sobreescribiendo y corrompiendo otro código de programa que estaba ubicado en esa zona de memoria. Los errores de excepción fatal suelen ser de la siguiente forma :

Un error de excepción fatal XY ha occurrido en xxxx:xxxxxxxx

Un programa devuelve un error de excepción fatal cuando sucede algo de lo siguiente :

1.) El programa intenta procesar una instrucción ilegal.
2.) El programa intenta acceder a datos o código inválido.
3.) El nivel de privilegio de una operación es inválido.

Cuando cualquiera de estas cosas sucede, la Unidad Central de Proceso (UCP) devuelve una excepción al sistema operativo, que lo maneja como un error de excepción fatal. En muchos casos, la excepción es irrecuperable y el sistema se debe de reiniciar o apagar, según lo severo que sea el error.

En este ejemplo de error de excepción fatal,

Un error de excepción fatal XY ha occurrido en xxxx:xxxxxxxx

XY representa el código del error, entre 00 y 0F. xxxx:xxxxxxxx representa el puntero avanzado de instrucción (no se si se llamará así) al segmento del código y la dirección de 8 bits representa la dirección de memoria donde ha sucedido la excepción.

 

FPIs Comunes

Cuando se trabaja con una aplicación Windows, el error más común que se obtiene cuando un programa se cuelga (deja de responder) es un "Fallo de página inválida" (FPI). El error se paracerá al siguiente :

Este programa ha realizado una operación ilegal y se cerrará. Si el problema persiste, contacte con el desarrollador del programa.

Si se pulsa en Detalles, se obtendrá el siguiente mensaje :

"Un programa" ha causado un fallo de página inválida en el módulo nombre_del_módulo en la dirección

Una vez pulses Aceptar, el programa se cierra.

Para ver en más profundidad los errores de excepción, por favor mire los siguientes artículos de la Base de Datos del Conocimiento de Microsoft:

ARTICLE-ID: Q150314
TITLE: What Are Windows 95 Fatal Exception Errors

 

Obteniendo pistas del mensaje de error.

Si se pueden obtener pistas sobre el componente que está produciendo el FPI, quizás se pueda cercar mejor la causa específica del problema. La primera pista de la causa del FPI es el propio mensaje del FPI. El mensaje de error será parecido al siguiente :

Este programa ha realizado una operación ilegal y se cerrará. Si el problema persiste, contacte con el desarrollador del programa.

Si se pulsa en Detalles, se obtendrá el siguiente mensaje :

"Un programa" ha causado un fallo de página inválida en el módulo nombre_del_módulo en la dirección

Una vez pulses Aceptar, el programa se cierra.

Anote el nombre del módulo que se lista. Si el nombre del módulo es Winword.exe, entonces debe de seguir buscando la causa. Sin embargo, a veces, el nombre del módulo del programa es un fichero de un driver de impresora, un fichero del driver de video o cualquier otro componente que no es de Word. Si el nombre del componente es algo que te es familiar, como un driver de impresora o un driver de video, puedes buscar tu solución en esos areas.

Si el nombre del módulo no nos es familiar o no estamos seguros de que componente forma parte, se puede buscar más información en la Base de Datos del Conocimiento de Microsoft.

A veces, desinstalando y reinstalando el fichero mencionado en el FPI basta para solucionar el problema. Si esto no corrige el problema o no estás seguro de como desinstalar y reinstalar , habrá que seguir indagando.

 

¿Que son los errores de excepción fatal de Windows 95?

Esta información se aplica a :

- Microsoft Windows 95

SUMARIO

Cuando intenta arrancar Windows o una aplicación dentro de Windows, se puede encontrar errores similares al siguiente :

Un error de excepción fatal XY ha occurrido en xxxx:xxxxxxxx

Un programa devuelve un error de excepción fatal cuando sucede algo de lo siguiente:

1.) El programa intenta procesar una instrucción ilegal.
2.) El programa intenta acceder a datos o código inválido.
3.) El nivel de privilegio de una operación es inválido.

Cuando cualquiera de estas cosas sucede, la Unidad Central de Proceso (UCP) devuelve una excepción al sistema operativo, que lo maneja como un error de excepción fatal. En muchos casos, la excepción es irrecuperable y el sistema se debe de reiniciar o apagar, según lo severo que sea el error.

En este ejemplo de error de excepción fatal,

Un error de excepción fatal XY ha occurrido en xxxx:xxxxxxxx

XY representa el código del error, entre 00 y 0F. xxxx:xxxxxxxx representa el puntero avanzado de instrucción (no se si se llamará así) al segmento del código y la dirección de 8 bits representa la dirección de memoria donde ha sucedido la excepción.

Windows no causa estos errores, sino que tiene una rutina para manejar las excepciones de esa excepción del procesador, que muestra el mensaje arriba indicado.

El siguiente artículo muestra las excepciones del procesador y su significado.

Para más información de estrategias para corregir Errores de Excepción Fatal, mire los artículos de la Base de Datos del Conocimiento listados al final de este documento.

 

MAS INFORMACION

Las siguientes son las excepciones del procesador y sus definiciones :

00: Fallo de división

El procesador devuelve esta excepción cuando se produce un fallo de división. Un fallo de división ocurre cuando se intenta una división por cero o cuando el resulatado de la operación no cabe en el operando destino.

02: Interrupción NMI

La interrupción 2 está reservada para la condición Interrupción_No_enmascarable del hardware. No se capturan excepciones a través de la interrupción 2.

04: Overflow trap

El overflow trap ocurre cuando se ha ejecutado una instrucción INTO y el bit 0F vale 1.

05: Fallo de comprobación de límites

La instrucción BOUND compara el índice de un vector con su límite superior e inferior. Si el índice está fuera de rango, el procesador captura la interrupción 05. P.ej. día de la semana (1..7) con valor 0 ó 8

06: Fallo de instrucción inválida
Este error es devuelto cuando se cumple alguna de las siguientes condiciones :

  • El procesador intenta decidificar un diseño que no corresponde a una instrucción conocida.
  • El procesador intenta ejecutar una instrucción que contiene operandos inválidos
  • El procesador intenta ejecutar una instrucción en modo protegido mientras que se está ejecutando en modo virtual 8086.
  • El procesador intenta ejecutar un prefijo de bloqueo dobre una instrucción que no se puede bloquear.

07: Fallo de coprocesador no disponible.

Este error ocurre cuando el ordenador no tiene coprocesador aritmético y el bit EM del registro CR0 indica que se está utilizando emulación del Procesador de Datos Numéricos. Cada vez que se ejecuta una operación de coma flotante aparece una interrupción 07.

Este error también sucede cuando se utiliza el procesador aritmético y se ejcuta una tarea de conmutación. La interrupción 07 le indica al procesador que es necesario salvar el estado actual del coprocesador para que pueda ser utilizado por otra tarea.

08: Fallo doble

Procesar una excepción a veces genera una segunda excepción. En el caso de que esto ocurra, el procesador recibe una excepción 08 para indicar un fallo doble.

09: Coprocessor Segment Overrun

Este error ocurre cuando una instrucción de coma flotante produce un acceso a memoria que se ejecuta fuera del segmento. Si la dirección de inicio del operando de coma flotante está fuera del segmento, entonces de produce un Fallo de Protección General (interrupción 0D)

10 (0Ah): Fallo de segmento de estado de tareas inválido

Dado que el Segmento de Estado de Tareas contiene un número de descriptores, cualquier número de condiciones puede producir una excepción 0A. Típicamente, el procesador puede adquirir suficiente información del Segmento de Estado de Tareas para indicar otro fallo dirección ando al problema actual. Para más información, lease "Microsoft’s Programming the 80386/80486 Guide".

11 (0Bh): Fallo No Presente

La interrupción No Presente permite al sistema operativo implementar memoria virtual a través del mecanismo de segmentación. Cuando un segmento es marcado como "No Presente", el segmento es vaciado (intercambiado-swapping) al disco. La interrupción 0B es lanzada cuando una aplicación necesita acceder al segmento.

12 (0Ch): Error de pila

Un error de pila ocurre con código de error 0 cuando una instrucción se refiere a memoria que está fuera de los límites de la pila. Si el Sistema Operativo soporta segmentos de expansión hacia abajo (bonito palabro), incrementar el tamaño de la pila podría aliviar el problema. Cargar el segmento de la pila con descriptores inválidos también dará lugar a un fallo de protección general.

13 (0Dh): Fallos de Protección General

Cualquier condicion que no esté cubierta por las demás excepciones del procesador dará lugar a un fallo de protección general. La excepción indica que el programa ha sido corrompido en memoria y normalmente da lugar a un cierre inmediato de la aplicación.

14 (0Eh): Fallo de Página

La interrupción de Fallo de Página permite al Sistema Operativo implementar memoria virtual en un sistema de paginación bajo demanda. Se suele llamar a la interrupción 14 cuando ocurre un acceso a una entrada de directorio de página o a una entrada de página con el bit de Presente a 0 (No Presente). El Sistema Operativo pasa la página a Presente (normalmente la recupera de la memoria virtual) y reinicia la instrucción que ha dado lugar al fallo, que ya puede acceder al segmento. Un fallo de página también sucede cuando se incumple una regla de protección de páginas (cuando falla la recuperación, los datos son inválidos o el código que llamó al fallo incumplió la regla de protección del procesador). En estos casos, el sistema operativo toma las acciones apropiadas.

16 (10h): Fallo de error en el coprocesador

Esta interrupción ocurre cuando una excepción no enmascarada de punto flotante ha sido señalada una instrucción previa. Dado que el 80386 no tiene acceso a la unidad de coma flotante, comprueba el pin de ERROR para ver esta condición. También se le llama con una instrucción WAIT si el bit de Emular Coprocesador Matemático está activado en CR0.

17 (11h): Fallo de comprobación de alineación

Esta interrupción solo de utiliza en las UCPs 486. Se llama a la interrupción 17 cuando el código que se está ejecutando en el nivel de privilegio de anillo 3 intenta acceder a un operando de palabra que no está en el límite de la dirección par, un operando de palabra doble que no es divisible por 4 o un operando de palabra real larga o temporal cuya dirección no es divisible por ocho. La comprobación de la alineación esta desactivada cuando se enciende la UCP por primera vez y solo se habilita en modo protegido.

REFERENCIAS
Para información adicional, vea los siguientes artículos de la Base de Datos del Conocimiento :

ARTICLE-ID: Q138788

TITLE : Random Fatal Exception Errors While Running Windows 95

ARTICLE-ID: Q136337

TITLE : Troubleshooting Windows 95 Startup Problems

ARTICLE-ID: Q134503

TITLE : Parity Error Messages May Indicate Bad Memory

Microsoft’s 80386/80486 Programming Guide, Second Edition

The Indispensable PC Hardware Book, Second edition

Microsoft Press Computer Dictionary, Second Edition

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Random Fatal Exception Errors While Running Windows 95/98

Last reviewed: June 23, 1998

Article ID: Q138788

Esta información se aplica a :

Microsoft Windows 95

Microsoft Windows 98

SINTOMAS

Windows reporta aleatoriamente mensajes de error de "Error de excepción Fatal 0x:xxxxxxxx" aunque su versión anterior de Windows o Windows Trabajo en Grupo no lo hacía.

CAUSA

Una causa común para estos errores es tener memoria física defectuosa (RAM) en el ordenador. Las siguientes son razones por las cuales su versión previa de Windows parecía correr suavemente mientras que Windows ahora reporta aleatoriamente mensajes de "Error de excepción fatal 0x:xxxxxxxx"

Todos los sistemas operativos utilizan la memoria de modo diferente. En Windows 3.1, la memoria "mala" podía ser usada para guardar datos poco utilizados. En Windows, la memoria "mala" es utilizada para guardar indormación de programas muy utilizados. Windows 3.1 comparativamente tiene mucho menos código de 32 bits que Windows.

Es más, hay diferencias muy grandes de como se accede a la memoria según sea código o datos lo guardado en ella. Como Windows utiliza mucho más código de 32 bits, estos errores aparecen con mucha más frecuencia.

En particular, todo el código de 32 bits de Windows 3.1 residía en un único sitio : en la parte baja de la memoria física. Si los primeros 4 Mb de Windows 3.1 pueden manejar código de 32 bits, Windows 3.1 funciona sin problemas. Esto es cierto incluso si la parte más alta de la memoria no puede ejecutar código de 32 bits, porque Windows 3.1 no ejecuta código de 32 bits fuera de los primeros 4 Mb.

Windows ejecuta código de 32 bits en toda la memoria. Por tanto, cuando Windows ejecuta código de 32 bits en una sección de RAM que no puede ejecutar correctamente código de 32 bits, recibirá mensajes de error de "Error de excepción Fatal en 0x:xxxxxxxx".

Windows interactua con el hardware de modo diferenter que las versiones previas de Windows. Esto en parte es debido a Plug & Play y en parte a los nuevos drivers que toman ventaja de las capacidades adicionales de los adaptadpres de la interfaz.

Estas características descubrirán anomalías en el hardware que nunca habían aparecido en versiones previas de Windows que no eran capaces de explotar estas características.

Muchos ordenadores nuevos no tienen memoria que desarrollan control de paridad, por lo que es posible que haya tenido errores de paridad en memoria en Windows 3.1 sin notarlo, porque los errores se producían en zonas de memoria inofensivas. Por ejemplo, en un documento de Word para Windows, la palabra "que" ha sido cambiada a "qle".

RESOLUCION

Para resolver estos errores, será a menudo necesario reemplazar la memoria RAM y/o la placa base. En algunas circunstancias será posible variar los datos de la BIOS, como "Memory Wait States" (Número de estados de espera de la memoria), para poder ejecutar Windows correctamente. En otros casos, anulando la caché externa permitirá que funcione Windows. Para más información sobre como variar los valores de la BIOS consulte el manual de su placa base o al fabricante.

Debe de reiniciar en modo a prueba de fallos para ver si aún existen los errores. Si no existen, entonces es un problema de software o drivers, en cuyo caso la información indicada arriba no le será aplicable. Para información de como corregir errores en modo a prueba de fallos, lea el siguiente artículo de la Base de Datos del Conocimiento :

ARTICLE-ID: Q156126

TITLE : Troubleshooting Windows 95 Using Safe Mode

MAS INFORMACION

Los errores de excepción fatal son similares a los errores de excepción del EMM386. Por ejemplo, el error de excepción fatal 0C es generalmente equivalente a la excepción 12 generada por EMM386 o fallo de pila. Para más información sobre los errores de excepción, consulte el siguiente artículo de la Base de Datos del Conocimiento :

ARTICLE-ID: Q52195

TITLE : Exception Errors with EMM386.SYS / EMM386.EXE


Volver a Artículos y FAQs

 

     
 

Volver arriba Volver arriba

© 1997-2009 Duiops (http://www.duiops.net)
Prohibida la reproducción parcial o total de los textos o las imágenes

Para comentarios, usa las direcciones e-mail de contacto.