- DIAG: Policy change: Only include the BOINC symbol store for BOINC

binaries.  The old policy was kept around as a backwards compatibility
        thing before a new flag was added to the diagnostics to identify
        project applications.
        
    lib/
        stackwalker_win.cpp

svn path=/trunk/boinc/; revision=18339
This commit is contained in:
Rom Walton 2009-06-09 17:30:39 +00:00
parent cbdf4daaee
commit 09a2564058
2 changed files with 48 additions and 37 deletions

View File

@ -5196,3 +5196,12 @@ Charlie 8 June 2009
clientgui/ clientgui/
AsyncRPC.cpp, .h AsyncRPC.cpp, .h
MainDocument.cpp. .h MainDocument.cpp. .h
Rom 9 June 2009
- DIAG: Policy change: Only include the BOINC symbol store for BOINC
binaries. The old policy was kept around as a backwards compatibility
thing before a new flag was added to the diagnostics to identify
project applications.
lib/
stackwalker_win.cpp

View File

@ -582,45 +582,47 @@ int DebuggerInitialize( LPCSTR pszBOINCLocation, LPCSTR pszSymbolStore, BOOL bPr
strSymbolSearchPath += tt + std::string( ";" ); strSymbolSearchPath += tt + std::string( ";" );
} }
if (!diagnostics_is_flag_set(BOINC_DIAG_BOINCAPPLICATION) || // Depending on if we are a BOINC application or a project application
(diagnostics_is_flag_set(BOINC_DIAG_BOINCAPPLICATION) || (0 < strlen(pszSymbolStore)))) // we'll need to store our symbol files in two different locations.
{ //
// Depending on if we are a BOINC application or a project application // BOINC:
// we'll need to store our symbol files in two different locations. // [DATADIR]\symbols
// // Project:
// BOINC: // [DATADIR]\projects\project_dir\symbols
// [DATADIR]\symbols //
// Project: if (!diagnostics_is_flag_set(BOINC_DIAG_BOINCAPPLICATION)) {
// [DATADIR]\projects\project_dir\symbols strLocalSymbolStore += strCurrentDirectory + std::string("\\symbols");
// } else {
if (!diagnostics_is_flag_set(BOINC_DIAG_BOINCAPPLICATION)) { strLocalSymbolStore += strExecutableDirectory + std::string("\\symbols");
strLocalSymbolStore += strCurrentDirectory + std::string("\\symbols");
} else {
strLocalSymbolStore += strExecutableDirectory + std::string("\\symbols");
}
// Microsoft Public Symbol Server
if (std::string::npos == strSymbolSearchPath.find("http://msdl.microsoft.com/download/symbols")) {
strSymbolSearchPath +=
std::string( "srv*" ) + strLocalSymbolStore +
std::string( "*http://msdl.microsoft.com/download/symbols;" );
}
// Project Symbol Server
if ((std::string::npos == strSymbolSearchPath.find(pszSymbolStore)) && (0 < strlen(pszSymbolStore))) {
strSymbolSearchPath +=
std::string( "srv*" ) + strLocalSymbolStore + std::string( "*" ) +
std::string( pszSymbolStore ) + std::string( ";" );
}
// BOINC Symbol Server
if (std::string::npos == strSymbolSearchPath.find("http://boinc.berkeley.edu/symstore")) {
strSymbolSearchPath +=
std::string( "srv*" ) + strLocalSymbolStore +
std::string( "*http://boinc.berkeley.edu/symstore;" );
}
} }
// Microsoft Public Symbol Server
if (!diagnostics_is_flag_set(BOINC_DIAG_BOINCAPPLICATION) || (0 < strlen(pszSymbolStore)) {
if (std::string::npos == strSymbolSearchPath.find("http://msdl.microsoft.com/download/symbols")) {
strSymbolSearchPath +=
std::string( "srv*" ) + strLocalSymbolStore +
std::string( "*http://msdl.microsoft.com/download/symbols;" );
}
}
// Project Symbol Server
if (diagnostics_is_flag_set(BOINC_DIAG_BOINCAPPLICATION) && (0 < strlen(pszSymbolStore)) {
if ((std::string::npos == strSymbolSearchPath.find(pszSymbolStore)) && (0 < strlen(pszSymbolStore))) {
strSymbolSearchPath +=
std::string( "srv*" ) + strLocalSymbolStore + std::string( "*" ) +
std::string( pszSymbolStore ) + std::string( ";" );
}
}
// BOINC Symbol Server
if (!diagnostics_is_flag_set(BOINC_DIAG_BOINCAPPLICATION)) {
if (std::string::npos == strSymbolSearchPath.find("http://boinc.berkeley.edu/symstore")) {
strSymbolSearchPath +=
std::string( "srv*" ) + strLocalSymbolStore +
std::string( "*http://boinc.berkeley.edu/symstore;" );
}
}
if ( strSymbolSearchPath.size() > 0 ) // if we added anything, we have a trailing semicolon if ( strSymbolSearchPath.size() > 0 ) // if we added anything, we have a trailing semicolon
strSymbolSearchPath = strSymbolSearchPath.substr( 0, strSymbolSearchPath.size() - 1 ); strSymbolSearchPath = strSymbolSearchPath.substr( 0, strSymbolSearchPath.size() - 1 );