summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrey Kleshchev <117672381+akleshchev@users.noreply.github.com>2025-09-13 00:06:47 +0300
committerAndrey Kleshchev <117672381+akleshchev@users.noreply.github.com>2025-09-15 11:16:24 +0300
commit3b3c85d1f378fdc83c7f613d5ee269b5db0db125 (patch)
tree7822c70aa7dfc4b948b8b85cf9641ed34c60e4ac
parent8eb015666e0224574013d1338ddaf70a19355e5e (diff)
#4651 Try distinguishing freezes from crashes
-rw-r--r--indra/newview/llappviewer.cpp9
-rw-r--r--indra/newview/llappviewerwin32.cpp12
2 files changed, 20 insertions, 1 deletions
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index b36ed46a39..253c1268d3 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -3945,8 +3945,15 @@ void LLAppViewer::processMarkerFiles()
else if (marker_is_same_version)
{
// the file existed, is ours, and matched our version, so we can report on what it says
- LL_INFOS("MarkerFile") << "Exec marker '"<< mMarkerFileName << "' found; last exec crashed" << LL_ENDL;
+ LL_INFOS("MarkerFile") << "Exec marker '"<< mMarkerFileName << "' found; last exec crashed or froze" << LL_ENDL;
+#if LL_WINDOWS && LL_BUGSPLAT
+ // bugsplat will set correct state in bugsplatSendLog
+ // Might be more accurate to rename this one into 'unknown'
+ gLastExecEvent = LAST_EXEC_FROZE;
+#else
gLastExecEvent = LAST_EXEC_OTHER_CRASH;
+#endif // LL_WINDOWS
+
}
else
{
diff --git a/indra/newview/llappviewerwin32.cpp b/indra/newview/llappviewerwin32.cpp
index 8477bd3044..c29c9a4919 100644
--- a/indra/newview/llappviewerwin32.cpp
+++ b/indra/newview/llappviewerwin32.cpp
@@ -172,6 +172,18 @@ namespace
<< '/' << loc.mV[1]
<< '/' << loc.mV[2])));
}
+
+ if (!LLAppViewer::instance()->isSecondInstance())
+ {
+ std::string error_marker_file = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, ERROR_MARKER_FILE_NAME);
+ if (!LLAPRFile::isExist(error_marker_file, NULL, LL_APR_RB))
+ {
+ // If marker doesn't exist, create a marker with 'other' code for next launch
+ // otherwise don't override existing file
+ // Any unmarked crashes will be considered as freezes
+ LLAppViewer::instance()->createErrorMarker(LAST_EXEC_OTHER_CRASH);
+ }
+ }
} // MDSCB_EXCEPTIONCODE
return false;