summaryrefslogtreecommitdiff
path: root/Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp
AgeCommit message (Collapse)Author
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).
2020-04-15Qt/Debugger: Refresh windows on savestate load.Admiral H. Curtiss
2020-03-18Qt/CodeViewWidget: Make columns resizable by the user and set sensible defaults.Admiral H. Curtiss
2020-03-15Qt/CodeViewWidget: Indent branch arrows based on free space rather than ↵Admiral H. Curtiss
reserving a full column for each.
2020-03-07Qt/CodeViewWidget: Implement branch arrows.Admiral H. Curtiss
2020-02-23Qt/CodeViewWidget: Use named constants for column IDs.Admiral H. Curtiss
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-22Merge pull request #8235 from lioncash/moveAnthony
Common/DebugInterface: Minor cleanup changes