- On Windows treat all SEH exceptions as C++ style exceptions.

NOTE: I'll need to do a little more research and adjust the
          diagnostics stuff later.  I believe that the diagnostics
          framework will now always report an unhandled C++ exception
          for things like an Access Violation.
    - client: On Windows, recover from an Access Violation if/when 
        the GPU functions access violate.
        
    lib/
        boinc_in.h
        coproc.cpp
    win_build/
        *.vcproj

svn path=/trunk/boinc/; revision=19541
This commit is contained in:
Rom Walton 2009-11-11 20:33:12 +00:00
parent 537c2bba2e
commit c73ea50c1b
26 changed files with 61 additions and 7 deletions

View File

@ -9065,3 +9065,18 @@ David 10 Nov 2009
from Oliver Bock
Makefile.am
Rom 11 Nov 2009
- On Windows treat all SEH exceptions as C++ style exceptions.
NOTE: I'll need to do a little more research and adjust the
diagnostics stuff later. I believe that the diagnostics
framework will now always report an unhandled C++ exception
for things like an Access Violation.
- client: On Windows, recover from an Access Violation if/when
the GPU functions access violate.
lib/
boinc_in.h
coproc.cpp
win_build/
*.vcproj

View File

@ -186,6 +186,7 @@ typedef LPCSTR PCTSTR, LPCTSTR, PCUTSTR, LPCUTSTR;
#include <list>
#include <map>
#include <set>
#include <stdexcept>
#endif
// Define a generic string type that can be a Unicode string on

View File

@ -27,6 +27,7 @@
#include <cstring>
#include <cstdlib>
#ifdef _WIN32
#ifndef SIM
#include <nvapi.h>
@ -136,19 +137,32 @@ void COPROCS::summary_string(char* buf, int len) {
strcpy(buf, bigbuf);
}
#ifndef _WIN32_
#ifdef _WIN32
void COPROCS::get(bool use_all, vector<string>&descs, vector<string>&warnings) {
try {
COPROC_CUDA::get(*this, use_all, descs, warnings);
} catch(...) {
warnings.push_back("Caught exception in NVIDIA GPU detection");
}
try {
COPROC_ATI::get(*this, descs, warnings);
} catch(...) {
warnings.push_back("Caught exception in ATI GPU detection");
}
}
#else
jmp_buf resume;
void segv_handler(int) {
longjmp(resume, 1);
}
#endif
void COPROCS::get(bool use_all, vector<string>&descs, vector<string>&warnings) {
#ifdef _WIN32_
COPROC_CUDA::get(*this, use_all, descs, warnings);
COPROC_ATI::get(*this, descs, warnings);
#else
sighandler_t old_sig = signal(SIGSEGV, segv_handler);
if (setjmp(resume)) {
warnings.push_back("Caught SIGSEGV in NVIDIA GPU detection");
@ -163,9 +177,10 @@ void COPROCS::get(bool use_all, vector<string>&descs, vector<string>&warnings) {
}
#endif
signal(SIGSEGV, old_sig);
#endif
}
#endif
// used only to parse scheduler request messages
//
int COPROCS::parse(FILE* fin) {

View File

@ -383,6 +383,7 @@
AdditionalIncludeDirectories="../lib;../api;../client/win;../client;..;../../boinc_depends_win_vs2005/openssl/include;../../boinc_depends_win_vs2005/curl/include;../../boinc_depends_win_vs2005/zlib/include;../coprocs/cuda/include"
PreprocessorDefinitions="WIN32;_WIN32;NDEBUG;_MT;_DLL;_WINDOWS;_CONSOLE;_USE_CURL;USE_SSL;USE_SSLEAY;USE_OPENSSL"
StringPooling="false"
ExceptionHandling="2"
RuntimeLibrary="2"
FloatingPointModel="2"
UsePrecompiledHeader="2"

View File

@ -368,6 +368,7 @@
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="../lib"
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG;_USRDLL;_ATL_ATTRIBUTES"
ExceptionHandling="2"
RuntimeLibrary="2"
FloatingPointModel="2"
UsePrecompiledHeader="2"

View File

@ -379,6 +379,7 @@
AdditionalIncludeDirectories="../api/,../lib/,../client,.."
PreprocessorDefinitions="WIN32;NDEBUG;_MT;_WINDOWS;_CONSOLE"
StringPooling="false"
ExceptionHandling="2"
RuntimeLibrary="0"
EnableFunctionLevelLinking="false"
FloatingPointModel="2"

View File

@ -381,6 +381,7 @@
AdditionalIncludeDirectories="../lib/,../api/,../RSAEuro/source/,../client/win/,../client,.."
PreprocessorDefinitions="WIN32;NDEBUG;_MT;_DLL;_WINDOWS;_CONSOLE"
StringPooling="true"
ExceptionHandling="2"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
FloatingPointModel="2"

View File

@ -146,6 +146,7 @@
AdditionalIncludeDirectories="..;..\..\boinc_depends_win_vs2005\wxwidgets\include;&quot;..\..\boinc_depends_win_vs2005\wxwidgets\mswin\$(PlatformName)\$(ConfigurationName)\lib\vc_lib\mswu&quot;;..\..\boinc_depends_win_vs2005\sqlite3\include;..\lib;..\api;..\clientgui;..\client\win;$(NOINHERIT)"
PreprocessorDefinitions="WIN32;_WIN32;_NDEBUG;_WINDOWS;_MT;__WXNDEBUG__;WXNDEBUG;_UNICODE;UNICODE;wxUSE_GUI=1;$(NOINHERIT)"
StringPooling="true"
ExceptionHandling="2"
RuntimeLibrary="2"
EnableFunctionLevelLinking="false"
FloatingPointModel="2"

View File

@ -389,6 +389,7 @@
AdditionalIncludeDirectories="../lib;.."
PreprocessorDefinitions="WIN32;_WIN32;NDEBUG;_MT;_DLL;_WINDOWS;_CONSOLE"
StringPooling="false"
ExceptionHandling="2"
RuntimeLibrary="2"
FloatingPointModel="2"
UsePrecompiledHeader="2"

View File

@ -381,6 +381,7 @@
AdditionalIncludeDirectories="../api/,../lib/,../client,.."
PreprocessorDefinitions="WIN32;NDEBUG;_MT;_WINDOWS;_CONSOLE"
StringPooling="false"
ExceptionHandling="2"
RuntimeLibrary="0"
EnableFunctionLevelLinking="false"
FloatingPointModel="2"

View File

@ -238,6 +238,7 @@
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions="WIN32;NDEBUG;_MT;_LIB;_CONSOLE;_CRT_SECURE_NO_WARNINGS;HAVE_STD_MAX;HAVE_STD_MIN;HAVE_STD_TRANSFORM;CLIENT;BOINC_APP_GRAPHICS"
ExceptionHandling="2"
RuntimeLibrary="0"
UsePrecompiledHeader="0"
WarningLevel="3"

View File

@ -237,6 +237,7 @@
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions="WIN32;NDEBUG;_MT;_LIB;_CONSOLE;_CRT_SECURE_NO_WARNINGS;HAVE_STD_MAX;HAVE_STD_MIN;HAVE_STD_TRANSFORM;CLIENT;BOINC_APP_GRAPHICS"
ExceptionHandling="2"
RuntimeLibrary="0"
UsePrecompiledHeader="0"
WarningLevel="3"

View File

@ -243,6 +243,7 @@
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=".;../lib"
PreprocessorDefinitions="WIN32;NDEBUG;_MT;_LIB;_CONSOLE;_CRT_SECURE_NO_WARNINGS;HAVE_STD_MAX;HAVE_STD_MIN;HAVE_STD_TRANSFORM;CLIENT;BOINC_APP_GRAPHICS"
ExceptionHandling="2"
RuntimeLibrary="0"
UsePrecompiledHeader="0"
WarningLevel="3"

View File

@ -264,6 +264,7 @@
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..;../win_build;../lib;../api;../../boinc_depends_win_vs2005/openssl/include;../coprocs/cuda/include"
PreprocessorDefinitions="_WIN32;WIN32;_MT;_DLL;NDEBUG;_LIB_WIN32;_WINDOWS;_CONSOLE;HAVE_STD_MAX;HAVE_STD_MIN;HAVE_STD_TRANSFORM;CLIENT;BOINC_APP_GRAPHICS"
ExceptionHandling="2"
RuntimeLibrary="0"
FloatingPointModel="2"
UsePrecompiledHeader="2"

View File

@ -264,6 +264,7 @@
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..;../win_build;../lib;../api;../../boinc_depends_win_vs2005/openssl/include;../coprocs/cuda/include"
PreprocessorDefinitions="_WIN32;WIN32;_MT;NDEBUG;_LIB_WIN32;_WINDOWS;_CONSOLE;HAVE_STD_MAX;HAVE_STD_MIN;HAVE_STD_TRANSFORM;CLIENT;BOINC_APP_GRAPHICS"
ExceptionHandling="2"
RuntimeLibrary="0"
FloatingPointModel="2"
UsePrecompiledHeader="2"

View File

@ -250,6 +250,7 @@
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=".;../;../api;../lib;../samples/image_libs;../samples/jpeglib;../samples/glut"
PreprocessorDefinitions="WIN32;NDEBUG;_MT;_LIB;_CONSOLE;_CRT_SECURE_NO_WARNINGS;HAVE_STD_MAX;HAVE_STD_MIN;HAVE_STD_TRANSFORM;CLIENT;BOINC_APP_GRAPHICS"
ExceptionHandling="2"
RuntimeLibrary="0"
UsePrecompiledHeader="2"
PrecompiledHeaderThrough="boinc_win.h"

View File

@ -247,6 +247,7 @@
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=".;../;../api;../lib;../samples/image_libs;../samples/jpeglib;../samples/glut"
PreprocessorDefinitions="WIN32;NDEBUG;_MT;_LIB;_CONSOLE;_CRT_SECURE_NO_WARNINGS;HAVE_STD_MAX;HAVE_STD_MIN;HAVE_STD_TRANSFORM;CLIENT;BOINC_APP_GRAPHICS"
ExceptionHandling="2"
RuntimeLibrary="0"
UsePrecompiledHeader="2"
PrecompiledHeaderThrough="boinc_win.h"

View File

@ -155,6 +155,7 @@
AdditionalIncludeDirectories=".;../;../api;../lib;../samples/image_libs;../samples/jpeglib;../samples/glut"
PreprocessorDefinitions="WIN32;NDEBUG;_MT;_CONSOLE"
StringPooling="false"
ExceptionHandling="2"
RuntimeLibrary="0"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"

View File

@ -381,6 +381,7 @@
AdditionalIncludeDirectories="../lib;../api;../client/win;../client;..;../../boinc_depends_win_vs2005/openssl/include;../../boinc_depends_win_vs2005/curl/include;../../boinc_depends_win_vs2005/zlib/include"
PreprocessorDefinitions="WIN32;NDEBUG;_MT;_DLL;_WINDOWS;_CONSOLE;SIM"
StringPooling="true"
ExceptionHandling="2"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
FloatingPointModel="2"

View File

@ -155,6 +155,7 @@
AdditionalIncludeDirectories=".;../;../api;../lib;../samples/image_libs;../samples/jpeglib;../samples/glut"
PreprocessorDefinitions="WIN32;NDEBUG;_MT;_CONSOLE"
StringPooling="false"
ExceptionHandling="2"
RuntimeLibrary="0"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"

View File

@ -156,6 +156,7 @@
AdditionalIncludeDirectories=".;..;../api;../lib;../samples/image_libs;../samples/jpeglib;../samples/glut"
PreprocessorDefinitions="WIN32;NDEBUG;_MT;_CONSOLE"
StringPooling="false"
ExceptionHandling="2"
RuntimeLibrary="0"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"

View File

@ -155,6 +155,7 @@
AdditionalIncludeDirectories=".;..;../api;../lib;../samples/image_libs;../samples/jpeglib;../samples/glut"
PreprocessorDefinitions="WIN32;NDEBUG;_MT;_CONSOLE"
StringPooling="false"
ExceptionHandling="2"
RuntimeLibrary="0"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"

View File

@ -155,6 +155,7 @@
AdditionalIncludeDirectories=".;..;../api;../lib;../samples/image_libs;../samples/jpeglib;../samples/glut"
PreprocessorDefinitions="WIN32;NDEBUG;_MT;_CONSOLE"
StringPooling="false"
ExceptionHandling="2"
RuntimeLibrary="0"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"

View File

@ -381,6 +381,7 @@
AdditionalIncludeDirectories="../lib/,../api/,../RSAEuro/source/,../client/win/,../client,.."
PreprocessorDefinitions="WIN32;NDEBUG;_MT;_DLL;_WINDOWS;_CONSOLE"
StringPooling="true"
ExceptionHandling="2"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
FloatingPointModel="2"

View File

@ -155,6 +155,7 @@
AdditionalIncludeDirectories=".;../;../api;../lib;../samples/image_libs;../samples/jpeglib;../samples/glut"
PreprocessorDefinitions="WIN32;NDEBUG;_MT;_CONSOLE;_CRT_SECURE_NO_WARNINGS"
StringPooling="false"
ExceptionHandling="2"
RuntimeLibrary="0"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"

View File

@ -155,6 +155,7 @@
AdditionalIncludeDirectories=".;../;../api;../lib;../samples/image_libs;../samples/jpeglib;../samples/glut"
PreprocessorDefinitions="WIN32;NDEBUG;_MT;_CONSOLE;_CRT_SECURE_NO_WARNINGS"
StringPooling="false"
ExceptionHandling="2"
RuntimeLibrary="0"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"