Hi David, > My program about exception handle crashs ,when "longjmp" is called to > restore context,and registers are not restored correctly. Is your program a C program? A C++ program? If it is a C++ program, are you using C++ exceptions (try/throw/catch)? If you are using C++ exceptions, you cannot interleave C++ exceptions and setjmp/longjmp. Are you using the volatile qualifier on stack variables outside the context of the setjmp, if they are used within the context of the body of the setjmp? Without more information, it will be very difficult to diagnose the problem you are experiencing. Sincerely, --Eljay