Paolo,

> It really looks like SPARC can send SIGBUS on an invalid memory access.

For the record, the platform is Linux/SPARC.

> What do you think about unconditionally registering an handler for both 
> SIGSEGV and SIGBUS, basically dropping signals-*.h?

I'm not a fan of catching unrelated signals.

Gabriel, can you try to
  1) Apply the attached patch to your copy of libsigsegv/ inside GNU smalltalk,
  2) Recompile GNU smalltalk,
  3) See whether it still crashes?

Paolo, is gst mmaping files, and the signal occurring when you are accessing
an area that is beyond the length of the file? Or does gst only use mmap of
anonymous memory?

Bruno


*** src/signals.h.orig  Tue Jul 27 01:38:05 2010
--- src/signals.h       Tue Jul 27 01:37:49 2010
***************
*** 18,21 ****
  /* List of signals that are sent when an invalid virtual memory address
     is accessed, or when the stack overflows.  */
  #define SIGSEGV_FOR_ALL_SIGNALS(var,body) \
!   { int var; var = SIGSEGV; { body } }
--- 18,21 ----
  /* List of signals that are sent when an invalid virtual memory address
     is accessed, or when the stack overflows.  */
  #define SIGSEGV_FOR_ALL_SIGNALS(var,body) \
!   { int var; var = SIGSEGV; { body } var = SIGBUS; { body } }

_______________________________________________
help-smalltalk mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/help-smalltalk

Reply via email to