feat(dap): capture debuggee stdio #1169
Open
+94
−0
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.
Description
Hi! This PR adds support for capturing debuggee
stdout/stderroutput and forwarding it as DAP output events. On spawning (or attaching to a live process) spawn 2 background threads for reading fromstdoutandstderr, and redirecting data as DAP output events.How to test
The linked issue and the fix can be easily reproduced with the Zed editor - https://zed.dev
bundle installtest.rbfile and hit F4 to start the debuggerDebug filedebuggem you should not seeHello from stdoutandHello from stderrGemfileand replace the originaldebuggem with the patched version.bundle installtest.rbfile again and hit F4 to start the debuggerHello from stdoutandHello from stderrin theOutputpanel.I understand that installing Zed and other things can be redundant so I recorded a small demo to demonstrate the fix:
rdbg_fix_stdio.mp4
Additional comments
Closes #1160
Let me know what do you think. Thanks!