jueves, octubre 11, 2007

Sobre el mensaje de error "Ha ocurrido una excepción al intentar ejecutar..."

Si observa la lista de tareas programadas incluidas por defecto en Windows Vista, verá una encargada de crear puntos de restauración con regularidad. Si accede a la pestaña Acciones verá que la tarea que se ejecuta es la siguiente: %windir%\system32\rundll32.exe /d srrstr.dll,ExecuteScheduledSPPCreation.

¿Qué significa el parámetro /d?

Cuando se incluye una DLL como parámetro del comando Rundll32.exe (muchos ficheros del Panel de control se ejecutan así), automáticamente se captura toda excepción que el código del fichero pueda producir, como por ejemplo una infracción de acceso (AV). Si esto ocurre, se muestra una ventana con el siguiente texto:

RUNDLL

Ha ocurrido una excepción al intentar ejecutar Comando

El "RunDLL" del título de la ventana puede hacer pensar que el sistema está infectado, pues el fichero Rundll.exe no se incluye en Windows XP y además Rundll.exe es un nombre muy común de los ejecutables de muchos virus. Sin embargo, el mensaje es legítimo, procede del sistema operativo.

El parámetro /d de Rundll32.exe lo que hace es evitar la captura de excepciones que comento anteriormente, lo que en ciertos casos puede resultarnos útil. Por ejemplo, en el caso de una excepción de infracción de acceso lo más probable es que entre en acción el depurador "post-mortem" por defecto de Windows (Dr. Watson), o cualquier otro que esté configurado.

En un futuro artículo mostraré en qué consisten las excepciones, de qué tipo pueden ser, cómo las maneja Windows y cómo se puede usar un depurador (Windbg, AdPlus, UserDump, etc.) para detectar error comunes en el código de ciertas aplicaciones de terceros mal diseñadas.

2 comentarios:

GusHGusH dijo...

Hola, me gustaria preguntarte algo para ver si me puedes ayudar, intentare ser explicito, abro panel de control y pantalla y me sale el error a ocurrido una escepcio... etc. me pasa con con xp home, con xp profesional, copias o originales, actualizado y sin actualizar (windows), con los drivers instalados pero tambien sin instalar nada, tengo el HD particionado,con tres o.s. instalados, un xp home otro xp profesional, y un linux wifislax 3.1 , agradeceria tu ayuda si me la pudieras dar, he instalado y desintalado o.s. infinidad de veces y tengo miedo de romper el portatil, la unica solucion que encuentro a sido crear puntos de restauracion pero dura poco tiempo, dejo mi imail, un saludo y gracias. gush.hsug@gmail.com

GusHGusH dijo...

Hola, me gustaria preguntarte algo para ver si me puedes ayudar, intentare ser explicito, abro panel de control y pantalla y me sale el error a ocurrido una escepcio... etc. me pasa con con xp home, con xp profesional, copias o originales, actualizado y sin actualizar (windows), con los drivers instalados pero tambien sin instalar nada, tengo el HD particionado,con tres o.s. instalados, un xp home otro xp profesional, y un linux wifislax 3.1 , agradeceria tu ayuda si me la pudieras dar, he instalado y desintalado o.s. infinidad de veces y tengo miedo de romper el portatil, la unica solucion que encuentro a sido crear puntos de restauracion pero dura poco tiempo, dejo mi imail, un saludo y gracias. gush.hsug@gmail.com