Просмотр исходного кода

reporter: Add report class for filesystem access logs

Zach Hilman 7 лет назад
Родитель
Сommit
554e2f2f98
2 измененных файлов с 25 добавлено и 0 удалено
  1. 18 0
      src/core/reporter.cpp
  2. 7 0
      src/core/reporter.h

+ 18 - 0
src/core/reporter.cpp

@@ -335,6 +335,24 @@ void Reporter::SaveErrorReport(u64 title_id, ResultCode result,
     SaveToFile(std::move(out), GetPath("error_report", title_id, timestamp));
 }
 
+void Reporter::SaveFilesystemAccessReport(Service::FileSystem::LogMode log_mode,
+                                          std::string log_message) const {
+    if (!IsReportingEnabled())
+        return;
+
+    const auto timestamp = GetTimestamp();
+    const auto title_id = system.CurrentProcess()->GetTitleID();
+    json out;
+
+    out["yuzu_version"] = GetYuzuVersionData();
+    out["report_common"] = GetReportCommonData(title_id, RESULT_SUCCESS, timestamp);
+
+    out["log_mode"] = fmt::format("{:08X}", static_cast<u32>(log_mode));
+    out["log_message"] = std::move(log_message);
+
+    SaveToFile(std::move(out), GetPath("filesystem_access_report", title_id, timestamp));
+}
+
 void Reporter::SaveUserReport() const {
     if (!IsReportingEnabled())
         return;

+ 7 - 0
src/core/reporter.h

@@ -14,6 +14,10 @@ namespace Kernel {
 class HLERequestContext;
 } // namespace Kernel
 
+namespace Service::FileSystem {
+enum class LogMode : u32;
+}
+
 namespace Core {
 
 class Reporter {
@@ -45,6 +49,9 @@ public:
                          std::optional<std::string> custom_text_main = {},
                          std::optional<std::string> custom_text_detail = {}) const;
 
+    void SaveFilesystemAccessReport(Service::FileSystem::LogMode log_mode,
+                                    std::string log_message) const;
+
     void SaveUserReport() const;
 
 private: