summaryrefslogtreecommitdiff
path: root/indra/newview/llappviewermacosx.cpp
diff options
context:
space:
mode:
authorJonathan "Geenz" Goodman <geenz@geenzo.com>2025-03-11 22:44:49 -0400
committerJonathan "Geenz" Goodman <geenz@geenzo.com>2025-03-11 22:44:49 -0400
commite0d14e02e152b4e75ff8bdd974677f9669163d68 (patch)
tree3379d14c9c5d8c188d2fb716e61edd09fc1219a9 /indra/newview/llappviewermacosx.cpp
parent179b29252d8bb28e11686a1852c8e8ffcd98ecc0 (diff)
parentb50ad90febda24d2296541f46ea1a129232aad70 (diff)
Merge branch 'release/2025.03' into rye/forevermac
Diffstat (limited to 'indra/newview/llappviewermacosx.cpp')
-rw-r--r--indra/newview/llappviewermacosx.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/indra/newview/llappviewermacosx.cpp b/indra/newview/llappviewermacosx.cpp
index f497a3cdf3..b074c40c17 100644
--- a/indra/newview/llappviewermacosx.cpp
+++ b/indra/newview/llappviewermacosx.cpp
@@ -172,6 +172,8 @@ CrashMetadataSingleton::CrashMetadataSingleton()
// Note: we depend on being able to read the static_debug_info.log file
// from the *previous* run before we overwrite it with the new one for
// *this* run. LLAppViewer initialization must happen in the Right Order.
+
+ // Todo: consider converting static file into bugspalt attributes file
staticDebugPathname = *gViewerAppPtr->getStaticDebugFile();
std::ifstream static_file(staticDebugPathname);
LLSD info;
@@ -215,7 +217,32 @@ CrashMetadataSingleton::CrashMetadataSingleton()
}
}
}
+
+ // Populate bugsplat attributes
+ LLXMLNodePtr out_node = new LLXMLNode("XmlCrashContext", false);
+
+ out_node->createChild("OS", false)->setValue(OSInfo);
+ out_node->createChild("AppState", false)->setValue(info["StartupState"].asString());
+ out_node->createChild("GraphicsCard", false)->setValue(info["GraphicsCard"].asString());
+ out_node->createChild("GLVersion", false)->setValue(info["GLInfo"]["GLVersion"].asString());
+ out_node->createChild("GLRenderer", false)->setValue(info["GLInfo"]["GLRenderer"].asString());
+ out_node->createChild("RAM", false)->setValue(info["RAMInfo"]["Physical"].asString());
+
+ if (!out_node->isNull())
+ {
+ attributesPathname = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, "CrashContext.xml");
+ LLFILE* fp = LLFile::fopen(attributesPathname, "w");
+
+ if (fp != NULL)
+ {
+ LLXMLNode::writeHeaderToFile(fp);
+ out_node->writeToFile(fp);
+
+ fclose(fp);
+ }
+ }
}
+ // else Todo: consider fillig at least some values, like OS
}
// Avoid having to compile all of our LLSingleton machinery in Objective-C++.