summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNat Goodspeed <nat@lindenlab.com>2018-06-28 12:39:42 -0400
committerNat Goodspeed <nat@lindenlab.com>2018-06-28 12:39:42 -0400
commitf6e7893a6e34190e8080d289a5f89d7f9c47d583 (patch)
treeaa509218b6fa486a6f41101703e7796b2ed5e8ad
parente766d9e697eae29b3f82106603843efbeb7aa01b (diff)
MAINT-8797: Resurrect BugSplat crash reporting on Windows.
The Breakpad symbol-file upload in the viewer's build.sh was failing on BugSplat builds since we weren't generating Breakpad symbol files. That upload was conditional on RELEASE_CRASH_REPORTING, so my first approach was to set RELEASE_CRASH_REPORTING=OFF for BugSplat builds. Unfortunately that symbol also propagates down into C++ compiles, and in llappviewerwin32.cpp, both Breakpad and BugSplat crash reporting is conditional on it. So that change inadvertently turned off the C++ logic to engage BugSplat. Stop forcing RELEASE_CRASH_REPORTING=OFF for BugSplat builds. Instead, make the Breakpad symbol-file upload check the BUGSPLAT_DB variable as well. Add #pragma messages to llappviewerwin32.cpp so we can detect whether it's being built for Breakpad or BugSplat or neither.
-rwxr-xr-xbuild.sh6
-rw-r--r--indra/newview/llappviewerwin32.cpp6
2 files changed, 7 insertions, 5 deletions
diff --git a/build.sh b/build.sh
index 56ec57818c..d531c0b046 100755
--- a/build.sh
+++ b/build.sh
@@ -114,8 +114,6 @@ pre_build()
if [ -n "${BUGSPLAT_DB:-}" ]
then echo export BUGSPLAT_DB
export BUGSPLAT_DB
- echo RELEASE_CRASH_REPORTING=OFF
- RELEASE_CRASH_REPORTING=OFF
fi
fi
set -x
@@ -428,7 +426,9 @@ then
if [ "$last_built_variant" = "Release" ]
then
# nat 2016-12-22: without RELEASE_CRASH_REPORTING, we have no symbol file.
- if [ "${RELEASE_CRASH_REPORTING:-}" != "OFF" ]
+ # Likewise, BUGSPLAT_DB suppresses generating the symbol file.
+ if [ "${RELEASE_CRASH_REPORTING:-}" != "OFF" \
+ -a -z "${BUGSPLAT_DB:-}" ]
then
# Upload crash reporter file
# These names must match the set of VIEWER_SYMBOL_FILE in indra/newview/CMakeLists.txt
diff --git a/indra/newview/llappviewerwin32.cpp b/indra/newview/llappviewerwin32.cpp
index 3efc94d7b5..247b94db3e 100644
--- a/indra/newview/llappviewerwin32.cpp
+++ b/indra/newview/llappviewerwin32.cpp
@@ -559,11 +559,13 @@ bool LLAppViewerWin32::init()
#if LL_SEND_CRASH_REPORTS
#if ! defined(LL_BUGSPLAT)
+#pragma message("Building without BugSplat")
LLAppViewer* pApp = LLAppViewer::instance();
pApp->initCrashReporting();
#else // LL_BUGSPLAT
+#pragma message("Building with BugSplat")
std::string build_data_fname(
gDirUtilp->getExpandedFilename(LL_PATH_EXECUTABLE, "build_data.json"));
@@ -579,7 +581,7 @@ bool LLAppViewerWin32::init()
Json::Value build_data;
if (! reader.parse(inf, build_data, false)) // don't collect comments
{
- // gah, the typo is baked into their API
+ // gah, the typo is baked into Json::Reader API
LL_WARNS() << "Can't initialize BugSplat, can't parse '" << build_data_fname
<< "': " << reader.getFormatedErrorMessages() << LL_ENDL;
}
@@ -609,7 +611,7 @@ bool LLAppViewerWin32::init()
// engage stringize() overload that converts from wstring
LL_INFOS() << "Engaged BugSplat(" << LL_TO_STRING(LL_VIEWER_CHANNEL)
- << stringize(version_string) << ')' << LL_ENDL;
+ << ' ' << stringize(version_string) << ')' << LL_ENDL;
} // got BugSplat_DB
} // parsed build_data.json
} // opened build_data.json