On Tue, 16 Sep 2008, José Luis Capel  wrote:

Hi Jose,

> JLC>What do you want to do and why?
> JLC>
> What I want to do is to catch exceptions in any way... because executing a
> programa under Wince that generates a GPF doesn't terminate program.

It can be hardware/OS dependent so on one machine it may terminate
program but on some other other not. There is many different WinCE
versions, ARM processors and other devices used in mobile devices.
Anyhow Harbour core code should not GPF. If it does then it should
be fixed. What problem have you found?

BTW if it really GPFs (Genral Protection Fault) and it's not other
error then your device has memory protection. In you previous posts
you tried to assign 0x00000000 and 0xFFFFFFFF - maybe these addresses
belongs to process. In such case try different.
And how you detected that they not generate exception? Maybe in
your device producer uses some exception handler which simply
causes that exceptions are ignored. Quite often practice to hide
bugs in pure quality software. Maybe it's possible to change default
exception handler to your own which will call hb_errInternal() or
simply: exit( EXIT_FAILURE );. In source/vm/extrap.c
SetUnhandledExceptionFilter() is disabled for WinCE builds because
it was missing in some testing WinCE environments but maybe the
one you are using supports it. If yes then please send us information
about exact environment so we can enable it for such builds.
You can also try to cange the return value in exception filter from
EXCEPTION_CONTINUE_SEARCH to EXCEPTION_EXECUTE_HANDLER.
Maybe it's possible in your environment to overload default exception
handler by adding your own UnhandledExceptionFilter() function to the
application code. You can try.
Anyhow valid Harbour application should not generate exceptions so
all of the above is for some rather abnormal situations.

> JLC>If there is no hardware support then you will not make it 
> JLC>in such way. You can only try to generate it explicitly by 
> JLC>_throw_ if used C compilers supports it.
> How ?  An example can help me a lot.

check in google: try catch throw
and the 1-st link will point to MSDN documentation.

best regards,
Przemek
_______________________________________________
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to