Commit Graph
16 Commits
Author SHA1 Message Date
Henrik RydgårdandClaude Opus 5 8120338530 Add cpu.runUntilTime: run to a point in emulated time and break there
Lining a scripted repro up with a bug report ("about five seconds in, press
X") had no support at all. The only way to do it was to poll cpu.status in a
loop from the client, which is slow - a process spawn per poll, minutes for a
single run - and lands somewhere different every time, so the repro isn't one.

cpu.runUntilTime takes either an absolute `us` (as reported by cpu.status) or
`relativeUs` from now, resumes, and breaks when emulated time gets there. It
answers immediately with the target, and the usual cpu.stepping event follows
when it arrives. Anything else that stops the CPU first - a breakpoint, an
exception - cancels the deadline, the same way it cancels a pending step.

The deadline is held in microseconds, not ticks, and recomputed whenever
SetClockFrequencyHz() runs. Converting to a tick count once up front looks
right and isn't: games change the CPU clock while running, and CrossCraft
Classic goes 222 -> 333MHz during startup, which made a request for 3.0s stop
at 2.24s. With the recompute it stops at exactly 3000000us. Advance() also
shortens its slice to land on the deadline instead of up to a slice past it,
so repeated runs stop at the same instruction rather than somewhere in the
following frame.

Nothing is added to CoreTiming's event list, so savestates are unaffected -
the deadline is debugger session state and isn't serialized.

Also adds DebuggerRequest::ParamF64, since microseconds outgrow 32 bits after
about 71 minutes. Like the other Param* helpers it fails loudly on a missing
or unparseable value rather than defaulting.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GZq8ZtJmFY7bkX5FVkr3P9
2026-08-18 09:32:04 +02:00
Unknown W. Brackets 09f0c0c8fd Fixed syntax accessing method reviewed by Unknown W. Brackets <checkins@unknownbrackets.org>
Signed-off-by: lainon <GermanAizek@yandex.ru>
2022-10-03 10:47:55 +03:00
lainon b304551747 Code readability, vec reserve() and remove excess c_str() 2022-09-30 12:31:32 +03:00
lainon fec708489a Correct cleaning string and remove unused vars 2022-09-30 12:26:30 +03:00
Unknown W. Brackets 5904900d37 Debugger: Add APIs to set/list/search mem tags. 2021-04-06 12:09:39 -07:00
Henrik Rydgård 989e353482 Common.h shouldn't include Log.h.
Buildfixes

More buildfixes. Move JSON code to common.
2020-10-04 11:42:14 +02:00
Henrik Rydgård ff8148dd92 Move native/util, native/data and native/i18 to Common/Data.
Also move colorutil.cpp/h

linking build fix experiment

Delete a bunch of unused CMakeLists.txt files

CMakeLists.txt linking fix

Don't include NativeApp.h from any headers.

Android.mk buildfix

Half of the UWP fix

Buildfix

Minor project file cleanup

Buildfixes

Guess what? More buildfixes!
2020-10-04 07:28:29 +02:00
Unknown W. Brackets a0f8e788f3 Global: Move string number parse to text/parsers.
It's not used as much as the other string utils.
2020-08-10 07:05:23 -07:00
Unknown W. Brackets 29d93c56c7 Debugger: Initial breakpoint APIs. 2018-06-08 06:59:18 -07:00
Unknown W. Brackets 2f3b6c19d0 Debugger: Poll frequently after stepping.
This will make us listen for events slightly less often, so we don't want
to sustain it.
2018-06-08 06:59:17 -07:00
Unknown W. Brackets ccea863f00 Debugger: Use fragments for long chunks.
Gets it on the wire faster.  More importantly, this allows us to usually
avoid rampant memory allocation even for large responses.
2018-06-08 06:59:17 -07:00
Unknown W. Brackets f66738eac7 Debugger: Add cpu.evaluate method.
Probably useful for a bunch of things, really.
2018-06-08 06:59:17 -07:00
Unknown W. Brackets 944948a5f4 Debugger: Initial disasm API. 2018-06-08 06:59:17 -07:00
Unknown W. Brackets 3c458310ed Debugger: Allow setting regs to inf/nan. 2018-06-08 06:59:16 -07:00
Unknown W. Brackets be3b50dd74 Debugger: Improve JSON number parsing.
With gason, this becomes doable without overflow issues.
2018-06-08 06:59:16 -07:00
Unknown W. Brackets 1f987bf1c1 Debugger: Initial register get/set APIs. 2018-06-08 06:59:16 -07:00