summaryrefslogtreecommitdiff
path: root/Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp
AgeCommit message (Collapse)Author
2024-08-22Add support for libfmt-11Alfred Wingate
fmt::join was moved into fmt/ranges.h Signed-off-by: Alfred Wingate <parona@protonmail.com>
2024-08-21DolphinQt: Fix "Sddress" typoJosJuice
2024-08-14Use 'contains' methodDr. Dystopia
2024-07-28i18n: Add comments and improve source stringsJosJuice
Most of these changes are to improve consistency in capitalization.
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: fix Run to HereMartino Fontana
Now it actually does what it says on the name, instead of creating a breapoint and doing nothing else (not even updating the widget). Also, it now can't be selected if emulation isn't running. Closes https://bugs.dolphin-emu.org/issues/13532
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-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-31Merge pull request #12645 from mitaclaw/ppc-symbols-signalAdmiral H. Curtiss
DolphinQt: A Ubiquitous Signal For When Symbols Change
2024-03-28DolphinQt: A Ubiquitous Signal For When Symbols Changemitaclaw
There were three distinct mechanisms for signaling symbol changes in DolphinQt: `Host::NotifyMapLoaded`, `MenuBar::NotifySymbolsUpdated`, and `CodeViewWidget::SymbolsChanged`. The behavior of these signals has been consolidated into the new `Host::PPCSymbolsUpdated` signal, which can be emitted from anywhere in DolphinQt to properly update symbols everywhere in DolphinQt.
2024-03-22DolphinQt Settings: Signal Debug Font By Const Referencemitaclaw
2024-03-13PPCSymbolDB: Move instance to PowerPCManagermitaclaw
2023-12-13Parser and Assembler implementationsvyuuui
2023-08-12DolphinQt: Adjust panel-specific colors and syntax highlighting for dark theme.Admiral H. Curtiss
2023-08-12DolphinQt: Set window decorations for all top-level QWidgets.Admiral H. Curtiss
2023-04-29Merge pull request #11785 from shuffle2/qtnext3Admiral H. Curtiss
DolphinQt: cache icons instead of single pixmaps
2023-04-25DolphinQt: reset stylesheets on colorSchemeChangedShawn Hoffman
This is required for switching system color scheme (dark/light) dynamically at runtime.
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-24Common: Move CodeTrace.cpp/.h into CoreLioncash
This interface relies on Core details and shouldn't be in Common to begin with, since it's not a general utility.
2023-04-09PowerPC: Refactor to class, move to System.Admiral H. Curtiss
2023-04-05DolphinQt: Avoid ppcState global.Admiral H. Curtiss
2023-03-28PowerPC/MMU: Refactor to class, move to System.Admiral H. Curtiss
2023-03-08Core: Add System parameter to CPUThreadGuard.Admiral H. Curtiss
2023-02-20Qt/CodeViewWidget: Don't read PC in Update() if we don't have a CPU thread ↵Admiral H. Curtiss
guard.
2023-02-20Qt/CodeViewWidget: Don't try to pause emulator in Update() if we happen to ↵Admiral H. Curtiss
be on a breakpoint.
2023-02-17CodeViewWidget: Fix memory leakPokechu22
Per https://doc.qt.io/qt-6/qabstractitemview.html#setItemDelegateForColumn setItemDelegateForColumn does not take ownership of the parameter, so it was not being deleted. Specifying a parent to QObject (via QStyledItemDelegate's constructor) will allow it to automatically be deleted, per https://doc.qt.io/qt-6/objecttrees.html. The other instance of a QItemDelegate in IOWindow.cpp already used this.
2023-02-14Follow-up fixes for "Properly lock CPU before accessing emulated memory"JosJuice
2023-02-12DolphinQt: Properly lock CPU before accessing emulated memoryJosJuice
This fixes a problem I was having where using frame advance with the debugger open would frequently cause panic alerts about invalid addresses due to the CPU thread changing MSR.DR while the host thread was trying to access memory. To aid in tracking down all the places where we weren't properly locking the CPU, I've created a new type (in Core.h) that you have to pass as a reference or pointer to functions that require running as the CPU thread.
2023-01-27PowerPC: Remove PC macro.Admiral H. Curtiss
2023-01-24Common: Replace StringBeginsWith/StringEndsWith with std equivalentsLioncash
Obsoletes these functions in favor of the standard member functions added in C++20.
2022-12-24DolphinQt: Add more i18n commentsJosJuice
2022-11-04Merge pull request #10771 from TryTwo/PR_AutoStepAdmiral H. Curtiss
Debugger: Implement base code tracing logic. and feature to auto-step through code.
2022-10-26Make SetPatch responsible for overwriting old patchesJoshuaMK
2022-10-12Remove most uses of StringFromFormat in favor of fmtPokechu22
2022-10-06MemoryView auto updateDebugger. Implement base codetrace logic. Add register ↵TryTwo
breakpoints. Add CodeViewWidget autostepping to track a value.Debugger
2022-03-17Gekko constistancy changes. Add context item to codeview to show or copy a ↵TryTwo
load/store target memory address from instructions at or near PC when paused.
2022-02-13Fix integer sign difference comparison warningsPokechu22
2021-12-08CodeViewWidget: Fix undefined behavior when centered around address 0Pokechu22
2021-10-13Fix all uninitialized variable warnings (C26495)Pokechu22
2021-08-21DolphinQt: Remove Windows dialog help buttonsDentomologist
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-05Breakpoints: Change icon when disabledSepalani
2021-02-14CodeViewWidget: Add WithDetailedUpdate to update CodeWidgetSepalani
This used to also update the function calls and callers.
2020-06-08DolphinQt: Use QFontMetrics::boundingRect instead of QFontMetrics::widthJosJuice
See https://kdepepo.wordpress.com/2019/08/05/about-deprecation-of-qfontmetricswidth/
2020-05-18DolphinQt: Remove another usage of QFontMetrics::widthJosJuice
QFontMetrics::width breaks building with CMake on Windows, due to a deprecation warning which gets promoted to an error.
2020-05-03Fix Windows CMake build errorsJosJuice
Lambda expressions with uncaptured constants were leading to errors, and there were also some warnings about deprecated functions (QFontMetrics::width and inet_ntoa).