TTD API cleanup chores (follow-up from PR #1125 review)

Open
#1,131 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
52/100
Issue type
Refactor
Clarity
Mostly clear
Activity status
Quiet
Tech stack
cpp, python

Research direction

Start with the TTD declarations in api/debuggerapi.h, the controller and adapter, especially core/adapters/dbgengttdadapter.cpp and ParseSingleTTDRegisterWriteObject. Then inspect api/python/debuggercontroller.py and architecture.py's RegisterName definition. Done means the listed C++ return types and parameter conventions, logging patterns, and Python event classes and register-name types are updated consistently across the TTD APIs.

Written by the indexing model from the issue text.

Description

DbgEng Adapter python api TTD

Follow-up chores from @plafosse's review of #1125 (approved contingent only on the std::pair<bool,…>std::optional fix, which has been done). These are the remaining "holistic / light mechanical refactor" items. They aren't specific to the register-write code — most apply to the surrounding TTD query APIs generally — so tracking them here rather than blocking that PR.

C++
  • std::pair<bool, T>std::optional<T> everywhere. Done for the register-write methods in #1125; the pre-existing TTD memory-access methods (GetTTDNext/PrevMemoryAccess) still return std::pair<bool, TTDMemoryEvent> and should be migrated for consistency.
  • Register-name parameters: const std::string&std::string_view. Applies to the TTD query methods that take a register name (api/debuggerapi.h, controller, adapter).
  • ParseSingleTTDRegisterWriteObject: take expression by value (std::string) and std::move it into wExpression rather than const std::string& + copy (core/adapters/dbgengttdadapter.cpp).
  • Logging: avoid Log* without a logger, and prefer the Log*F variants (faster, more readable, more featureful). The new TTD code uses bare LogInfo/LogError/LogWarn with printf-style args — this pattern is repo-wide in the debugger, so worth a broader sweep.
Python (api/python/debuggercontroller.py)
  • Make the event classes frozen @dataclasses instead of hand-rolled classes with manual __eq__/__hash__/__setattr__ (TTDRegisterWriteEvent, and the sibling TTDMemoryEvent / related event classes).
  • Use a typedef'd register-name type instead of native str. Mirror architecture.py's RegisterName = NewType('RegisterName', str) for register-name parameters.

Review comments: https://github.com/Vector35/debugger/pull/1125#pullrequestreview

Dominant language
C++
Stars
331
Forks
33
PR merge metrics
No merged PRs in 30d

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from Vector35/debugger

All issues in Vector35/debugger

Similar issues

More C++ issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.