dolphin/Source/Core/DolphinQt/Debugger
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
..
AssembleInstructionDialog.cpp Partially revert "DolphinQt/Assembler: improve translatability" 2024-01-20 14:46:41 +01:00
AssembleInstructionDialog.h Parser and Assembler implementations 2023-12-13 05:32:20 -08:00
AssemblerWidget.cpp Revert "Audit uses of IsRunning and GetState" 2024-06-26 20:36:46 +02:00
AssemblerWidget.h Parser and Assembler implementations 2023-12-13 05:32:20 -08:00
AssemblyEditor.cpp Parser and Assembler implementations 2023-12-13 05:32:20 -08:00
AssemblyEditor.h Parser and Assembler implementations 2023-12-13 05:32:20 -08:00
BranchWatchDialog.cpp Debugger: Rework temporary breakpoints 2024-07-05 21:33:22 +02:00
BranchWatchDialog.h Branch Watch Tool: Add Set Breakpoints Submenu 2024-06-16 20:46:56 -07:00
BranchWatchTableModel.cpp Merge pull request #12799 from mitaclaw/branch-watch-tool-fixes-3 2024-06-17 22:36:04 +02:00
BranchWatchTableModel.h Branch Watch Tool: Smarter Context Menu 2024-06-01 07:23:05 -07:00
BreakpointDialog.cpp Debugger: Rework temporary breakpoints 2024-07-05 21:33:22 +02:00
BreakpointDialog.h Expand conditional breakpoints to memory breakpoints 2022-12-04 11:25:33 -07:00
BreakpointWidget.cpp Debugger: Rework temporary breakpoints 2024-07-05 21:33:22 +02:00
BreakpointWidget.h Debugger: Rework temporary breakpoints 2024-07-05 21:33:22 +02:00
CodeViewWidget.cpp Debugger: Rework temporary breakpoints 2024-07-05 21:33:22 +02:00
CodeViewWidget.h Merge pull request #12645 from mitaclaw/ppc-symbols-signal 2024-03-31 06:36:09 +02:00
CodeWidget.cpp Debugger: Rework temporary breakpoints 2024-07-05 21:33:22 +02:00
CodeWidget.h DolphinQt: A Ubiquitous Signal For When Symbols Change 2024-03-28 09:57:22 -07:00
GekkoSyntaxHighlight.cpp GekkoSyntaxHighlight: Collapse cases for builtin color formats 2024-01-23 18:39:59 -05:00
GekkoSyntaxHighlight.h Parser and Assembler implementations 2023-12-13 05:32:20 -08:00
JITWidget.cpp Core::GetState: Avoid Global System Accessor 2024-04-08 16:23:23 -07:00
JITWidget.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
MemoryViewWidget.cpp Replace Common::BitCast with std::bit_cast 2024-05-03 18:43:51 -07:00
MemoryViewWidget.h DolphinQt Settings: Signal Debug Font By Const Reference 2024-03-22 07:52:52 -07:00
MemoryWidget.cpp Core::IsRunning: Avoid Global System Accessor 2024-05-01 08:54:17 -07:00
MemoryWidget.h Memory(View)Widget: Avoid Global System Accessor 2024-03-01 07:09:20 -08:00
NetworkWidget.cpp Core::GetState: Avoid Global System Accessor 2024-04-08 16:23:23 -07:00
NetworkWidget.h NetworkCaptureLogger: Add GameCube BBA support 2022-07-12 13:35:49 +04:00
PatchInstructionDialog.cpp treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
PatchInstructionDialog.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
RegisterColumn.cpp treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
RegisterColumn.h Debugger RegisterWidget: Add context options to change entire column's display type. 2022-04-29 17:21:39 -07:00
RegisterWidget.cpp DolphinQt: Properly Delete (Some) Widgets 2024-04-30 11:17:28 -07:00
RegisterWidget.h DolphinQt: Avoid ppcState global. 2023-04-05 20:09:32 +02:00
ThreadWidget.cpp Revert "Audit uses of IsRunning and GetState" 2024-06-26 20:36:46 +02:00
ThreadWidget.h DolphinQt: Properly lock CPU before accessing emulated memory 2023-02-12 11:27:50 +01:00
WatchWidget.cpp Revert "Audit uses of IsRunning and GetState" 2024-06-26 20:36:46 +02:00
WatchWidget.h PowerPC: Refactor to class, move to System. 2023-04-09 21:48:37 +02:00