Solaris Express Developer Edition: Notas sobre la versi??n

x86: La señal 11 SIGSEGV finaliza después de un inicio de RTC (6584707)

La comprobación del tiempo de ejecución (RTC) falla en Developer 9/07. La RTC organiza la memoria y las instrucciones de acceso para la comprobación del acceso. Estas instrucciones las gestiona un manejador SIGSEGV en el tiempo de ejecución. Como que la RTC requiere su propio controlador SIGSEGV y una pila alternativa de señales, los intentos de instalar un manejador SIGSEGV o sigaltstack se omitirán o provocarán un error de EINVAL. Las llamadas del manejador SIGSEGV no se pueden anidar. Aparecerá el siguiente mensaje de error:


terminating signal 11 SIGSEGV

Solución temporal: Utilice el comando rtc skippatch para omitir la instrumentación de la función afectada.

Por ejemplo, los comandos dbx siguientes ofrecen una solución alternativa al problema de segv anidado:


rtc skippatch libc.so -f lrw_rdlock lrw_unlock lrw_wrlock _lock_try
rtc skippatch libc.so -f read_lock_try read_unlock_try write_lock_try
write_unlock_try
rtc skippatch libc.so -f queue_unlink mqueue_spawner thread_queue_dump
rtc skippatch libc.so -f thread_queue_fifo thread_queue_spin
thread_queue_verify
rtc skippatch libc.so -f __rw_unlock __rw_trywrlock __rw_workerscnt
rtc skippatch libc.so -f __rwlock_destroy __rwlock_init