Changeset 166 for Evidence/Evidence.cc
- Timestamp:
- 02/09/10 08:01:07 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Evidence/Evidence.cc
r165 r166 199 199 abort(); 200 200 } 201 else { 202 Terminating = true; 203 204 // Make sure there was an exception; terminate is also called for an 205 // attempt to rethrow when there is no suitable exception. 206 type_info *Type = abi::__cxa_current_exception_type(); 207 if (Type != NULL) { 208 int Status = -1; 209 char *Demangled = NULL; 210 211 Demangled = abi::__cxa_demangle(Type->name(), 0, 0, &Status); 212 snprintf(Msg, sizeof(Msg), "%s: Terminate() called after throwing an instance of '%s'", ThisServer->Status->getName(), Status==0 ? Demangled : Type->name()); 213 free(Demangled); 214 215 // If exception derived from std::exception, more information. 216 try { __throw_exception_again; } 217 catch (exception &E) { 218 snprintf(Msg+strlen(Msg), sizeof(Msg)-strlen(Msg), " (what(): %s)", E.what()); 219 } 220 catch (...) { } 201 202 Terminating = true; 203 204 // Make sure there was an exception; terminate is also called for an 205 // attempt to rethrow when there is no suitable exception. 206 type_info *Type = abi::__cxa_current_exception_type(); 207 if (Type != NULL) { 208 int Status = -1; 209 char *Demangled = NULL; 210 211 Demangled = abi::__cxa_demangle(Type->name(), 0, 0, &Status); 212 snprintf(Msg, sizeof(Msg), "Terminate() called after throwing an instance of '%s'", Status==0 ? Demangled : Type->name()); 213 free(Demangled); 214 215 // If exception derived from std::exception, more information. 216 try { __throw_exception_again; } 217 catch (exception &E) { 218 snprintf(Msg+strlen(Msg), sizeof(Msg)-strlen(Msg), " (what(): %s)", E.what()); 221 219 } 222 else snprintf(Msg, sizeof(Msg), "%s: Terminate() called without an active exception", ThisServer->Status->getName()); 223 } 220 catch (...) { } 221 } 222 else snprintf(Msg, sizeof(Msg), "Terminate() called without an active exception"); 224 223 225 224 ThisServer->State(FATAL, Msg);
Note:
See TracChangeset
for help on using the changeset viewer.