Note su Solaris 10 5/08

x86: Un segnale SIGTRAP inatteso provoca il blocco del debugger dbx (6546562)

Quando si utilizza il debugger dbx in Solaris 10, sulla piattaforma x86, per eseguire il debugging di un programma che produce e consegna segnali dotati di gestori, dbx può ricevere dal kernel un segnale SIGTRAP inatteso che provoca il blocco del debugger. Questa situazione si verifica quando dbx sta eseguendo le istruzioni una alla volta, eseguendo il codice fino a un punto d'interruzione, raccogliendo i dati RTC o eseguendo altre attività che utilizzano il trapping dei segnali.

In alcuni casi, dbx visualizza un avviso di segnale SIGTRAP inatteso al momento del blocco. Ad esempio:


dbx: internal warning: unexpected SIGTRAP!

In altri casi, dbx segnala la ricezione di un segnale SEGV. Ad esempio:


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

In questo caso, quando l'utente digita il comando cont -sig SEGV per proseguire l'esecuzione con il segnale SEGV, dbx visualizza l'avviso di SIGTRAP inatteso.

Il bug si verifica in Solaris 10 sulla piattaforma x86 dopo l'installazione della patch del kernel 127112.

Soluzione. Non installare la patch del kernel 127112 e disinstallarla se è già stata installata. Per maggiori informazioni su questo bug, vedere la pagina di Sun Studio Support News all'indirizzo http://developers.sun.com/sunstudio/support/news/index.jsp.