Changing the app type from windows to console will cause a console
window to be displayed on Win9x which cannot be hidden by BOINC (which
probably isn't relevant anymore).
Okay, instead of calling any of the CRT functions you can do this:
#ifdef _WIN32
TerminateProcess(GetCurrentProcess(), 0);
#endif
That'll prevent any form or error processing from the client after that
piece of code is hit.
----- Rom
-----Original Message-----
From: Raistmer [mailto:[email protected]]
Sent: Friday, October 16, 2009 5:17 PM
To: Rom Walton; [email protected]
Subject: Re: [boinc_dev] Disabling BOINC's debugger
1) _exit(0) still summons BOINC's debugger + Vista's dialog box.
2) no user intervention required in case of driver restart. Actually, I
test
exception handling by running 3D-intensive game - it survives 3 or 4
driver
restarts w/o any problems already :)
But all CAL applications running at time of driver restart will crash or
return computation errors w/o additional handling.
Driver restart summons crash in aticaldd.dll. So, device context, in
that
app works, is destroyed.
App restart will recreate context and computations could be continued.
In current state I can just press suspend/resume on task while Vista
shows
propmt for debugging then refuse to debug. App will be restarted from
last
checkpoint OK.
But manual intervention still required for now. It would be much better
if
app could just exit with zero status w/o any complains in stderr about
exceptions from BOINC's side and surely w/o dialog box appearance from
Vista's side (this probably could be healed by changing app type from
windows to console...)
----- Original Message -----
From: "Rom Walton" <[email protected]>
To: "Raistmer" <[email protected]>; <[email protected]>
Sent: Saturday, October 17, 2009 12:48 AM
Subject: RE: [boinc_dev] Disabling BOINC's debugger
Does the user have to restart the machine to recover from the
video-driver restart issues? Or will just re-launching the application
right after the crash help?
----- Rom
-----Original Message-----
From: Raistmer [mailto:[email protected]]
Sent: Friday, October 16, 2009 4:43 PM
To: Rom Walton; [email protected]
Subject: Re: [boinc_dev] Disabling BOINC's debugger
Agreed if "run into the same problem" is the case.
Problem of Vista's video-driver restart has not so permanent and
deterministic character.
It maybe days w/o such event so saving many-hours task from such
incident
may be not so bad idea.
----- Original Message -----
From: "Rom Walton" <[email protected]>
To: "Raistmer" <[email protected]>; <[email protected]>
Sent: Friday, October 16, 2009 11:48 PM
Subject: RE: [boinc_dev] Disabling BOINC's debugger
Try using _exit(0);
Although, to be perfectly honest you are going to be beating yourself up
later over this. For one reason or another app is causing a hardware
based exception to be thrown, setting things up so that BOINC will
re-launch the application later just so it can run into the same problem
again isn't the way to go.
Eventually the task instance will exceed the CPU/GPU runtime processing
bound and error out, but you'll have quite a few upset volunteers on
your hands.
----- Rom
-----Original Message-----
From: Raistmer [mailto:[email protected]]
Sent: Friday, October 16, 2009 3:42 PM
To: Rom Walton; [email protected]
Subject: Re: [boinc_dev] Disabling BOINC's debugger
Yes, it helped indeed, thanks!
Now I see next situation:
driver crash -> access to zero address exception -> app handler called
->
exit(0) called inside app exception handler and then exception
re-catched by
BOINC again -> dump message in stderr and then windows (Vista) dilog box
appears with proposal to debug application.
Not quite understand why exit(0) rethrows (?) exception.
----- Original Message -----
From: "Rom Walton" <[email protected]>
To: "Rom Walton" <[email protected]>; "Raistmer" <[email protected]>;
<[email protected]>
Sent: Friday, October 16, 2009 9:54 PM
Subject: RE: [boinc_dev] Disabling BOINC's debugger
It'll convert SEH exceptions into C++ exceptions. You'll be able to use
the normal try/catch blocks to catch them.
----- Rom
-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Rom Walton
Sent: Friday, October 16, 2009 1:53 PM
To: Raistmer; [email protected]
Subject: Re: [boinc_dev] Disabling BOINC's debugger
Go to Project Properties/C/C++/Code Generation section and change the
Enable C++ Exceptions option to /EHa.
That'll treat SEH exceptions like C++ exceptions.
----- Rom
-----Original Message-----
From: Raistmer [mailto:[email protected]]
Sent: Friday, October 16, 2009 1:49 PM
To: Rom Walton; [email protected]
Subject: Re: [boinc_dev] Disabling BOINC's debugger
yes.
----- Original Message -----
From: "Rom Walton" <[email protected]>
To: "Raistmer" <[email protected]>; <[email protected]>
Sent: Friday, October 16, 2009 9:34 PM
Subject: RE: [boinc_dev] Disabling BOINC's debugger
Are you building your app with Visual Studio?
----- Rom
-----Original Message-----
From: Raistmer [mailto:[email protected]]
Sent: Friday, October 16, 2009 1:32 PM
To: Rom Walton; [email protected]
Subject: Re: [boinc_dev] Disabling BOINC's debugger
I use
try{
function_call();
}catch(...)
{
handler();
}
but still got BOINC's debugger called...
----- Original Message -----
From: "Rom Walton" <[email protected]>
To: "Raistmer" <[email protected]>; <[email protected]>
Sent: Friday, October 16, 2009 8:59 PM
Subject: RE: [boinc_dev] Disabling BOINC's debugger
The exception handling code on Windows only kicks in if no other
exception handling mechanism is used.
Just define an exception handler of some sort and you should be good to
go.
Just remember, on Windows there are two different exceptions that can be
thrown. C++ exceptions and SEH exceptions. C++ exceptions use the
try()/catch() stuff everybody is used too, SEH exceptions use
__try/__catch.
----- Rom
-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Raistmer
Sent: Friday, October 16, 2009 12:50 PM
To: [email protected]
Subject: [boinc_dev] Disabling BOINC's debugger
Hello
Is it possible to give control for exception handling back to science
app?
What BOINC API call I should comment out to do this?
Need exception handling inside app....to catch exception instead of
writing
to stderr and trashing task...
_______________________________________________
boinc_dev mailing list
[email protected]
http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev
To unsubscribe, visit the above URL and
(near bottom of page) enter your email address.
_______________________________________________
boinc_dev mailing list
[email protected]
http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev
To unsubscribe, visit the above URL and
(near bottom of page) enter your email address.
_______________________________________________
boinc_dev mailing list
[email protected]
http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev
To unsubscribe, visit the above URL and
(near bottom of page) enter your email address.