Notas de la versión de Solaris 10 5/08

Problemas al ejecutar el depurador

Los siguientes problemas están relacionados con el depurador del núcleo.

x86: Una señal SIGTRAP ha ocasionado el bloqueo del depurador dbx (6546562 )

Si se está utilizando el depurador dbx en Solaris 10 en plataformas x86 para depurar un programa que genere o entregue señales que tengan manejadores, dbx podría recibir una señal SIGTRAP inesperada del núcleo que provoca el bloqueo del depurador. Esta situación puede producirse si dbx se está ejecutando paso a paso o hasta un punto de interrupción, obteniendo datos de la comprobación del tiempo de ejecución (RTC) o programando cualquier otra actividad que dependa de las trampas de señales.

En ocasiones, dbx muestra un aviso de señal SIGTRAP inesperada cuando se bloquea. Por ejemplo:


dbx: internal warning: unexpected SIGTRAP!

En otros casos, dbx indica que ha recibido una señal SEGV. Por ejemplo:


signal SEGV (no mapping at the fault address) in main at line 29 in file "test.c"

En este caso, cuando el usuario escribe el comando cont -sig SEGV para continuar con la ejecución con la señal SEGV, dbx muestra el aviso de SIGTRAP inesperada.

Este defecto se instroduce en Solaris 10 en plataformas x86 cuando se instala el parche del núcleo 127112.

Solución: No instale el parche del núcleo 127112, y desinstálelo si ya está instalado. Para obtener más información sobre este defecto, consulte la página Sun Studio Support News en http://developers.sun.com/sunstudio/support/news/index.jsp.

SPARC: Problemas con el depurador dbx durante el procesamiento de objetos de 64 bits (6347707)

Durante el procesamiento de algunas bibliotecas y archivos ejecutables de 64 bits, el depurador dbx se interrumpe debido a un error de acceso de memoria. Sin embargo, el problema no afecta al uso normal de estos objetos de 64 bits. Se muestra un mensaje de error parecido al siguiente:


dbx: internal error: signal SIGBUS (invalid address alignment)

Solución: use el depurador mdb o la utilidad de seguimiento dinámico de Solaris (Solaris Dynamic Tracing). Estas alternativas permiten diagnosticar los procesos que utilizan objetos de 64 bits.

El sistema puede tener un bucle cuando se cambia la CPU principal (4405263)

Un sistema que está ejecutando el depurador de núcleo de Solaris para depurar un sistema activo puede realizar un bucle con mensajes de error incompletos. Este bucle se produce cuando se cambia la CPU principal de OpenBoot PROM. Un restablecimiento del sistema hace que el sistema vuelva a funcionar. Sin embargo, se pierden los rastros del error original. Por tanto, no puede realizar un diagnóstico del restablecimiento del error.

Solución: cuando el sistema se encuentra en el nivel de PROM, se mostrará el indicador ok de OpenBoot. En un sistema con varias CPU, el indicador ok está precedido por un número entre llaves. Este número indica las CPU activas en el sistema. Para ejecutar la sesión de depuración en el nivel de PROM, use los siguientes pasos.

  1. Eleve pil a f escribiendo el siguiente comando:


    {0} ok h# 0f pil!
    
  2. Utilice el comando switch-cpu para cambiar selectivamente de la CPU activa a las distintas CPU. Por ejemplo, para cambiar de la CPU número 0 a la CPU número 1, escriba el siguiente comando:


    (0) ok 1 switch-cpu
    

    El indicador ok estará precedido por el número de la CPU a la que ha cambiado.


    {1} ok
  3. Ejecute el depurador.

  4. Al final de la sesión del depurador, emita el comando reset-all para devolver el sistema a su uso normal.


Nota –

Asegúrese de que moderniza el sistema a la última versión de OpenBoot PROM.