Solaris Express Developer Edition Release Notes

x86: Signal 11 SIGSEGV Terminates After RTC Startup (6584707)

Runtime Checking (RTC) fails in the Developer 9/07 release. RTC instruments memory, access instructions for access checking. These instructions are handled by a SIGSEGV handler at runtime. Since RTC requires its own SIGSEGV handler and signal alternate stack, attempts to install a SIGSEGV handler or sigaltstack will either be ignored or result in an EINVAL error. SIGSEGV handler calls cannot be nested. The following error message is displayed:


terminating signal 11 SIGSEGV

Workaround: Use the rtc skippatch command to skip instrumentation of the affected function.

For example, the following dbx commands workaround the nested segv problem:


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