Commit Graph
210 Commits
Author SHA1 Message Date
Henrik RydgårdandClaude Opus 5 0c510ca62e Add BreakpointManager::ChangeBreakPointAddress, use it from the ImDebugger
ChangeBreakPointAddress() moves the breakpoint keeping its action, condition and
log format, invalidates both ends, refuses to land on an existing breakpoint,
and resets the hit count since it belonged to the old address. The edit form now
works on a copy of the address and commits on deactivation rather than per
keystroke, so typing one address doesn't churn through every prefix of it.

The breakpoint edit form assigned straight to bp.addr and then invalidated the
icache at "bp.addr - 4, 8" - which by then is the *new* address - need both.

Also clear the selection after Delete in both edit forms - the reference into
the vector is dangling from that point on. Harmless today, but only because
nothing happens to touch it below.

Covered by a new Breakpoints unit test (verified to fail without the duplicate
check and the hit reset).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GZq8ZtJmFY7bkX5FVkr3P9
2026-08-17 00:28:39 +02:00
Henrik RydgårdandClaude Opus 5 d4500d9353 hle.data.add: apply the requested name, and report the real one
AddLabel() won't overwrite an existing label. That's deliberate and right for
bulk import - a real ELF symbol name shouldn't lose to the analyzer's later
z_un_* - but wrong when someone is explicitly naming an address, so a second
hle.data.add at the same address silently kept the old name. The response echoed
the requested name back either way, so there was no sign anything had been
ignored.

Force the requested name in with SetLabelName() now, except when a function
starts at that address and owns the label - renaming that function isn't what
"label this data" should mean, and it would undo the care hle.data.remove takes
not to destroy it. Either way the response now reports the name the symbol
actually ended up with rather than the one that was asked for.

Also, in the ImDebugger memcheck edit form: the Enabled checkbox didn't mark the
memcheck as changed, and the condition combo marked it changed on every frame
the popup was open rather than when a condition was actually picked (Selectable
returns true only on click, BeginCombo stays true while open).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GZq8ZtJmFY7bkX5FVkr3P9
2026-08-17 00:28:26 +02:00
Henrik Rydgård 0e15445b54 Fix memchecks 2026-08-16 23:09:15 +02:00
Henrik Rydgård 8d0d601b5b Clean up how the instruction cache is invalidated from the breakpoint manager 2026-08-16 18:10:02 +02:00
Henrik Rydgård f3d31846bb Enable breakpoint processing when stepping 2026-08-16 17:37:05 +02:00
Henrik Rydgård c457dbbd2f Debugger breakpoints: Rename "Result" to "Action" 2026-08-16 16:59:54 +02:00
Henrik Rydgård f5bd302694 Improve DescribeAddress, show the description of the currently selected line in disassembly 2026-08-14 14:38:33 +02:00
Henrik Rydgård c5e4d0d90d Rename the get-memory-pointer functions to make it clear where CPU exceptions can happen. 2026-08-12 14:06:16 +02:00
Henrik Rydgård e9a3449ede More MIPSState * plumbing (manual) 2026-08-12 14:02:19 +02:00
Henrik Rydgård a41654cf61 More menu changes 2026-08-09 19:03:08 +02:00
Henrik Rydgård 0ed1f3eceb Add some easy ways to get into the web debugger 2026-08-08 10:13:09 +02:00
Henrik Rydgård 8d2c1e7a66 Make the ImDebugger a bit less crash prone outside of games 2026-08-07 22:40:05 +02:00
Henrik Rydgård db8ff4391e Enable ImDebugger everywhere, on top of the regular UI. 2026-08-07 17:35:15 +02:00
Henrik Rydgård 39c8cbbde1 Use the new kernel module description thing to annotate GPRs in the register viewer 2026-07-28 00:15:41 +02:00
Henrik Rydgård d19f8b72f9 Warning fixes 2026-06-06 14:24:16 +02:00
Henrik Rydgård a317890c08 Remove the GPUDebugInterface class
Just a pointless extra layer in the class hiearchy, making it
unnecessarily hard to modify the interface.

Might as well hit GPUCommon directly.
2026-06-02 11:15:08 +02:00
Henrik Rydgård f60e27a9b7 Just some refactoring of the GPUStatistics struct, and more use of StringWriter 2026-05-29 14:40:31 +02:00
Henrik Rydgård cc0ece038c Clean up the string type in RequestCallback - somehow was both char* and std::string????
Might be related to #21695
2026-05-18 14:16:34 +02:00
Henrik Rydgård 10b6c14a9e Avoid memory access functions that can cause memory exceptions in ImDebugger. Minor opt. 2026-03-31 17:53:00 -06:00
Henrik Rydgård 1b0e701c87 Expose some more pointers in the ImDebugger UI 2026-02-17 22:40:00 +01:00
Henrik Rydgård 5f7a937466 Rename ValidSize to ClampValidSizeAt 2025-12-30 20:31:07 +01:00
Henrik Rydgård 3116eba395 More UI work (#21035)
* Improve a couple of on-screen buttons (menu, fastforward)

* Fix the new continue button, oops

* Add some missing translations

* Split a translation string to make portrait look better

* More GameScreen redesign

* Don't accidentally go into game-specific mode

* Fix layout issue with popupscreens, fix context menu positioning

* One more icon
2025-11-24 20:33:13 +01:00
Henrik Rydgård 14ddad5ce3 Change how defaults work in the inifile reader (more flexible this way) 2025-10-31 21:57:52 +01:00
Nemoumbra f83d6ac4a9 Wrong key for the ImConfig 2025-10-27 02:18:57 +03:00
Henrik Rydgård ff5dea821b New jit viewer is starting to work a bit. 2025-10-08 16:59:25 -06:00
Henrik Rydgård aba2813ea2 Scaffold it 2025-10-08 13:00:35 -06:00
Henrik Rydgård 7fda054147 ImDebugger: Add a GameInfo tab to the PARAM.SFO window. 2025-09-03 14:10:54 +02:00
Henrik Rydgård 6c238e0109 Small upgrade to the ParamSFO window: Show the original params, add copy to clipboard 2025-09-02 00:50:12 +02:00
Henrik Rydgård bbe1a7edc1 Add simple ParamSFO viewer to ImDebugger 2025-09-01 13:53:44 +02:00
Henrik Rydgård b5595ea450 Add simple imgui log window (just reads the short log ring buffer) 2025-08-29 00:04:54 +02:00
Henrik Rydgård e369da453b Fix bug with watch window visibility pointing to the wrong bool 2025-08-28 23:23:19 +02:00
oltolm 3fd86d959b fix compiler warnings 2025-08-24 21:30:43 +02:00
Henrik Rydgård e00ef04792 Granular queue: Use the current FPS to get an estimate for how long the maximum queue size should be. 2025-08-22 21:21:20 +02:00
Henrik Rydgård 3b683a8e43 Add UI to pick resampler mode 2025-08-22 21:21:20 +02:00
Henrik Rydgård 07ad5ff372 Add more measurements to the granular mixer queue 2025-08-22 21:21:20 +02:00
Henrik Rydgård 5b0d8c06c6 Add debug UI for granule mixer 2025-08-22 21:21:19 +02:00
Henrik Rydgård 0534f42965 Typo fix. Add menu separator 2025-08-16 23:57:40 +02:00
Henrik Rydgård 87b155229f More work on the watch window 2025-08-15 22:36:05 +02:00
Henrik Rydgård d9b7e370f3 ImDebugger: Add initial implementation of a watch window 2025-08-15 21:58:32 +02:00
Henrik Rydgård c61595596e Rename mp3Map to g_mp3Map 2025-07-20 19:32:05 +02:00
Henrik Rydgård 9e3d57167f Show sceAac contexts in ImDebugger 2025-07-20 19:30:35 +02:00
Henrik Rydgård 5f8ee93006 Use a TTF font for fixed-width text in the debugger
Fixes #20635
2025-07-16 20:20:33 +02:00
Nemoumbra c4dafe28b0 g_adhocServerConnected moved to NetAdhocCommon 2025-07-01 23:57:30 +03:00
Henrik Rydgård 6df9e513c1 Logging, comments and debugger fixes, plus simple dumping of the first block of streaming Atrac3 2025-06-25 01:08:47 +02:00
Henrik Rydgård 1f09b782d7 Make Persona 2 battle transition more reliable. 2025-06-12 11:02:37 +02:00
QuirkyLemon 75ccdbbc2c IDK if this is actually a problem: fix compiler warning 2025-04-25 11:06:55 -05:00
QuirkyLemon a4e89bea25 Add option to change MemCheck condition 2025-04-25 11:03:17 -05:00
Henrik Rydgård ef97eb668a ImDebugger: Add a Time window to check various counters 2025-04-23 17:10:31 +02:00
Henrik Rydgård 2e0ca023ae Build warning fixes 2025-04-17 11:05:52 +02:00
Henrik Rydgård d9eab4e4a2 sceAudio: Add per-channel mute checkboxes in the debugger 2025-04-15 11:44:28 +02:00