Lorenzo Campedelli wrote:
[ snip ]

> As you can see the signal received by the program as I
> press ^C is SIGEMT (does it make sense ?)

The following patch seems to fix it (context.event_info is unsigned
quantity)

--- freemware.ori/user/plugins/ice/low-freemware.c Sun Jan  9 20:48:19
2000
+++ freemware/user/plugins/ice/low-freemware.c Sun Jan  9 22:50:10 2000
@@ -84,7 +84,7 @@
     case 13 : sigval = SIGSEGV; break; /* general protection          */

     case 14 : sigval = SIGSEGV; break; /* page fault                  */

     case 16 : sigval = SIGEMT;  break; /* coprocessor error           */

-    case -1 : sigval = SIGINT;  break; /* break command from gdb      */

+    case 0xff : sigval = SIGINT;  break; /* break command from gdb
*/
     default : sigval = SIGEMT;  break; /* "software generated"        */

     }

Along the same lines, when a breakpoint is set execution is correctly
interrupted but gdb instead of reporting the breakpoint hit gives, for
the
same instruction:

Program received signal SIGSEGV, Segmentation fault.
kmain () at main.c:60
60 {

I verified that the value of (context.event_info & 0xff) in mywait()
is actually 13.

Note also that neither STEP nor NEXT seem to work: they behave like
CONT.

Ciao,
    Lorenzo (now sleeping)

Reply via email to