[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Bug report/Suggestions



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