core\file_sys\archive_sdmc.cpp: Log error message if file failed to open. (#6284)

This commit is contained in:
SachinVin 2023-02-15 02:49:45 +05:30 committed by GitHub
parent 68162c29b4
commit 5215468ff6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 5 deletions

View File

@ -16,16 +16,19 @@
// Call directly after the command or use the error num.
// This function might change the error code.
std::string GetLastErrorMsg() {
static const std::size_t buff_size = 255;
constexpr std::size_t buff_size = 255;
char err_str[buff_size];
std::size_t msg_len;
#ifdef _WIN32
msg_len =
FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM, nullptr, GetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), err_str, buff_size, nullptr);
#else
// Thread safe (XSI-compliant)
strerror_r(errno, err_str, buff_size);
msg_len = strnlen(err_str, buff_size);
#endif
return std::string(err_str, buff_size);
return std::string(err_str, msg_len);
}

View File

@ -106,7 +106,7 @@ ResultVal<std::unique_ptr<FileBackend>> SDMCArchive::OpenFileBase(const Path& pa
FileUtil::IOFile file(full_path, mode.write_flag ? "r+b" : "rb");
if (!file.IsOpen()) {
LOG_CRITICAL(Service_FS, "(unreachable) Unknown error opening {}", full_path);
LOG_CRITICAL(Service_FS, "Error opening {}: {}", full_path, GetLastErrorMsg());
return ERROR_NOT_FOUND;
}