90 Commits

Author SHA1 Message Date
Henrik Rydgård 1f4d3b3b04 Minor code cleanup 2026-05-10 21:46:13 +02:00
Henrik Rydgård 7d9539a461 Fix multiple issues with temporary breakpoints. Prevents unnecessary jit clears on step-out. Thanks Nemoumbra. 2026-05-10 21:33:54 +02:00
Henrik Rydgård b24ce4bd14 Simplifications 2025-04-05 09:18:56 +02:00
Henrik Rydgård 4989ec61d9 BreakpointManager: Safer and simpler updates. 2025-03-03 13:59:42 +01:00
Henrik Rydgård 31cf5771f4 Turn the break reason into an enum, fix some minor issues 2025-02-19 16:01:11 -06:00
Henrik Rydgård 3e198c53b2 More include cleanup 2024-12-18 13:57:26 +01:00
Henrik Rydgård 20a17a0e8d Reorganize DebugInterface etc a bit.
KernelThreadDebugInterface no longer has a useless copy of a MIPSDebugInterface.
2024-12-12 18:54:46 +01:00
Henrik Rydgård 0f97578a35 Replace a bad function 2024-12-03 20:33:12 +01:00
Henrik Rydgård 20c4649963 Fix step over, other stepping issues 2024-11-25 19:02:17 +01:00
Henrik Rydgård 3cba1135d5 Add basic breakpoint editing window. Need UI refinement 2024-11-25 00:23:28 +01:00
Henrik Rydgård 7992ff4627 Make CBreakpoints an object 2024-11-25 00:22:53 +01:00
Henrik Rydgård d3e9398cb3 Split Core_EnableStepping into Core_Break and Core_Resume 2024-11-03 17:53:42 +01:00
Henrik Rydgård e01ca5b057 Logging API change (refactor) (#19324)
* Rename LogType to Log

* Explicitly use the Log:: enum when logging. Allows for autocomplete when editing.

* Mac/ARM64 buildfix

* Do the same with the hle result log macros

* Rename the log names to mixed case while at it.

* iOS buildfix

* Qt buildfix attempt, ARM32 buildfix
2024-07-14 14:42:59 +02:00
Herman Semenov c20cb3f4be Minor optimize methods std::string using param as char with simpler implementation 2024-04-10 17:57:05 +03:00
Herman Semenov 17ecee1715 Fixed return copies from functions and const ref params 2024-04-02 18:37:00 +03:00
Unknown W. Brackets 259734bd47 irjit: Fix likely delay slot breakpoints. 2023-09-03 12:27:10 -07:00
Unknown W. Brackets c47e88529d Debugger: Add memory check conditions.
Currently, this isn't exposed anywhere.
2023-04-12 01:07:56 -07:00
Unknown W. Brackets 0f5859510e x86jit: Simplify memcheck handling.
Now it's mostly the same as the other jits.
2023-04-12 01:07:48 -07:00
Unknown W. Brackets e73474e590 Debugger: Cache memcheck ranges.
Rebuilding these can be a bit slow each time, speed up jit compilation by
caching them.
2023-04-05 17:13:00 -07:00
Unknown W. Brackets 1d3f262eda Debugger: Trigger mem breakpoints for mirrors. 2023-04-05 06:57:42 -07:00
Unknown W. Brackets 09f3c446b8 Debugger: Improve perf with write-only memchecks. 2023-04-05 06:36:40 -07:00
Henrik Rydgård 9e125eeba7 Remove NotifyUserMessage from Host 2023-03-25 10:32:09 +01:00
Henrik Rydgård dda8635c89 Move three notifications out of Host 2023-03-21 13:37:19 +01:00
Unknown W. Brackets 76cf4dbf12 interp: Allow breakpoints in release mode. 2022-11-13 16:52:40 -08:00
Unknown W. Brackets b0b03af50d Debugger: Keep flag for any breakpoints.
Oops, only had these checks for memchecks before.
2022-11-13 16:01:13 -08:00
Unknown W. Brackets 825450a373 jit: Defer invalidations made while running.
Previously, invalidating icache could happen while running, which might
cause the CPU to return into outer space.  This runs such invalidations
after letting the CPU exit.

It was easy to trigger this with the debugger: step using the GE debugger,
add a CPU memory breakpoint, then resume from the GE debugger.
However, cheats and the like could cause similar issues.
2022-10-09 21:26:13 -07:00
Unknown W. Brackets 2e2b222983 Debugger: Use detailed meminfo with breakpoints.
Usually there won't be any breakpoints, so it makes sense to enable detail
when they're added automatically.
2022-02-06 09:23:53 -08:00
Unknown W. Brackets db2eddcf27 Debugger: Remove double debug window updates.
Core_EnableStepping() is already marking the debug windows for update,
there's no need to call SetDebugMode() again.
2021-12-12 11:24:03 -08:00
Unknown W. Brackets b8ab7f39df jit: Lock around changes to the jit pointer. 2021-11-28 10:04:22 -08:00
Unknown W. Brackets 2bd13c5d9d Debugger: Track reason for entering stepping. 2021-10-23 16:56:15 -07:00
Unknown W. Brackets ee71ef961f Debugger: Keep char *s for memchecks. 2021-02-20 16:16:43 -08:00
Unknown W. Brackets 44a0c54538 Debugger: Log access reason on memory breakpoint. 2021-02-15 15:01:23 -08:00
Unknown W. Brackets b92fab88b6 Debugger: Add formats to breakpoint logging. 2020-09-06 13:56:18 -07:00
Unknown W. Brackets efee79fd71 Debugger: Don't break during startup. 2020-05-23 10:26:27 -07:00
Henrik Rydgård 9b30e5393d Buildfix (oops) 2019-08-06 16:09:39 +02:00
Henrik Rydgård 641bb72b40 Memchecks: Avoid taking the mutex lock if no memchecks active. Possible minor speedup in GoW and other block-copy-heavy games. 2019-08-06 15:33:11 +02:00
Unknown W. Brackets b114656321 Debugger: Allow conditions on threadID/moduleID.
And now step over/out/into can tie to the correct thread.
2018-06-08 06:59:18 -07:00
Unknown W. Brackets b2cc4a0965 Debugger: Add memory breakpoint management. 2018-06-08 06:59:18 -07:00
Unknown W. Brackets 6cf24b34fc Debugger: Add thread safety to breakpoints. 2018-06-08 06:59:18 -07:00
Unknown W. Brackets eb4b59b530 arm64jit: Enable breakpoints.
Memory breakpoints not yet really tested.
2018-06-06 17:31:56 -07:00
Unknown W. Brackets 3c8cc5ab64 Debugger: Fix initialization issues.
Sometimes temp breakpoints had log set by accident.
2018-06-06 17:31:56 -07:00
Henrik Rydgård 635b2ada43 Remove a function that didn't make a lot of sense. 2017-01-26 09:50:16 +01:00
Unknown W. Brackets 747a6ec524 Debugger: Add custom log expressions.
Similar to Visual Studio, just use {a1} to log the value of register a1.
Supports anything the expression parser supports.
2016-08-04 13:29:22 -07:00
Unknown W. Brackets e4ca124b0e Debugger: Add custom breakpoint log message. 2016-08-04 13:07:56 -07:00
Unknown W. Brackets 9972e5b10a Debugger: Allow logging on CPU breakpoints. 2016-08-04 12:39:29 -07:00
Unknown W. Brackets a9ad0cd471 Debugger: Make breakpoint actions more generic. 2016-08-04 12:02:44 -07:00
Unknown W. Brackets 4578c3cb54 jit-ir: Implement memory breakpoints.
These generally work, but likely delay slots will make downcount slightly
off, and won't resume when you hit run again without manually stepping
through them.
2016-07-02 16:38:30 -07:00
Henrik Rydgard 8b450c8034 Merge NativeJit.cpp/h with JitCommon.cpp/h 2016-05-01 11:39:59 +02:00
Henrik Rydgard a5be0976bd Remove preprocessor hacks to choose JIT implementation.
Opens up for having multiple JIT implementations available at runtime,
which could be use for experimenting with new JIT compiler types or for
unit testing one JIT on another architecture.

Very few of the newly virtual calls are on any sort of critical path so
hopefully there will not be a performance loss.
2016-05-01 11:39:53 +02:00
Henrik Rydgard b998131581 Move the symbol map to the heap, deallocate it when no game is running. 2015-10-31 23:01:19 +01:00