diff options
| author | lizzie <lizzie@eden-emu.dev> | 2025-11-03 21:07:30 +0100 |
|---|---|---|
| committer | crueter <crueter@eden-emu.dev> | 2025-11-03 21:07:30 +0100 |
| commit | 8a7fe32a2c3a214739fc8f631e96c56b883d673a (patch) | |
| tree | 082784000ce317799aedba572163b3071b010fbe /src/common/assert.cpp | |
| parent | 4b0bcfb0f7d5187951afdca1b3f442cb6d925721 (diff) | |
[common] Do not expose platform specific Crash() macro that is only used ever once (#2909)
thing is only ever used once and its also platform specific... uh
Signed-off-by: lizzie <lizzie@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2909
Reviewed-by: crueter <crueter@eden-emu.dev>
Reviewed-by: Shinmegumi <shinmegumi@eden-emu.dev>
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
Reviewed-by: Caio Oliveira <caiooliveirafarias0@gmail.com>
Co-authored-by: lizzie <lizzie@eden-emu.dev>
Co-committed-by: lizzie <lizzie@eden-emu.dev>
Diffstat (limited to 'src/common/assert.cpp')
| -rw-r--r-- | src/common/assert.cpp | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/src/common/assert.cpp b/src/common/assert.cpp index e2c2cade3f..e6be671865 100644 --- a/src/common/assert.cpp +++ b/src/common/assert.cpp @@ -1,21 +1,35 @@ +// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project +// SPDX-License-Identifier: GPL-3.0-or-later // SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later #include "common/assert.h" #include "common/common_funcs.h" #include "common/logging/backend.h" - #include "common/settings.h" -void assert_fail_impl() { +#ifdef _MSC_VER +extern "C" { +__declspec(dllimport) void __stdcall DebugBreak(void); +} +#endif +void AssertFailSoftImpl() { if (Settings::values.use_debug_asserts) { Common::Log::Stop(); - Crash(); +#ifndef _MSC_VER +# if defined(ARCHITECTURE_x86_64) + __asm__ __volatile__("int $3"); +# elif defined(ARCHITECTURE_arm64) + __asm__ __volatile__("brk #0"); +# else + exit(1); +# endif +#else // POSIX ^^^ _MSC_VER vvv + DebugBreak(); +#endif } } - -[[noreturn]] void unreachable_impl() { +void AssertFatalImpl() { Common::Log::Stop(); - Crash(); - throw std::runtime_error("Unreachable code"); + std::abort(); } |
