summaryrefslogtreecommitdiff
path: root/Source/Core/DolphinQt/Debugger/CodeViewWidget.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.
2026-01-25Remove unused importsMartino Fontana
Yellow squiggly lines begone! Done automatically on .cpp files through `run-clang-tidy`, with manual corrections to the mistakes. If an import is directly used, but is technically unnecessary since it's recursively imported by something else, it is *not* removed. The tool doesn't touch .h files, so I did some of them by hand while fixing errors due to old recursive imports. Not everything is removed, but the cleanup should be substantial enough. Because this done on Linux, code that isn't used on it is mostly untouched. (Hopefully no open PR is depending on these imports...)
2026-01-17Fix various typos and spelling mistakesSintendo
2025-07-30CodeViewWidget: Improve performance by removing unnecessary FillInCallers ↵Alex Harrison
computation during update
2025-07-27PPCSymbolDB: Don't return non-const pointersJosJuice
For thread safety, we shouldn't return any pointers or references that can be used to mutate the state of the PPCSymbolDB. This should be the final part of making PPCSymbolDB thread safe unless I've missed something.
2025-07-15CodeWidget: Add button that prevents automatic updates to the address, such ↵TryTwo
as navigating to the PC on pause.
2025-06-22Merge pull request #13691 from TryTwo/PR_NotesJMC47
Debugger Add note-type symbols .
2025-06-19Debugger CodeViewWidget: Add context options for making and managing Notes. ↵TryTwo
Add popup dialog for editing functions and notes.
2025-06-19Debugger symbols: Add new symbol type: Notes.. Notes are for naming single ↵TryTwo
instructions, or small groups of instructions. Notes are separate from function symbols, and can be searched separately. Unlike functions, notes of different length can overlap each other. In the instruction window, a note will always display over the function symbol.
2025-06-07DolphinQt: Replace widespread SetQWidgetWindowDecorations calls with an ↵Jordan Woyak
event filter.
2025-03-29[Debugger] CTRL+G support in code and memory viewNitch2024
2025-03-09Modernize `std::stable_sort` with ranges and projectionsmitaclaw
2024-10-19DolphinQt: JIT Widget Refreshmitaclaw
Fulfilling a certain six-year-old todo.
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-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-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