summaryrefslogtreecommitdiff
path: root/indra/llcrashlogger/llcrashlogger.h
AgeCommit message (Collapse)Author
2020-03-25DRTVWR-476: Use OpenSSL API suitable for 64-bit pointers.Nat Goodspeed
In three different places we use the same pattern: an ssl_thread_id_callback() function (a static member of LLCrashLogger, in that case) that used to be passed to CRYPTO_set_id_callback() and therefore returned an unsigned long representing the ID of the current thread. But GetCurrentThread() is a HANDLE, an alias for a pointer, and you can't uniquely cram a 64-bit pointer into an unsigned long. Fortunately OpenSSL has a more modern API for retrieving thread ID. Pass each ssl_thread_id_callback() function to CRYPTO_THREADID_set_callback() instead, converting it to accept CRYPTO_THREADID* and call CRYPTO_THREADID_set_pointer() or CRYPTO_THREADID_set_numeric() as appropriate().
2016-06-30DRTVWR-418: Unify control flow through LLAppViewer across platforms.Nat Goodspeed
The LLApp API used to consist of init(), mainLoop(), cleanup() methods. This makes sense -- but on Mac that structure was being subverted. The method called mainLoop() was in fact being called once per frame. There was initialization code in the method, which (on Mac) needed to be skipped with an already-initialized bool. There was a 'while' loop which (on Mac) needed to be turned into an 'if' instead so the method would return after every frame. Rename LLApp::mainLoop() to frame(). Propagate through subclasses LLAppViewer and LLCrashLogger. Document the fact that frame() returns true to mean "done." (This was always the case, but had to be inferred from the code.) Rename the Mac Objective-C function mainLoop to oneFrame. Rename the C++ free function it calls from runMainLoop() to pumpMainLoop(). Add comments to llappdelegate-objc.mm explaining (inferred) control flow. Change the Linux viewer main() and the Windows viewer WINMAIN() from a single LLAppViewer::mainLoop() call to repeatedly call frame() until it returns true. Move initialization code from the top of LLAppViewer::frame() to the init() method, where it more properly belongs. Remove corresponding mMainLoopInitialized flag (and all references) from LLAppViewer. Remove 'while (! LLApp::isExiting())' (or on Mac, 'if (! LLApp::isExiting())') from LLAppViewer::frame() -- thus unindenting the whole body of the 'while' and causing many lines of apparent change. (Apologies to reviewers.) There are four LLApp states: APP_STATUS_RUNNING, APP_STATUS_QUITTING, APP_STATUS_STOPPED and APP_STATUS_ERROR. Change LLAppViewer::frame() return value from (isExiting()) (QUITTING or ERROR) to (! isRunning()). I do not know under what circumstances the state might transition to STOPPED during a frame() call, but I'm quite sure that if it does, we don't want to call frame() again. We only want a subsequent call if the state is RUNNING. Also rename mainLoop() method in LLCrashLogger subclasses LLCrashLoggerWindows, LLCrashLoggerMac, LLCrashLoggerLinux. Of course it's completely up to the frame() method whether to yield control; none of those in fact do. Honor protocol by returning true (frame() is done), even though each one's main() caller ignores the return value. In fact LLCrashLoggerWindows::mainLoop() wasn't using the return protocol correctly anyway, returning wParam or 0 or 1 -- possibly because the return protocol was never explicitly documented. It should always return true: "I'm done, don't call me again."
2016-04-08merge changes for MAINT-5974Oz Linden
2016-04-04merge with 4.0.3-releaseOz Linden
2016-03-08maint-5974 / maint-5422: rip crash logger save behavior out of windows loggerGlenn Glazer
2016-03-08maint-5974/maint-5422: viewer changes for new crash reporting, remove no ↵Glenn Glazer
send logic
2015-11-10remove execute permission from many files that should not have itOz Linden
2015-09-16maint-5422 changes and merge from releaseGlenn Glazer
2015-04-30Crash logger changes to LLCore::HttpRider Linden
2014-04-07merge with releaseRichard Linden
2013-12-03Creating a cleaner branchAura Linden
2013-07-30Summer cleaning - removed a lot of llcommon dependencies to speed up build timesRichard Linden
consolidated most indra-specific constants in llcommon under indra_constants.h fixed issues with operations on mixed unit types (implicit and explicit) made LL_INFOS() style macros variadic in order to subsume other logging methods such as ll_infos added optional tag output to error recorders
2013-03-29Update Mac and Windows breakpad builds to latestGraham Madarasz
2011-11-15mergeDave Parks
2011-10-27SH-2606 FIX, SH-2628 FIX - crash on exit in crash logger fixed by ↵Brad Payne (Vir Linden)
LLProxy::cleanupClass()
2011-07-12STORM-1482 The Viewer shouldn't overwrite the crash behavior settings, some ↵Aaron Stone
cleanups to the crash reporters, and the ability to use --set GroupName.SettingName to set parameters outside of the (default) Global settings group.
2010-08-13Change license from GPL to LGPL (version 2.1)Oz Linden
2009-01-08Result of svn merge -r107256:107258 ↵Aaron Brashears
svn+ssh://svn/svn/user/phoenix/license_2009_merge into trunk. QAR-1165
2008-06-26QAR-628 merge string-cleanup-5 -r 90476:90508 -> releaseSteven Bennetts
dataserver-is-deprecated
2008-04-031.19.1 Viewer merge: QAR_367, QAR-374, QAR-408, QAR-426Steven Bennetts
QAR_367 (RC1) - merge Branch_1-19-1-Viewer -r 81609 : 81993 -> release QAR-374 (RC2) - merge Branch_1-19-1-Viewer -r 81993 : 82589 -> release QAR-408 (RC3) - merge Branch_1-19-1-Viewer -r 82589 : 83128 -> release QAR-426 (rc4) - merge Branch_1-19-1-Viewer -r 83125 : 83719 -> release (Actual merge: release@83793 Branch_1-19-1-Viewer-merge@83953 -> release)
2008-01-03svn merge -r76651:76807 ↵Josh Bell
svn+ssh://svn.lindenlab.com/svn/linden/branches/Branch_1-18-6-Viewer --> release Pick up fixes for: * DEV-7598 VWR-3829: Cursor in Logon edit boxes difficult to see * DEV-8125 Language names need to have a consistent format in preferences drop-down * DEV-8099 SVC-1125: New Search: Beacons aren't shown when teleporting to regions with "Allow Direct Teleport" disabled * DEV-8107 Crash when connecting to older sims in llviewerparcelmgr age verification code * DEV-8130 Remove "Alternate Server" option from crash reporter since util.* no longer have public interfaces * DEV-7372 VWR-3748: Builds fail on 1.18.6 RC if not using MOZLIB due to missing #if LL_LIBXUL_ENABLED in 3 places in indra/newview/llpanellogin.cpp Plus corrected line endings for llcrashlogger.* (there's one actual change in those files, the rest is whitespace)
2007-11-20svn merge -r74104:74124 ↵Kyle Machulis
svn+ssh://svn/svn/linden/branches/crash-logger-cleanup-merge-6