Advance debug port with nesting level to avoid port reuse in CPIs #79
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.
Currently on each program execution the debugger starts listening on $VM_DEBUG_PORT.
This is particularly a problem when there are CPIs as on each CPI another VM is instantiated attempting to reuse $VM_DEBUG_PORT.
This PR aims to address this so that the debugger around the CPI will start listening on $VM_DEBUG_PORT + the nesting level of the current instruction. The idea is to provide predictability at the other end.
The runtime is tightly coupled with SBPF so changes are also needed there. Here are the proposed changes: anza-xyz/agave@8d752f7
While this PR provides a possible fix it is also for provoking a discussion about this problem if there's a more potential solution.
EDIT: Here's another approach that basically allows passing an offset to the debug_port from runtime directly when executing a program:
anza-xyz/agave@e241209
Then add this value to the debug_port:
main...procdump:sbpf:debugger_port_offset