diff options
| author | Zach Hilman <zachhilman@gmail.com> | 2019-05-17 21:47:47 -0400 | 
|---|---|---|
| committer | Zach Hilman <zachhilman@gmail.com> | 2019-05-25 16:09:20 -0400 | 
| commit | 24392c8ec83b1b3f0b90bc80f37466c9a853f63d (patch) | |
| tree | 53f2f13b285a868361dd13c5b840c4e788dbc2e8 /src/core/hle | |
| parent | bdc47693f154ffe41f16a452f65d9bd609a72683 (diff) | |
applets/error: Save report on error applet
This matches official behavior with the erpt/eclct/eupld service chain.
Diffstat (limited to 'src/core/hle')
| -rw-r--r-- | src/core/hle/service/am/applets/error.cpp | 19 | 
1 files changed, 14 insertions, 5 deletions
| diff --git a/src/core/hle/service/am/applets/error.cpp b/src/core/hle/service/am/applets/error.cpp index 04774bedc..af3a900f8 100644 --- a/src/core/hle/service/am/applets/error.cpp +++ b/src/core/hle/service/am/applets/error.cpp @@ -9,8 +9,10 @@  #include "common/string_util.h"  #include "core/core.h"  #include "core/frontend/applets/error.h" +#include "core/hle/kernel/process.h"  #include "core/hle/service/am/am.h"  #include "core/hle/service/am/applets/error.h" +#include "core/reporter.h"  namespace Service::AM::Applets { @@ -143,9 +145,12 @@ void Error::Execute() {      }      const auto callback = [this] { DisplayCompleted(); }; +    const auto title_id = Core::CurrentProcess()->GetTitleID(); +    const auto& reporter{Core::System::GetInstance().GetReporter()};      switch (mode) {      case ErrorAppletMode::ShowError: +        reporter.SaveErrorReport(title_id, error_code);          frontend.ShowError(error_code, callback);          break;      case ErrorAppletMode::ShowSystemError: @@ -156,14 +161,18 @@ void Error::Execute() {          const auto& detail_text =              system ? args->system_error.detail_text : args->application_error.detail_text; -        frontend.ShowCustomErrorText( -            error_code, -            Common::StringFromFixedZeroTerminatedBuffer(main_text.data(), main_text.size()), -            Common::StringFromFixedZeroTerminatedBuffer(detail_text.data(), detail_text.size()), -            callback); +        const auto main_text_string = +            Common::StringFromFixedZeroTerminatedBuffer(main_text.data(), main_text.size()); +        const auto detail_text_string = +            Common::StringFromFixedZeroTerminatedBuffer(detail_text.data(), detail_text.size()); + +        reporter.SaveErrorReport(title_id, error_code, main_text_string, detail_text_string); +        frontend.ShowCustomErrorText(error_code, main_text_string, detail_text_string, callback);          break;      }      case ErrorAppletMode::ShowErrorRecord: +        reporter.SaveErrorReport(title_id, error_code, +                                 fmt::format("{:016X}", args->error_record.posix_time));          frontend.ShowErrorWithTimestamp(              error_code, std::chrono::seconds{args->error_record.posix_time}, callback);          break; | 
