summaryrefslogtreecommitdiff
path: root/Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp
AgeCommit message (Collapse)Author
2026-02-19Debugger/ BreakpointsWidget: Add option to disable/enable all breaking ↵TryTwo
without affecting individual breakpoint enabled states. Allows you to quickly stop breaking, play the game, then re-enable breaking. useful if you have many active breakpoints, but need to run the game.
2025-06-28i18n: Add commentsJosJuice
2025-06-14Source: Remove redundant lambda parameter listsDr. Dystopia
2025-06-07Merge pull request #13665 from jordan-woyak/dark-mode-filterJordan Woyak
DolphinQt: Replace widespread SetQWidgetWindowDecorations calls with an event filter.
2025-06-07DolphinQt: Replace widespread SetQWidgetWindowDecorations calls with an ↵Jordan Woyak
event filter.
2025-05-01Make overriding explicit and remove redundant virtual specifiers on ↵Dr. Dystopia
overriding destructors - Core & UnitTests
2025-01-01Simplify `std::find_if` with `Common::Contains`mitaclaw
2024-10-04Partially revert "Revert "Audit uses of IsRunning and GetState""JosJuice
This reverts the revert commit bc67fc97c39628c76a4dbca411b0e8a9bfaf726a, except for the changes in BaseConfigLoader.cpp, which caused the bug that made us revert 72cf2bdb87f09deff22e1085de3290126aa4ad05. PR 12917 contains an improved change to BaseConfigLoader.cpp, which can be merged (or rejected) independently. A few changes have also been made based on review comments.
2024-09-20BreakpointWidget: Update when `Host::PPCSymbolsChanged`mitaclaw
Otherwise, outdated symbol names will remain.
2024-09-20DolphinQt: A Ubiquitous Signal For When Breakpoints Changemitaclaw
There were three distinct mechanisms for signaling breakpoint changes in DolphinQt, and the wiring had room for improvement. The behavior of these signals has been consolidated into the new `Host::PPCBreakpointsChanged` signal, which can be emitted from anywhere in DolphinQt to properly update breakpoints everywhere in DolphinQt. This improves a few things: - For the `CodeViewWidget` and `MemoryViewWidget`, signals no longer need to propagate through the `CodeWidget` and `MemoryWidget` (respectively) to reach their destination (incoming or outgoing). - For the `BreakpointWidget`, by self-triggering from its own signal, it no longer must manually call `Update()` after all of the emission sites. - For the `BranchWatchDialog`, it now has one less thing it must go through the `CodeWidget` for, which is a plus.
2024-08-04Debugger: keep breakpoints ordered by addressTillmann Karras
Previously, breakpoints would move to the end of the list whenever they were edited.
2024-07-23Merge pull request #12862 from SuperSamus/debugger-fixesAdmiral H. Curtiss
Debugger: Various fixes
2024-07-09BreakpointWidget: Correct icon positionVampireFlower
Co-Authored-By: TryTwo <10532806+TryTwo@users.noreply.github.com>
2024-07-05BreakpointWidget: Can create new breakpoints when emulation isn't runningMartino Fontana
It works perfectly fine, so why not? Also, consistency with CodeViewWidget.
2024-07-05Debugger: Rework temporary breakpointsMartino Fontana
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-02Debugger: Small Breakpoint cleanupMartino Fontana
Reuse more code, change misleading names, remove useless documentation, add useful documentation
2024-06-26Revert "Audit uses of IsRunning and GetState"JosJuice
This reverts commit 72cf2bdb87f09deff22e1085de3290126aa4ad05. SYSCONF settings are getting cleared when they shouldn't be. Let's revert the change until I get proper time to figure out why it's broken.
2024-06-21Audit uses of IsRunning and GetStateJosJuice
Some pieces of code are calling IsRunning because there's some particular action that only makes sense when emulation is running, for instance showing the state of the emulated CPU. IsRunning is appropriate to use for this. Then there are pieces of code that are calling IsRunning because there's some particular thing they must avoid doing e.g. when the CPU thread is running or IOS is running. IsRunning isn't quite appropriate for this. Such code should also be checking for the states Starting and Stopping. Keep in mind that: * When the state is Starting, the state can asynchronously change to Running at any time. * When we try to stop the core, the state gets set to Stopping before we take any action to actually stop things. This commit adds a new method Core::IsUninitialized, and changes all callers of IsRunning and GetState that look to me like they should be changed.
2024-06-01Color unused cells and disabled rows.TryTwo
(bug?) Does not update on dark/light style change, as no signals are sent.
2024-06-01BreakpointWidget: Give conditionals a popup text entry on click.TryTwo
2024-06-01BreakpointWidget: Direct editing of address cells. Prevent symbol cells from ↵TryTwo
being affected.
2024-06-01BreakpointWidget: Make buttons, removing selecting row on clicking, and fix ↵TryTwo
OnContextMenu which relied on select rows. Add functions to edit breakpoints.
2024-05-25BreakpointWidget: Fix Qt centering issues with a Custom DelegateTryTwo
2024-05-25BreakpointWidget: Move delete to the context menu. Selecting rows will be ↵TryTwo
removed, so select -> delete is hard to maintain.
2024-04-30DolphinQt: Properly Delete (Some) Widgetsmitaclaw
This is not every memory leak, just the ones that were obvious.
2024-04-13PPCSymbolDB: GetDescription by std::string_viewmitaclaw
Should save a lot of deep copies.
2024-04-08Core::GetState: Avoid Global System Accessormitaclaw
2024-03-13PPCSymbolDB: Move instance to PowerPCManagermitaclaw
2023-08-12DolphinQt: Set window decorations for all top-level QWidgets.Admiral H. Curtiss
2023-06-08BreakpointWidget: Pass QString by const reference to create_itemLioncash
Avoids churning string copies when performing updates.
2023-04-25DolphinQt: cache icons instead of single pixmapsShawn Hoffman
Fixes dynamically changing dpi scaling. Load resources from svg if possible. Currently svg support is not in Qt build in Externals, and image files need to be added later.
2023-04-13Common/IniFile: Move interface into Common namespaceLioncash
Gets this out of the global namespace and into the Common namespace
2023-04-09PowerPC: Refactor to class, move to System.Admiral H. Curtiss
2022-12-04Expand conditional breakpoints to memory breakpointsTryTwo
2022-11-26Debugger BreakpointWidget: Allow editing breakpointsJoshuaMK
2022-10-06Debugger: Initial implementation of conditional breakpointssmurf3tte
Expression class to store compiled expressions and associated variable list. Co-authored-by: TryTwo <taolas@gmail.com>
2022-06-01Add options for BreakpointWidget, WatchWidget, and CheatSearches to send ↵TryTwo
address to Memory Widget
2021-07-05treewide: convert GPLv2+ license info to SPDX tagsPierre Bourdon
SPDX standardizes how source code conveys its copyright and licensing information. See https://spdx.github.io/spdx-spec/1-rationale/ . SPDX tags are adopted in many large projects, including things like the Linux kernel.
2021-03-05BreakpointWidget: Use QSignalBlockerSepalani
2021-03-05BreakpointWidget: Fix delete deleting both MBP and BP at addressSepalani
2021-03-04BreakpointWidget: Emit BreakpointsChanged to update viewsSepalani
2021-03-03Allow to disable/enable from the BreakpointWidgetInusualZ
Added a context menu, for when a breakpoint is right-clicked Removed the `itemClicked` behavior, since it would clash with the context menu
2021-01-28BreakpointWidget: Remove unnecessary codeSepalani
PPCDebugInterface.Clear() is called by Core on shutdown instead
2020-09-12DolphinQt: fix other widgets that use lambdas (capturing this) without ↵iwubcode
setting the receiver
2020-07-11Add Break On Hit and Log On Hit for instruction breakpointsRena Kunisaki
2020-02-09DolphinQt/Debugger: Fix crash with floating debugger windowsLuke Street
2020-02-06DolphinQt: setTabKeyNavigation(false) on QTableWidget and QTableView.Jordan Woyak
2019-07-30DolphinQt: Replace QStringLiteral with alternatives where applicableLioncash
QStringLiterals generate a buffer so that during runtime there's very little cost to constructing a QString. However, this also means that duplicated strings cannot be optimized out into a single entry that gets referenced everywhere, taking up space in the binary. Rather than use QStringLiteral(""), we can just use QString{} (the default constructor) to signify the empty string. This gets rid of an unnecessary string buffer from being created, saving a tiny bit of space. While we're at it, we can just use the character overloads of particular functions when they're available instead of using a QString overload. The characters in this case are Latin-1 to begin with, so we can just specify the characters as QLatin1Char instances to use those overloads. These will automatically convert to QChar if needed, so this is safe.
2019-07-06DolphinQt: Don't update debug widgets when hiddenJosJuice
Saves on CPU usage when pausing/unpausing with the debugger disabled. This is especially important when using frame advance rapidly.
2019-04-23Debugger: Move hiding logic via setHidden() to before setFloating()chargeflux