Skip to content

Add handshake timeout option to KD/KDNET and unlimited TCG hardware breakpoints for QEMU - #37

Merged
dmaivel merged 6 commits into
dmaivel:masterfrom
realoriginal:feat/dbg-improv
Oct 22, 2026
Merged

dmaivel merged 6 commits into
dmaivel:masterfrom
realoriginal:feat/dbg-improv

Conversation

@realoriginal

@realoriginal realoriginal commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

Adds --kd-handshake-timeout for the KD and KDNET backends. The timeout was already exposed through NTOSEYE_KD_TIMEOUT, but having it only as an environment variable felt inconsistent with the other connection options and made it easy to miss in my experience.

The parameter accepts seconds and controls the initial handshake. It is also available through the API as kd_handshake_timeout.

Additionally, removes the four-slot limit on GDB hardware breakpoint records, allowing unlimited hardware breakpoints in QEMU’s TCG mode.

TCG is probably a seldom used, but useful for studying a headless target

realoriginal and others added 6 commits October 15, 2026 06:44
# Conflicts:
#	CHANGELOG.md
#	src/breakpoints/hardware.rs
#	src/gdb/mod.rs
#	src/kd/connect.rs
#	src/kd/mod.rs
#	src/python/mod.rs
#	src/session/hits.rs
#	src/session/tests.rs
# Conflicts:
#	src/backend/gdb/mod.rs
#	src/hosts/cli.rs
#	src/lib.rs
#	src/session/tests.rs
- Regenerate the SDK stub (CI's stub check failed) and match only
  "KD serial socket" in the surface test, since macOS rejects the long
  temporary socket path before checking it exists.
- KdBackend::connect and connect_net take the timeout themselves rather
  than wrapping *_with_handshake_timeout twins; handshake_timeout is pub
  and imported in cli.rs.
- A refused hardware breakpoint reads as a breakpoint error naming KVM's
  four debug registers and `bc`, not as a GDB protocol failure; the KD
  timeout hint names NTOSEYE_KD_TIMEOUT too.
- Move the changelog entry from v0.50.0 to Unreleased and add one for
  the gdb backend's hardware breakpoints.
- Drop tests that pin serde, schemars or defaults, or repeat the Python
  surface tests.
@dmaivel
dmaivel merged commit e89ef4f into dmaivel:master Oct 22, 2026
21 checks passed
@realoriginal
realoriginal deleted the feat/dbg-improv branch October 23, 2026 14:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants