Posix/Linux: Add setting to disable coredumps

This commit is contained in:
goeiecool9999 2022-09-27 13:58:50 +02:00 committed by GitHub
parent 35afb99c99
commit 6ecc4be0da
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 102 additions and 22 deletions

View file

@ -316,7 +316,11 @@ void CemuConfig::Load(XMLConfigParser& parser)
// debug
auto debug = parser.get("Debug");
crash_dump = debug.get("CrashDump", crash_dump);
#if BOOST_OS_WINDOWS
crash_dump = debug.get("CrashDumpWindows", crash_dump);
#elif BOOST_OS_UNIX
crash_dump = debug.get("CrashDumpUnix", crash_dump);
#endif
// input
auto input = parser.get("Input");
@ -487,7 +491,11 @@ void CemuConfig::Save(XMLConfigParser& parser)
// debug
auto debug = config.set("Debug");
debug.set("CrashDump", crash_dump.GetValue());
#if BOOST_OS_WINDOWS
debug.set("CrashDumpWindows", crash_dump.GetValue());
#elif BOOST_OS_UNIX
debug.set("CrashDumpUnix", crash_dump.GetValue());
#endif
// input
auto input = config.set("Input");

View file

@ -172,6 +172,7 @@ enum class CafeConsoleLanguage
};
ENABLE_ENUM_ITERATORS(CafeConsoleLanguage, CafeConsoleLanguage::JA, CafeConsoleLanguage::TW);
#if BOOST_OS_WINDOWS
enum class CrashDump
{
Disabled,
@ -179,6 +180,14 @@ enum class CrashDump
Full
};
ENABLE_ENUM_ITERATORS(CrashDump, CrashDump::Disabled, CrashDump::Full);
#elif BOOST_OS_UNIX
enum class CrashDump
{
Disabled,
Enabled
};
ENABLE_ENUM_ITERATORS(CrashDump, CrashDump::Disabled, CrashDump::Enabled);
#endif
template <>
struct fmt::formatter<PrecompiledShaderOption> : formatter<string_view> {
@ -290,6 +299,7 @@ struct fmt::formatter<CafeConsoleLanguage> : formatter<string_view> {
}
};
#if BOOST_OS_WINDOWS
template <>
struct fmt::formatter<CrashDump> : formatter<string_view> {
template <typename FormatContext>
@ -306,6 +316,23 @@ struct fmt::formatter<CrashDump> : formatter<string_view> {
return formatter<string_view>::format(name, ctx);
}
};
#elif BOOST_OS_UNIX
template <>
struct fmt::formatter<CrashDump> : formatter<string_view> {
template <typename FormatContext>
auto format(const CrashDump v, FormatContext &ctx) {
string_view name;
switch (v)
{
case CrashDump::Disabled: name = "Disabled"; break;
case CrashDump::Enabled: name = "Enabled"; break;
default: name = "unknown"; break;
}
return formatter<string_view>::format(name, ctx);
}
};
#endif
struct CemuConfig