Red de conocimiento informático - Conocimiento informático - Parece haber memoria 0xffffff8 a la que hace referencia la instrucción 0x7c9318e9 en el cf. No se puede leer esta memoria

Parece haber memoria 0xffffff8 a la que hace referencia la instrucción 0x7c9318e9 en el cf. No se puede leer esta memoria

Los usuarios que utilizan sistemas operativos Windows a veces encuentran el mensaje de error: "La instrucción 0X hace referencia a la memoria 0x00000000, en la que no se puede escribir", y luego se cierra la aplicación. De hecho, este error no se debe necesariamente a la inestabilidad de Windows. Este artículo analizará brevemente las causas comunes de este error.

1. La aplicación no pudo verificar la asignación de memoria.

El programa necesita una parte de memoria para guardar datos. Debe llamar a la "función función" proporcionada por el sistema operativo. aplicar Si la asignación de memoria es exitosa, la función devolverá la dirección del área de memoria recién abierta al programa de aplicación, y el programa de aplicación puede usar esta memoria a través de esta dirección. Las aplicaciones pueden utilizar esta memoria a través de esta dirección. Esto se denomina "asignación de memoria dinámica" y las direcciones de memoria también se denominan "punteros" en programación.

La memoria no siempre está disponible y, en ocasiones, la asignación de memoria puede fallar. Cuando la asignación falla, la función del sistema devuelve un valor de 0. El valor de retorno de 0 no representa un puntero recién habilitado, sino que es una notificación del sistema a la aplicación de que se ha producido un error. Como aplicación, debe verificar si el valor de retorno es 0 después de cada solicitud de memoria. Si es 0, significa que ocurrió una falla y debe tomar algunas medidas para guardarlo, mejorando así la "robustez" del programa.

Si la aplicación no busca este error, "piensa" que el valor es un puntero libre a la memoria asignada y continúa usando esa memoria durante el resto de la ejecución. El área de memoria real en la dirección 0 almacena la "tabla de descriptores de interrupción" más importante del sistema informático y las aplicaciones nunca pueden usarla. En un sistema operativo desprotegido (como DOS), escribir datos en esta dirección hará que el programa se bloquee inmediatamente, mientras que en un sistema operativo robusto (como Windows), la operación será detectada inmediatamente por el mecanismo de protección del sistema, lo que resultará en El sistema operativo cierra a la fuerza la aplicación errónea para evitar que se expanda. En este caso, se produce el error "Escribir en la memoria" anterior y muestra la dirección de memoria a la que se hace referencia como "0x00000000".

Hay muchos motivos por los que falla la asignación de memoria, incluida memoria insuficiente, discrepancia en la versión de la función del sistema, etc. Por lo tanto, este tipo de falla en la asignación es más común después de que el sistema operativo se ha utilizado durante mucho tiempo, se han instalado varias aplicaciones (incluidos programas de virus que se han "instalado" involuntariamente) y una gran cantidad de parámetros y archivos del sistema. han sido cambiados.

En segundo lugar, la aplicación hace referencia a un puntero de memoria anormal debido a su propio error.

En aplicaciones que utilizan asignación dinámica, a veces habrá una situación: el programa intenta leer o escribir en un fragmento de memoria que "debería estar disponible", pero por alguna razón el puntero que se esperaba que estuviera disponible ya no está disponible. Esto podría ser que el programa "se olvide" de pedirle al sistema operativo que asigne memoria, o podría ser que el programa mismo cancele el registro de la memoria en algún momento sin "notarse", etc. La memoria es recuperada por el sistema. Una vez que el sistema recupera la memoria no registrada, sus derechos de acceso ya no pertenecen a la aplicación. Por lo tanto, las operaciones de lectura y escritura también activarán el mecanismo de protección del sistema. El único destino de un programa que intenta "violar la ley" es. será terminada por la operación y todos sus recursos serán reclamados. ¡Las leyes del mundo de la informática son aún más efectivas y estrictas que las leyes humanas!

Situaciones como ésta son errores en el propio programa y normalmente puedes reproducir el error en una secuencia específica de operaciones. Los punteros no válidos no siempre son 0, por lo que la dirección de memoria en el mensaje de error no es necesariamente "0x00000000", sino algún otro número aleatorio.

Si el mensaje de error anterior aparece con frecuencia en el sistema, las siguientes sugerencias pueden ser útiles:

1 Busque troyanos o virus en el sistema. Estos programas a menudo modifican irresponsablemente el sistema para lograr el propósito de controlarlo, provocando anomalías en el sistema operativo. Siempre debe fortalecer su conciencia sobre la seguridad de la información y nunca sentir curiosidad por los programas ejecutables de origen desconocido.

2. Actualice el sistema operativo para que el programa de instalación del sistema operativo vuelva a copiar la versión correcta de los archivos del sistema y corrija los parámetros del sistema. A veces puede haber errores en el propio sistema operativo, así que asegúrese de instalar las actualizaciones publicadas oficialmente.

3. Pruebe una nueva versión de la aplicación.

Tres soluciones

1. Consejo sobre problemas:

Al ejecutar algunos programas, a veces se mostrará un error de memoria y luego el programa se cerrará.

La instrucción "0x " se refiere a la memoria "0x". Esta memoria no se puede "leer".

La instrucción "0x" se refiere a la memoria "0x", en la que no se puede "escribir".

Este fenómeno generalmente tiene dos aspectos. Uno es el aspecto del hardware, es decir, hay un problema con la memoria; el otro es el aspecto del software, que tiene muchos aspectos.

2. Análisis de fallas:

a. Hardware:

En términos generales, los problemas de memoria son poco probables. Los aspectos principales son: Módulo de memoria defectuoso. Sí, los hay. un problema con la calidad de la memoria, y si se mezclan dos marcas diferentes de memoria con diferentes capacidades, es más fácil que sean incompatibles. También debes prestar atención a los problemas de disipación de calor, especialmente después del overclocking. Puede utilizar el programa MemTest para probar minuciosamente la estabilidad de la memoria.

Si tienes memoria dual y mezclaste módulos de memoria de diferentes marcas o compraste memoria de segunda mano cuando ocurrió este problema, debes verificar si hay algún problema con la memoria o si es incompatible con otras. hardware.

b. Software:

En primer lugar, expliquemos brevemente el principio: hay un lugar para almacenar datos en la memoria llamado búfer cuando el programa coloca los datos en un. En cierta ubicación, debido a espacio insuficiente, se produce un desbordamiento. Por ejemplo: un balde sólo puede contener un kilogramo de agua. Cuando se introducen dos kilogramos de agua, se desbordará. Y el sistema lo mostrará en pantalla. Este tipo de problema ocurre a menudo en los sistemas Windows 2000 y XP. Windows 2000/XP tiene requisitos de hardware muy estrictos. Una vez que se produce un bloqueo de recursos, un desbordamiento u operaciones ilegales similares a las de Windows 98, es difícil que el sistema permanezca estable. , y se producirán los problemas mencionados anteriormente. También puede deberse a una mala compatibilidad entre dispositivos de hardware.

c. Ejemplo:

Ejemplo 1: Después de abrir el navegador IE o dentro de unos minutos, la instrucción "0x70dcf39f" aparecerá en la memoria "0x00000000". Esta memoria no se puede "leer". Para finalizar el programa, haga clic en el cuadro de mensaje "Aceptar". Después de hacer clic en "Aceptar", aparecerá el cuadro de mensaje "Se ha producido un error interno y la ventana que está utilizando está a punto de cerrarse". Una vez que se cierra el mensaje, Internet Explorer también se cierra.

Solución: Reparar o actualizar Internet Explorer y aplicar un parche. Un método de reparación que he visto es actualizar WinXP por sí solo, es decir, actualizar WinXP a WinXP. De hecho, este método también restaura el sistema a su estado inicial. Por ejemplo, si su IE se actualiza a 7.0, será reemplazado por IE 6.0 cuando se actualice.

Ejemplo 2: haga doble clic en el archivo "AutoRun.exe" en el CD en Windows XP y se mostrará el comando "0x77f745cc" al que hace referencia el archivo "0x00000078". 0x77f745cc "La instrucción hace referencia a la memoria en "0x00000078". No se puede "escribir" en esta memoria. Para finalizar el programa, haga clic en "Aceptar" mientras se ejecuta normalmente en Windows 98.

Solución alternativa: esto puede ser un Problema de compatibilidad del sistema. Para WinXP, haga clic con el botón derecho en el archivo "AutoRun.exe", Propiedades, Compatibilidad, seleccione el elemento "Ejecutar este programa en modo de compatibilidad" y luego seleccione "Windows 98/Me". Win2000, si tiene el SP parcheado, simplemente inicie, ejecute, ingrese: regsvr32 c:\winnt\apppatch\slayerui.dll. También aparecerán clic derecho, propiedades, opciones de compatibilidad.

Ejemplo 3: Error de apagado de RealOne Gold. Solía ​​​​ejecutarse normalmente, pero cada vez que lo apago recientemente, la instrucción "0xffffffffffff" hacía referencia a la memoria "0xffffffffffff". Esta memoria no se puede "leer".

Solución alternativa: este problema ocurre cuando se utiliza el método de entrada Microsoft Pinyin 2003 y se cierra RealOne con la barra de idioma oculta (funciona bien cuando la barra de idioma no está oculta), por lo que puede mostrar la barra de idioma antes de cerrar RealOne. O utilice cualquier otro método de entrada como método de entrada actual para resolver este problema.

Ejemplo 4: el jugador ya no puede jugar y cada vez que aparece "Ox060692f6" (que cambia cada vez), la memoria a la que hace referencia el comando "Oxff000011" no se puede "leer". Presione "Aceptar" para finalizar el proceso.

Solución: intente reinstalar el reproductor. Si aún funciona después de la reinstalación, descargue la versión correspondiente del parche del sitio web oficial y pruébelo. Si eso no funciona, debes probar con otro reproductor.

Ejemplo 5: Haga doble clic en el acceso directo del juego, el comando "Ox77f5cdO" hace referencia a la memoria "Oxffffffffff", no se puede "leer" y genera un error del programa Client.dat.

Solución alternativa: reinstale el controlador más reciente para su tarjeta gráfica y luego descargue e instale DirectX 9.0.

Ejemplo 6: Mensaje de error de la computadora: la instrucción "0*772b548f" hace referencia a la memoria "0*00303033" y no se puede leer. 0*772b548f "La memoria a la que hace referencia el comando "0*00303033" no se puede "escribir" y QQ se desconecta automáticamente.

Solución: esta es la otra parte aprovechando el ERROR de QQ, enviando códigos especiales y cometer errores QQ Siempre que aplique un parche o actualice a la última versión, todo estará bien

Ejemplo 7: Cuando el sistema XP cierra la página web, "tbrowser.exe". "Encontré un problema y es necesario cerrarlo" y aparece un comando 0x03e7c738. La memoria referenciada de 0x03e7c738 no se puede leer.

Solución: primero verifique si hay virus. Si ha instalado un software de mejora de navegación, desinstálelo.

Ejemplo 8: Al abrir cualquier programa desde el escritorio o el menú de inicio, aparece un mensaje de error: "0x..." La instrucción se refiere a la memoria "0x00000000" y los puntos suspensivos representan el. valor variable al abrir el programa desde el tiempo de ejecución No hay problema

Solución: Ejecute regedit para ingresar al registro. En HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks, solo debería haber. un valor de clave normal "{ AEB6717E-7E19-11d0- 97EE-00C04FD91972} y elimine los valores de clave restantes (por supuesto, los valores predeterminados no deben eliminarse).

Ejemplo 9: El sistema es bastante inestable Después de reinstalar el sistema muchas veces, se produce el error de la aplicación del administrador de recursos. Las instrucciones a menudo hacen referencia aleatoria a la memoria "0x00000000". Esta memoria no se puede "leer". Para finalizar el programa, haga clic en Aceptar. Para depurar el programa, haga clic en Cancelar. Si hace clic en "Aceptar", el escritorio de Windows desaparecerá. Este problema también ocurrió en el sistema anterior. Me pregunto si es un problema de hardware.

Solución: ¡Problema de compatibilidad de memoria! Si encuentra este tipo de problema, puede abrir la máquina y ajustar la ubicación de la memoria para ver si el problema se puede resolver. Si el problema persiste, puede intercambiar la memoria con un amigo.

A través de los ejemplos anteriores, podemos ver que existen muchas causas de fallas. Las causas mencionadas y posibles se enumeran a continuación para su conveniencia.

1. Causa del problema--Solución

2. El módulo de memoria está roto--Reemplace el módulo de memoria

3. -- Use la misma marca de memoria o use solo un módulo de memoria

4. Problema de calidad de la memoria: reemplace el módulo de memoria

5. el chasis

6. La memoria y la placa base no están conectadas correctamente o son incompatibles con otro hardware.

- Reinserte la memoria o reemplace el conector defectuoso

7. Problema del disco duro - Reemplace el disco duro

8. -Reinstalar el controlador. Si es un sistema nuevo, instale primero el controlador de la placa base

9. El software está dañado; reinstale el software

10. El software tiene errores: parchee o use la última versión. .

11. Incompatibilidad de software y sistema: parchee el software o pruebe el modo de compatibilidad del sistema.

12. Conflictos de software a software: si ha instalado recientemente algún software nuevo, desinstálelo. e intente

13. Los problemas ocurren cuando el software utiliza otro software relacionado: reinstale el software relacionado. Por ejemplo, si se produce un error al reproducir un archivo de cierto formato, puede haber un problema con el decodificador de este archivo

14. Problemas de virus: software antivirus

15. Conflicto de software y sistema o software antivirus: dado que el software antivirus ingresa al sistema de monitoreo subyacente, puede entrar en conflicto con algún software, intente desinstalarlo

16. en sí: a veces hay ERRORES en el propio sistema operativo, tenga cuidado al instalar el oficial. Es mejor aplicar los programas de actualización publicados, como los parches de SP. Si no funciona, reinstale el sistema o cambie a otra versión del sistema.