Notas de vers??o do Solaris Express Developer Edition

x86: O sinal 11 SIGSEGV é encerrado após a inicialização de RTC (6584707)

A verificação do tempo de execução (RTC) falha no Developer 9/07. RTC instrumenta a memória, acessa instruções para acessar a verificação. Essas instruções são manipuladas por um manipulador do SIGSEGV no tempo de execução. Uma vez que RTC requer seu próprio manipulador do SIGSEGVe sua pilha alternativa de sinal, as tentativas de instalar um manipulador do SIGSEGV ou sigaltstack serão ignoradas ou resultarão em um erro de EINVAL. As chamadas do manipulador do SIGSEGV não podem ser aninhadas. A seguinte mensagem de erro é exibida:


terminating signal 11 SIGSEGV

Solução alternativa: use o comando rtc skippatch para ignorar a instrumentação da função afetada.

Por exemplo, os seguintes comandos dbx oferecem uma solução alternativa para o problema de segv aninhado:


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