dolphin/Source/Core/Core
Martino Fontana bd3cf67cbc Debugger: Rework temporary breakpoints
Before:
1. In theory there could be multiple, but in practice they were (manually) cleared before creating one
2. (Some of) the conditions to clear one were either to reach it, to create a new one (due to the point above), or to step. This created weird behavior: let's say you Step Over a `bl` (thus creating a temporary breakpoint on `pc+4`), and you reached a regular breakpoint inside the `bl`. The temporary one would still be there: if you resumed, the emulation would still stop there, as a sort of Step Out. But, if before resuming, you made a Step, then it wouldn't do that.
3. The breakpoint widget had no idea concept of them, and will treat them as regular breakpoints. Also, they'll be shown only when the widget is updated in some other way, leading to more confusion.
4. Because only one breakpoint could exist per address, the creation of a temporary breakpoint on a top of a regular one would delete it and inherit its properties (e.g. being log-only). This could happen, for instance, if you Stepped Over a `bl` specifically, and pc+4 had a regular breakpoint.

Now there can only be one temporary breakpoint, which is automatically cleared whenever emulation is paused. So, removing some manual clearing from 1., and removing the weird behavior of 2. As it is stored in a separate variable, it won't be seen at all depending on the function used (fixing 3., and removing some checks in other places), and it won't replace a regular breakpoint, instead simply having priority (fixing 4.).
2024-07-05 21:33:22 +02:00
..
Boot Use a stub AchivementManager when USE_RETRO_ACHIEVEMENTS isn't defined 2024-06-06 08:26:20 +02:00
Config Use a stub AchivementManager when USE_RETRO_ACHIEVEMENTS isn't defined 2024-06-06 08:26:20 +02:00
ConfigLoaders Revert "Audit uses of IsRunning and GetState" 2024-06-26 20:36:46 +02:00
Debugger Debugger: Rework temporary breakpoints 2024-07-05 21:33:22 +02:00
DSP DSPJitRegCache: Take DynamicReg instances by reference in FlushRegs() 2024-02-28 10:27:35 -05:00
FifoPlayer Debugger: Small other cleanup 2024-07-02 18:29:42 +02:00
HLE Replace Common::BitCast with std::bit_cast 2024-05-03 18:43:51 -07:00
HW Debugger: Rework temporary breakpoints 2024-07-05 21:33:22 +02:00
IOS IOS/USB: Use Enum for Infinity Base Positions 2024-06-27 20:57:27 +01:00
PowerPC Debugger: Rework temporary breakpoints 2024-07-05 21:33:22 +02:00
AchievementManager.cpp Merge pull request #12904 from LillyJadeKatrin/retroachievements-challenge-popups 2024-07-01 14:35:15 -04:00
AchievementManager.h AchievementManager: Fix -Wignored-qualifiers warning 2024-06-27 14:36:14 -07:00
ActionReplay.cpp Replace Common::BitCast with std::bit_cast 2024-05-03 18:43:51 -07:00
ActionReplay.h
ARDecrypt.cpp
ARDecrypt.h
BootManager.cpp Use a stub AchivementManager when USE_RETRO_ACHIEVEMENTS isn't defined 2024-06-06 08:26:20 +02:00
BootManager.h BootManager: Avoid Global System Accessor 2024-03-01 23:39:04 -08:00
CheatCodes.h
CheatGeneration.cpp
CheatGeneration.h
CheatSearch.cpp Use a stub AchivementManager when USE_RETRO_ACHIEVEMENTS isn't defined 2024-06-06 08:26:20 +02:00
CheatSearch.h Use a stub AchivementManager when USE_RETRO_ACHIEVEMENTS isn't defined 2024-06-06 08:26:20 +02:00
CMakeLists.txt CMake: Make the rcheevos dependency public 2024-06-15 23:12:19 +02:00
CommonTitles.h
ConfigManager.cpp Core: Store current state in less places 2024-06-21 20:46:44 +02:00
ConfigManager.h Core/ConfigManager: Remove dead bAutomaticStart flag. 2024-01-31 22:53:43 +01:00
Core.cpp Debugger: Small other cleanup 2024-07-02 18:29:42 +02:00
Core.h Revert "Audit uses of IsRunning and GetState" 2024-06-26 20:36:46 +02:00
CoreTiming.cpp Use a stub AchivementManager when USE_RETRO_ACHIEVEMENTS isn't defined 2024-06-06 08:26:20 +02:00
CoreTiming.h
CPUThreadConfigCallback.cpp CPUThreadConfigCallback: Mark static ID as [[maybe_unused]] 2023-12-12 17:30:37 -05:00
CPUThreadConfigCallback.h
DolphinAnalytics.cpp Fix out of bounds accesses for invalid vertex component formats 2024-04-04 12:50:34 -07:00
DolphinAnalytics.h Merge pull request #12537 from TellowKrinkle/MTLSubgroup 2024-05-21 22:17:22 +02:00
DSPEmulator.cpp Core/DSPHLE: Store reference to System in DSPHLE instances. 2024-01-08 10:23:28 +01:00
DSPEmulator.h Core/DSPHLE: Store reference to System in DSPHLE instances. 2024-01-08 10:23:28 +01:00
FreeLookConfig.cpp Use a stub AchivementManager when USE_RETRO_ACHIEVEMENTS isn't defined 2024-06-06 08:26:20 +02:00
FreeLookConfig.h
FreeLookManager.cpp InputCommon: Use distinct values for profile key 2024-02-04 17:55:08 +01:00
FreeLookManager.h
GeckoCode.cpp PPCCache: Avoid Global System Accessor 2024-04-08 19:49:57 -07:00
GeckoCode.h
GeckoCodeConfig.cpp GeckoCodeConfig: Make use of std::erase_if 2023-12-12 13:26:16 -05:00
GeckoCodeConfig.h
Host.h TAS Input: Enable hotkeys and controller input when Input has focus 2024-05-31 15:14:44 -07:00
HotkeyManager.cpp InputCommon: Use distinct values for profile key 2024-02-04 17:55:08 +01:00
HotkeyManager.h
LibusbUtils.cpp
LibusbUtils.h
MachineContext.h Add OpenBSD/arm64 support. 2024-05-22 14:32:37 -04:00
MemoryWatcher.cpp
MemoryWatcher.h
MemTools.cpp
MemTools.h
Movie.cpp Core: Store current state in less places 2024-06-21 20:46:44 +02:00
Movie.h Movie: Mark getters as const 2024-01-23 15:15:13 -05:00
NetPlayClient.cpp Core/Movie: Refactor to class, move to System. 2024-01-15 08:05:30 +01:00
NetPlayClient.h
NetPlayCommon.cpp
NetPlayCommon.h
NetPlayProto.h
NetPlayServer.cpp Core/NetPlayServer: Use fmt::format_to_n in GetInterfaceHost() 2023-12-18 13:08:57 -05:00
NetPlayServer.h
NetworkCaptureLogger.cpp
NetworkCaptureLogger.h
PatchEngine.cpp Core/PatchEngine: Remove remnants of Speedhack system 2024-06-28 17:57:53 +02:00
PatchEngine.h Core/PatchEngine: Remove remnants of Speedhack system 2024-06-28 17:57:53 +02:00
State.cpp Core: Store current state in less places 2024-06-21 20:46:44 +02:00
State.h State: Avoid Global System Accessor 2024-03-01 10:52:50 -08:00
SyncIdentifier.h Core/SyncIdentifier: Default operator== 2023-12-11 19:39:55 -05:00
SysConf.cpp SysConf: std::move fs pointer in constructor 2023-12-14 14:01:17 -05:00
SysConf.h
System.cpp PPCSymbolDB: Move instance to PowerPCManager 2024-03-13 22:58:14 -07:00
System.h PPCSymbolDB: Move instance to PowerPCManager 2024-03-13 22:58:14 -07:00
TitleDatabase.cpp
TitleDatabase.h
WC24PatchEngine.cpp WC24PatchEngine: Make GetNetworkPatch() take a std::string_view 2023-12-14 14:24:49 -05:00
WC24PatchEngine.h WC24PatchEngine: Make GetNetworkPatch() take a std::string_view 2023-12-14 14:24:49 -05:00
WiiRoot.cpp Core: Move Emulation IOS instance to System. 2024-02-07 22:07:30 +01:00
WiiRoot.h
WiiUtils.cpp Core: Move Emulation IOS instance to System. 2024-02-07 22:07:30 +01:00
WiiUtils.h