On Wed, Sep 07, 2005 at 01:42:34AM +0900, Atsushi Nemoto wrote: > 1. The "break" instruction raises a exception. > 2. The exception handler queues SIGTRAP(5). > 3. dequeue_signal() dequeue a signal with LOWEST number (i.e. SIGTRAP). > 4. setup_frame() fails due to bad stack pointer and queues SIGSEGV(11). > 5. returns to user process (pc unchanged). > 6. goto 1. (forever) > > So, the process can not be kill by SIGKILL. In 2.6.12, 'sigkill > priority fix' was applied to __dequeue_signal(), but it does not help > while the SIGTRAP is queued to tsk->pending but SIGKILL (by kill > command) is queued to tsk->signal->shared_pending. The behaviour of not advancing the EPC beyond the faulting instruction is part of the problem - but I believe that was the usual behaviour for MIPS UNIXoid operating systems. Ralf