mirror of
https://github.com/FirestormViewer/phoenix-firestorm.git
synced 2026-08-14 00:48:30 +00:00
@@ -285,7 +285,7 @@ public:
|
||||
|
||||
#ifdef LL_WINDOWS
|
||||
virtual bool reportCrashToBugsplat(void* pExcepInfo /*EXCEPTION_POINTERS*/) { return false; }
|
||||
virtual bool reportCustomToBugsplat(const std::string& desription) { return false; }
|
||||
virtual bool reportCustomToBugsplat(const std::string& description) { return false; }
|
||||
#endif
|
||||
|
||||
public:
|
||||
|
||||
@@ -191,6 +191,7 @@ void LLWatchdog::remove(LLWatchdogEntry* e)
|
||||
{
|
||||
lockThread();
|
||||
mSuspects.erase(e);
|
||||
mFrozeList.erase(e);
|
||||
unlockThread();
|
||||
}
|
||||
|
||||
@@ -284,8 +285,9 @@ void LLWatchdog::run()
|
||||
// Sets watchdog marker file
|
||||
mCreateMarkerFnc(false);
|
||||
// If it's mainloop and it somehow recovers, it will re-add itself
|
||||
mSuspects.erase(*result);
|
||||
mFrozeList.insert(*result);
|
||||
LLWatchdogEntry* froze_entry = *result;
|
||||
mSuspects.erase(result);
|
||||
mFrozeList.insert(froze_entry);
|
||||
LL_WARNS() << description << LL_ENDL;
|
||||
}
|
||||
else
|
||||
@@ -307,8 +309,9 @@ void LLWatchdog::run()
|
||||
mCreateMarkerFnc(false);
|
||||
// Already reported, don't report again.
|
||||
// If it's mainloop and it somehow recovers, it will re-add itself
|
||||
LLWatchdogEntry* froze_entry = *result;
|
||||
mSuspects.erase(result);
|
||||
mFrozeList.insert(*result);
|
||||
mFrozeList.insert(froze_entry);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -119,7 +119,7 @@ namespace
|
||||
// MiniDmpSender pointer. As things stand, though, we must define an
|
||||
// actual function and store the pointer statically.
|
||||
static MiniDmpSender *sBugSplatSender = nullptr;
|
||||
static std::string sBugsplatDesriptionField;
|
||||
static std::string sBugsplatDescriptionField;
|
||||
|
||||
bool bugsplatSendLog(UINT nCode, LPVOID lpVal1, LPVOID lpVal2)
|
||||
{
|
||||
@@ -156,15 +156,15 @@ namespace
|
||||
WCSTR(gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, "settings_per_account.xml")));
|
||||
}
|
||||
|
||||
if (!sBugsplatDesriptionField.empty())
|
||||
if (!sBugsplatDescriptionField.empty())
|
||||
{
|
||||
// Can be set by watchdog or other code that detects a problem
|
||||
// and wants to add some context to the crash report.
|
||||
// Will be visible in the BugSplat web UI.
|
||||
sBugSplatSender->setDefaultUserDescription(WCSTR(LLError::getFatalMessage()));
|
||||
// This type of crash is not nessesarily a crash, or final.
|
||||
sBugSplatSender->setDefaultUserDescription(WCSTR(sBugsplatDescriptionField));
|
||||
// This type of crash is not necessarily a crash, or final.
|
||||
// Prepare for the next one.
|
||||
sBugsplatDesriptionField.clear();
|
||||
sBugsplatDescriptionField.clear();
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -878,7 +878,7 @@ bool LLAppViewerWin32::reportCustomToBugsplat(const std::string &description)
|
||||
#if defined(LL_BUGSPLAT)
|
||||
if (sBugSplatSender)
|
||||
{
|
||||
sBugsplatDesriptionField = description;
|
||||
sBugsplatDescriptionField = description;
|
||||
|
||||
__try
|
||||
{
|
||||
|
||||
@@ -44,7 +44,7 @@ public:
|
||||
bool cleanup() override;
|
||||
|
||||
bool reportCrashToBugsplat(void* pExcepInfo) override;
|
||||
bool reportCustomToBugsplat(const std::string& desription) override;
|
||||
bool reportCustomToBugsplat(const std::string& description) override;
|
||||
|
||||
protected:
|
||||
bool initWindow() override; // Override to initialize the viewer's window.
|
||||
|
||||
Reference in New Issue
Block a user