Uh oh!
There was an error while loading. Please reload this page.
Rework the debugger contracts while nothing implements them - #358
Draft
danielpourbakhsh wants to merge 1 commit into
Draft
Rework the debugger contracts while nothing implements them#358danielpourbakhsh wants to merge 1 commit into
danielpourbakhsh wants to merge 1 commit into
Conversation
danielpourbakhsh
marked this pull request as draft
August 31, 2026 22:06
OneWare.Essentials/Debugger is published API but has no implementer in this tree, so every signature here can still change without breaking anyone. That window closes as soon as one exists. IDebugAdapter becomes IDebugSessionLauncher and IDebugLaunchProvider becomes IDebugTargetPreparer: the old names described patterns, the new ones say what the implementer does. AdapterId on the request follows as BackendId, and RegisterValue becomes DebugRegisterValue so that every published entity shares one prefix. DebugTargetProfile is new. It carries what the debugger needs to know about a target beyond its executable - bytes per addressable unit, byte order, the register names that exist, how many breakpoints it holds, whether it keeps a call stack. A generic panel can derive none of that: on a machine whose smallest addressable unit is wider than a byte, the debug information reports addresses in units while the backend reads bytes, and nothing in the panel could know the factor. Every member has a byte-addressed default, so a target that states nothing behaves exactly as before. DebugLaunchRequest gains InitCommands, the commands a backend applies before it connects to the target. The alternative is a file next to the executable whose name both sides have to agree on without either contract saying so.
danielpourbakhshforce-pushed
the
feature/debugger-contracts-rework
branch
from
September 4, 2026 20:49
f877ff1 to
888e201Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
OneWare.Essentials/Debuggeris published API with no implementer in this tree yet, so every signature in it can still change without breaking anyone. That window closes as soon as one exists — this is the change to make while it is open.IDebugAdapter→IDebugSessionLauncher,IDebugLaunchProvider→IDebugTargetPreparer. The old names described patterns, the new ones say what the implementer actually does.AdapterIdon the request follows asBackendId.RegisterValue→DebugRegisterValue, so that every published entity shares one prefix.DebugTargetProfile— what the debugger needs to know about a target beyond its executable: bytes per addressable unit, byte order, which registers exist, how many breakpoints it holds, whether it keeps a call stack. A generic panel can derive none of that. On a machine whose smallest addressable unit is wider than a byte, the debug information reports addresses in units while the backend reads bytes, and nothing in the panel could know the factor. Every member has a byte-addressed default, so a target that states nothing behaves exactly as today.DebugLaunchRequestgainsInitCommands, the commands a backend applies before it connects to the target. The alternative is a file next to the executable whose name both sides have to agree on without either contract saying so.Nothing outside this folder references the old names, so the rename is self-contained. Builds on its own against
main.