在 x86 平台上的 Solaris 10 OS 中使用 dbx 调试器调试可通过信号处理程序发出或传送信号的程序时,dbx 可能会收到来自内核的意外的 SIGTRAP 信号,该信号会导致调试器挂起。在以下情形下可能会发生这种情况:当 dbx 单步执行时、遇到断点时、搜集运行时检查 (runtime checking, RTC) 数据时,或者执行任何其他依赖于信号捕获的活动时。
在某些情况下,当 dbx 挂起时会显示意外的 SIGTRAP 信号警告。例如:
dbx: internal warning: unexpected SIGTRAP! |
在其他情况下,dbx 指示收到 SEGV 信号。例如:
signal SEGV (no mapping at the fault address) in main at line 29 in file "test.c" |
在这种情况下,当用户键入 cont -sig SEGV 命令继续执行 SEGV 信号时,dbx 会显示意外的 SIGTRAP 警告。
安装内核修补程序 127112 后,此错误会引入到 x86 平台上的 Solaris 10 OS 中。
解决方法:请不要安装内核修补程序 127112。如已经安装该内核修补程序,请将其卸载。有关此错误的更多信息,请参见 http://developers.sun.com/sunstudio/support/news/index.jsp 上的 "Sun Studio Support News" 页。