Actual exception handler
| 131 | /// Actual exception handler |
| 132 | /// </summary> |
| 133 | void DumpHandler::ExceptionHandler() |
| 134 | { |
| 135 | std::wstring strFullDump, strMiniDump; |
| 136 | |
| 137 | int dumpFlags = MiniDumpWithIndirectlyReferencedMemory | |
| 138 | MiniDumpWithDataSegs | |
| 139 | MiniDumpWithHandleData | |
| 140 | MiniDumpWithFullMemory; |
| 141 | |
| 142 | GenDumpFilenames( strFullDump, strMiniDump ); |
| 143 | |
| 144 | // Create full memory dump |
| 145 | if (_flags & CreateFullDump) |
| 146 | CreateDump( strFullDump, dumpFlags ); |
| 147 | |
| 148 | // Create mini dump |
| 149 | if (_flags & CreateMinidump) |
| 150 | CreateDump( strMiniDump, MiniDumpNormal ); |
| 151 | |
| 152 | // Call user routine |
| 153 | if (_pDumpProc) |
| 154 | _pDumpProc( strFullDump.c_str(), _pUserContext, _ExceptionInfo, true ); |
| 155 | |
| 156 | // Prevent dtor deadlock |
| 157 | _hWatchThd = NULL; |
| 158 | ExitProcess( 0x1337 ); |
| 159 | } |
| 160 | |
| 161 | /// <summary> |
| 162 | /// Write crash dump |