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 Common/IniFile: Move interface into Common namespace 2023-04-13 10:19:28 -04:00
ARDecrypt.cpp Replace BitUtils with C++20: RotateLeft/RotateRight 2022-12-11 08:59:18 +01:00
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 Common/IniFile: Move interface into Common namespace 2023-04-13 10:19:28 -04:00
CheatGeneration.cpp Treewide: Adjust order of includes 2021-12-10 14:49:57 -08:00
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 Add Everybody Votes Channel and Region Select to WiiLink config 2023-09-03 15:56:02 -04:00
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 Use structs for config callback IDs 2023-08-17 19:19:26 +02:00
CPUThreadConfigCallback.cpp CPUThreadConfigCallback: Mark static ID as [[maybe_unused]] 2023-12-12 17:30:37 -05:00
CPUThreadConfigCallback.h Use structs for config callback IDs 2023-08-17 19:19:26 +02:00
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 Android: Get profile name from core 2023-10-01 18:47:49 +02:00
GeckoCode.cpp PPCCache: Avoid Global System Accessor 2024-04-08 19:49:57 -07:00
GeckoCode.h DolphinQt: Properly lock CPU before accessing emulated memory 2023-02-12 11:27:50 +01:00
GeckoCodeConfig.cpp GeckoCodeConfig: Make use of std::erase_if 2023-12-12 13:26:16 -05:00
GeckoCodeConfig.h Common/IniFile: Move interface into Common namespace 2023-04-13 10:19:28 -04:00
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 Android: Get profile name from core 2023-10-01 18:47:49 +02:00
LibusbUtils.cpp Log warnings when LibusbUtils::MakeConfigDescriptor fails 2022-06-08 15:29:11 -07:00
LibusbUtils.h Log warnings when LibusbUtils::MakeConfigDescriptor fails 2022-06-08 15:29:11 -07:00
MachineContext.h Add OpenBSD/arm64 support. 2024-05-22 14:32:37 -04:00
MemoryWatcher.cpp PowerPC/MMU: Refactor to class, move to System. 2023-03-28 03:47:51 +02:00
MemoryWatcher.h DolphinQt: Properly lock CPU before accessing emulated memory 2023-02-12 11:27:50 +01:00
MemTools.cpp JitInterface: Refactor to class, move to System. 2023-03-26 14:38:07 +02:00
MemTools.h UnitTests: Skip PageFaultTest if exception handlers are not supported 2022-05-19 12:26:41 -07:00
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 Traversal: Notify user of TTL to be used 2023-05-20 17:15:10 +02:00
NetPlayCommon.cpp Core: Add missing header to NetPlayCommon.cpp 2021-12-15 18:57:10 +01:00
NetPlayCommon.h Updated PEER_TIMOUT in NetPlayCommon.h to use chrono literals; Updated NetPlayServer.cpp OnConnect() by putting commonly used code into named functions 2022-08-09 16:26:52 -06:00
NetPlayProto.h Traversal: Autoconfigure TTL to use for probe packet 2023-05-20 17:15:07 +02:00
NetPlayServer.cpp Core/NetPlayServer: Use fmt::format_to_n in GetInterfaceHost() 2023-12-18 13:08:57 -05:00
NetPlayServer.h Traversal: Notify user of TTL to be used 2023-05-20 17:15:10 +02:00
NetworkCaptureLogger.cpp BBA/HLE: Fix random PCAP file corruption 2023-11-23 22:07:44 +04:00
NetworkCaptureLogger.h BBA/HLE: Fix random PCAP file corruption 2023-11-23 22:07:44 +04:00
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 StripSpaces: only strip spaces 2022-07-25 18:40:12 -07:00
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 Qt: Add file size stats to NAND Check. 2023-07-14 05:24:29 +02:00