Commit Graph

65 Commits

Author SHA1 Message Date
Dan McCarthy ecd3b87cc0
Debugger: Fix Importing Breakpoints CSV functionality (#10486)
* Debugger: Fix Importing Breakpoints CSV functionality

This resolves a few issues with the Breakpoint CSV importing functionality.
Makes the following changes/fixes:
-  Assembly instructions with commas caused part of the instruction text to be considered the start of a new column (comma is the CSV delimiter), resulting in "too many columns errors" and failing to import. Now puts values in quotes and detects the true start and end of the values, so that no extra columns are created.
- The import function was using the incorrect columns to load since the Enabled column was moved to be the first one but the import function had not been updated. Fixed this by using the column enum values instead of hardcoded numbers, so if ordering in the model changes it will still import fine.
- Updates the beginRemoveRows function to not remove an extra row. With this function you would want a "count" of 0 to remove 1, so "row, row" deletes one, "row, row+1" deletes 2. Updates it to subtract one so that the range is not including one more than it is intended to.
-

* Misc: Cleanup regex string & add explicit imports

Uses raw string literal to make the regular expression easier to read since regex is ugly enough as it is, we really don't need escaping characters in a string on top.

Also explicitly includes used Qt classes.
2023-12-30 14:01:30 +10:00
KamFretoZ b0ae2caef8 Qt/Translation: Attempt to fill in missing descriptions in settings 2023-12-28 13:34:06 +10:00
Stenzek d9abe10308 Misc: Remove explicit PCH include, switch to SPDX 2023-12-24 14:03:14 +10:00
Stenzek 47a65ce01e Misc: Slim down PCH 2023-12-24 14:03:14 +10:00
Dan McCarthy ade6a6c3ab
Debugger: Add memory search types: GreaterThan(OrEqual), LesserThan(OrEqual), and Not Equal (#10441)
* Make memory search search type handling more clear with enum

Adds an enum class to represent the Search type used in a memory search. Prior, this was just handled with an integer to represent each type, but it was very unclear what corresponded to which type at first glance.

Made this easier to follow by using an enum to represent the type.

* Debugger : Add support for greater than/less than/not equal search types

Adds support for basic greater than/greater than or equal/less than/less than or equal/not equal search types for the debugger's Memory Scan.

This adds a new input to allow selecting the search comparison type, which defaults to Equals, and allows switching to the above mentioned comparisons.
It's set up to allow for adding more easily. Restructures some of the functions to make having multiple comparisons quite manageable.
Adds an enum for search comparison types for easy logic handling.

* Debugger: Update Array/String search type error to mention not handling Not Equals

Currently array/string searches don't support Not Equals searches, so this needs to be removed.

* Debugger: Code cleanup + feedback changes

Sets up if expressions to use constexpr for compile time evaluation and makes the is greater/less than logic simpler to read for int. Also removes an unneeded QPushButton cast and simply compares the pointers directly.
2023-12-23 19:02:48 +10:00
Ty Lamontagne 20c3178dfe Debugger: Don't modify disassembly focus on CPU state change 2023-12-15 20:35:06 +00:00
Dan McCarthy 0f4a95e31b Qt: (Debugger) Add ability to remove result from Memory Search results
Adds the ability to remove individual search results from the Memory Search results list. Right clicking a result will give the "Remove Result" option in the context menu.
2023-12-09 15:29:35 +00:00
Dan McCarthy b453787670 Qt: Adds right click Go To Disassembly menu option to Memory Search
Allows user to right click a memory search result in order to go to that memory address location in the disassembly view. This saves several step and makes it easier to do.

Also adds precedent for the memory search result context menu which will be used in future features.
2023-12-08 22:21:29 +10:00
Dan McCarthy ae2860d03d Debugger: Allow copying function names
Add the ability to copy a function name when you right click the first instruction of a function (the line where the function name displays).

Instructions inside the function that are not the first instruction will not show the copy option, partly because it's less clear what will be copied but also to not needlessly overpopulate the context menu.
2023-11-21 20:54:27 +00:00
Dan McCarthy 90e9b60287
Debugger: Implement subsequent/next scan for Mem Search (#10260)
Co-authored-by: Ty <AmFobes@gmail.com>
2023-11-19 14:41:27 +00:00
Ty Lamontagne 692ca763a1 Debugger: Use the proper data role for sorting threads 2023-10-31 15:42:56 +00:00
Ty Lamontagne 9eb1731516 Debugger: Flip the `Enabled` breakpoint column 2023-10-31 15:42:56 +00:00
Ty Lamontagne 93776707a9 Debugger: Stub the current opcode if no function is selected 2023-10-31 15:42:56 +00:00
Ty Lamontagne ebe6d3cbee Debugger: Prevent crashing opportunities when there is an empty function list 2023-10-31 15:42:56 +00:00
Ty Lamontagne 46a0c2d5b6 Debugger: IOP Function Tree
Co-authored-by: Ziemas <ziemas@ziemas.se>
2023-10-31 15:42:56 +00:00
Ty Lamontagne 85539c7bb9 DebugTools: Simplify the symbol map 2023-10-31 15:42:56 +00:00
Ty Lamontagne be405eb705 Debugger: Visually show what CPU triggered a breakpoint 2023-10-26 19:26:43 +01:00
Ty Lamontagne 95d1dcc521 Debugger: Fallback to unmangled symbol when it cannot be demangled 2023-10-26 19:26:43 +01:00
Ty Lamontagne 96895a80c1 Debugger: Try to rationally size bp,tl and sf columns 2023-10-26 19:26:43 +01:00
Ty Lamontagne 132726bc45 Debugger: Provide visual feedback of a breakpoints enable setting 2023-10-26 19:26:43 +01:00
Ty Lamontagne 593f977621 Debugger: Add spacebar as a breakpoint toggle hotkey 2023-10-26 19:26:43 +01:00
Ty Lamontagne 582c23bae8 Debugger: Humanise CSV exporting
An oversight of the old system was that all integers were converted to hexadecimal
2023-10-26 19:26:43 +01:00
Ty Lamontagne 6e5fbe8991 Debugger: Fix an issue where the debugger is always on top of the main window
Add an optional "always on top" toolbar button as well
2023-10-13 13:53:12 +01:00
Ty Lamontagne 8d13877002 Debugger: Demangle symbols in the disassembly view as well 2023-10-12 12:46:12 +10:00
Ty Lamontagne 065f7d6cc7 Debugger: Don't elide func names as much when func start is selected 2023-10-12 12:46:12 +10:00
Ty Lamontagne 03a7c745c9 Debugger: Implement function/instruction nop restore 2023-10-12 12:46:12 +10:00
Ty Lamontagne 4269f16bcd Debugger: Implement stubbing (noping) functions 2023-10-12 12:46:12 +10:00
Ty Lamontagne 55c9cb45ac Debugger: Fix the popup position of context menus for lists
Use viewport(), otherwise it does not account for the table view header for some reason.
2023-10-12 12:46:12 +10:00
Ty Lamontagne 4f825641ce Debugger: Copy as CSV. Breakpoint import from CSV 2023-10-12 12:46:12 +10:00
Ty Lamontagne ade2b4baea Debugger Thread List: Sorting 2023-10-12 12:46:12 +10:00
Ty Lamontagne b994d0ad70 Debugger: Run the tables keybind handler before the widgets
This fixes the issue of 'G' executing the go-to box instead of putting it into the text view
2023-10-07 14:12:18 +10:00
kamfretoz 0f8dceed89 Qt: Removes stray strings from translations
Qt: Update base translation
2023-09-24 19:28:01 +10:00
Stenzek 508c209270 Qt: Get rid of nextStatePaused 2023-09-24 02:20:37 +10:00
Stenzek 4027304ece Qt: Replace debugger menu bar with toolbar
That way it's not missing on MacOS.
2023-09-24 02:20:37 +10:00
Stenzek 2272134442 Qt: Fix debugger font on MacOS
And only set it on the tabs, not the whole window.
2023-09-24 02:20:37 +10:00
Ty Lamontagne 70e1d2bf3d Debugger: Implement "Copy Address" context menu in memory view 2023-08-22 21:23:16 +02:00
Ty Lamontagne 1697c2160c Debugger: Properly initialize primitive class members 2023-08-22 21:23:16 +02:00
Ty Lamontagne 87c42aeaf4 Debugger: Fix mismatch sign compare & bitwise on different enum warnings 2023-07-28 22:00:08 +01:00
Ty Lamontagne 0d42b81285 Debugger: Fix 'run-to-cursor' context action 2023-07-28 22:00:08 +01:00
Stenzek 088630a999 Misc: Replace bit_cast wrapper with std::bit_cast 2023-07-23 21:52:36 +10:00
solid1353 68865a2bca Debugger/MemorySearch: search for byte array instead of converting byte array to string 2023-07-17 19:29:39 +10:00
solid1353 8362e6f435 Debugger Memory Search: add Array of byte type 2023-07-17 19:29:39 +10:00
Abel Briggs 8b2fa73b45 Debugger/MemoryView: Support pasting hex/text from clipboard 2023-06-15 00:08:15 +10:00
Ty Lamontagne 029c11c8d2 Debugger: Fix an oversight on how breakpoints are managed 2023-05-01 07:02:21 +01:00
Toastarrr 33ea4e6225 Debugger: fix memory search crash 2023-03-19 13:44:11 +00:00
Toastarrr d9cecbde7d Debugger: use unsigned long long for memory search 2023-03-19 13:44:11 +00:00
Víctor "IlDucci 83471bdacd
Qt:i18n: Adding I18N comments for translators, minor typo fixes (#8048) 2023-03-18 16:14:55 -05:00
Ziemas 9420615317 Implement thread listing for IOP
Abstracts away threads behind a common interface for both EE and IOP
2023-02-09 15:49:56 +00:00
Ty Lamontagne a0000a8547 Debugger: Implement boot and debug
Creates a breakpoint automatically on the ELF entry point
2023-01-15 17:05:35 +00:00
Ty Lamontagne 2ef2f5db1d Debugger: Fix step out 2023-01-14 12:51:14 +01:00