Revision 447db213 linux-user/signal.c

b/linux-user/signal.c
110 110
    tinfo->si_signo = sig;
111 111
    tinfo->si_errno = 0;
112 112
    tinfo->si_code = 0;
113
    if (sig == SIGILL || sig == SIGFPE || sig == SIGSEGV || sig == SIGBUS) {
113
    if (sig == SIGILL || sig == SIGFPE || sig == SIGSEGV || 
114
        sig == SIGBUS || sig == SIGTRAP) {
114 115
        /* should never come here, but who knows. The information for
115 116
           the target is irrelevant */
116 117
        tinfo->_sifields._sigfault._addr = 0;
......
131 132
    tinfo->si_signo = tswap32(sig);
132 133
    tinfo->si_errno = tswap32(info->si_errno);
133 134
    tinfo->si_code = tswap32(info->si_code);
134
    if (sig == SIGILL || sig == SIGFPE || sig == SIGSEGV || sig == SIGBUS) {
135
    if (sig == SIGILL || sig == SIGFPE || sig == SIGSEGV || 
136
        sig == SIGBUS || sig == SIGTRAP) {
135 137
        tinfo->_sifields._sigfault._addr = 
136 138
            tswapl(info->_sifields._sigfault._addr);
137 139
    } else if (sig >= TARGET_SIGRTMIN) {
......
788 790
    sigset_t set;
789 791
    int eax, i;
790 792

  
793
#if defined(DEBUG_SIGNAL)
794
    fprintf(stderr, "do_sigreturn\n");
795
#endif
791 796
    /* set blocked signals */
792 797
    target_set.sig[0] = frame->sc.oldmask;
793 798
    for(i = 1; i < TARGET_NSIG_WORDS; i++)

Also available in: Unified diff