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

About error catching



Hi all,

I would like to know if the following code (see "insizemz.pdf" document):

void MyFunction(){

         [...]

         Scheme_Object *curout 
=scheme_get_param(scheme_config,MZCONFIG_OUTPUT_PORT);

         if (scheme_setjmp(scheme_error_buf)){
                 //ERROR->I simply ignore it at the moment!
         }else {
                 Scheme_Object *v=scheme_eval_string(str, mySchemeEnv);
                 scheme_display(v,curout);
                 scheme_eval_string("(newline)",mySchemeEnv);
         }

         return;
}

could case strange thinks to my program. I mean: in windows (2000) I get an 
error message (first by the debugger, finally by a "fatal error") when I 
exit from "Myfunction" method.

It seems that scheme_setjmp isn't able to recover correctly the contents of 
the stack so the last "return" instruction jumps to a wrong address.

Do you think it is possible?
How can I check this think?
Or probably I'm suppose to recompile mzsrc library with some specific define?

Thank you



*************************************
Giorgio Scorzelli
scr.giorgio@cogesic.it
*************************************