[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Bug report/Suggestions
- To: cmucl-bugs@CS.CMU.edu
 
- Subject: Re: Bug report/Suggestions
 
- From: Miles Bader <miles@cogsci.edinburgh.ac.uk>
 
- Date: Sat, 16 Nov 91 16:08:54 GMT
 
- Blat: Foop
 
- In-reply-to: <16977.9111161550@cogsci.ed.ac.uk>
 
- References: <16977.9111161550@cogsci.ed.ac.uk>
 
Rob_MacLachlan@edu.CMU.CS.SLISP.LISP-PMAX1 writes:
>     segv_handler: No mapping fault: 0x00e80014
>     segv_handler: Recursive no mapping fault (stack overflow?)
Incidentally, there's a bug in the code that detects the recursive NMF.  It
goes into a break loop, like this:
    nomap_count++;
    ...
    interrupt_handle_now(sig,code,context);
    if(code==SEGV_NOMAP)
	nomap_count--;
And if it ever finds nomap_count non-zero, assumes it's getting recursively
called.  But since you always just jump to the top level, it never actually
executes the nomap_count--, and even it sucessfully returns to the top level,
the next no-map error will cause it to exit (highly inconvenient if you
occasionally make bogus dereferencese...).  I have no idea how to make it do
so correctly...
e.g., try
 (system:sap-ref-32 (system:int-sap 0) 0)
 q
 (system:sap-ref-32 (system:int-sap 0) 0)
-Miles
--
Miles Bader  --  HCRC, University of Edinburgh  --  Miles.Bader@ed.ac.uk
99% of everything is grunge