TTD API cleanup chores (follow-up from PR #1125 review)
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
- Domain
- devtools, reverse-engineering
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
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 returnstd::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: takeexpressionby value (std::string) andstd::moveit intowExpressionrather thanconst std::string&+ copy (core/adapters/dbgengttdadapter.cpp). - Logging: avoid
Log*without a logger, and prefer theLog*Fvariants (faster, more readable, more featureful). The new TTD code uses bareLogInfo/LogError/LogWarnwith 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 siblingTTDMemoryEvent/ related event classes). - Use a typedef'd register-name type instead of native
str. Mirror architecture.py'sRegisterName = 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
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Vector35/debugger
-
bug Effort: Trivial Impact: Low
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
Difficulty 1/5 Under an hour Newbie friendliness 95/100
-
Effort: Trivial enhancement UI
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
All issues in Vector35/debugger
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
-
Sensor initialization takes very long when `--initial-sim-time` is set to current UNIX timestamp Open
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
gazebosim/gz-sensors#662 · 1 comment ·
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
comp-datalake
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
ClickHouse/ClickHouse#121222 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
LadybirdBrowser/ladybird#12123 ·