Commit Graph
17 Commits
Author SHA1 Message Date
Henrik RydgårdandClaude Opus 5 074c8ac523 Add memory.search and hle.data.* to the WebSocket debugger
Reverse-engineering workflows need to (1) find where an unknown value lives
in memory and (2) label what's found, neither of which the debugger API
could do before:

- memory.search (MemorySubscriber.cpp): Cheat-Engine-style scan of a memory
  range for a u8/u16/u32/float value, or a byte pattern with an optional
  wildcard mask.
- hle.data.list/add/remove/rename (HLESubscriber.cpp): manage ST_DATA
  symbols (structs, tables, buffers), mirroring the existing hle.func.*
  commands for functions. Needed a new SymbolMap::RemoveData, since only
  RemoveFunction existed - added following the same pattern.

Verified live against a running PPSSPP instance (game.status, cpu.stepping,
memory.search in u32/bytes/masked-bytes modes, and the full
add/list/rename/remove data-symbol lifecycle) via Tools/wsdbg.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XDNwPPuidmNxQGRJxBuRL6
2026-07-26 21:17:09 +02:00
Henrik Rydgård 5f7a937466 Rename ValidSize to ClampValidSizeAt 2025-12-30 20:31:07 +01:00
Silvris 6d5bf32796 initial tests 2025-09-19 02:40:13 -05: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 d3e9398cb3 Split Core_EnableStepping into Core_Break and Core_Resume 2024-11-03 17:53:42 +01:00
Unknown W. Brackets 265a3cf7a0 Debugger: Fix a dumb typo. 2023-01-18 21:42:36 -08:00
Unknown W. Brackets 5b74937780 Debugger: Make sure we don't restore twice.
Aside from the lock, we also don't want to restore emuhacks/replacements
or resume from stepping early.
2023-01-04 23:48:14 -08:00
Unknown W. Brackets a937e5dce3 Debugger: Fix mem lock with optimizations disabled. 2023-01-04 21:41:59 -08:00
Unknown W. Brackets 1233d1d376 Reporting: Disable when debugger methods used.
This won't catch all means of hacking memory, but will catch some.
Trying to reduce noise in reporting from debugging.
2022-07-30 18:21:32 -07: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 9cfaac6d90 Debugger: Invalidate when using memory APIs. 2021-02-13 09:50:04 -08:00
Unknown W. Brackets 3325a27811 Debugger: Cleanup some syntax. 2020-12-28 11:13:54 -08:00
Unknown W. Brackets b5a6693019 Debugger: Add helper to read strings.
This is common, so let's expose as an API.
2020-12-28 11:13:26 -08:00
Unknown W. Brackets 7e5052bc9e Debugger: Add API to read/write chunks of memory.
Using base64 at this point to keep JSON.
2020-12-28 10:30:58 -08:00
Unknown W. Brackets f19d957c42 Debugger: Cleanup memory.read/write validation.
Required parameters fail automatically, better to keep the error
consistent.  This was sending two errors.

Additionally, don't allow it when no game is started yet.
2020-12-28 09:31:30 -08:00
parport0 fd62d30773 Debugger: Add memory.read_*, memory write_* 2020-07-26 01:18:16 +03:00