Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added Debug Adapter Protocol implementation and connection with Vscode Extension #271

Merged
merged 96 commits into from
Jul 21, 2023

Conversation

yami2200
Copy link
Member

  • Debug Adapter Protocol Implementation :
    • Add / Remove breakpoints
    • Visualize call stacks details
    • Visualize variables values
    • Pause / Step Over / Step in
  • Connection with VScode extension
    • Start debug session with "Run and Debug" blue button or F5 key. (connects to current running and focused REPL)
    • Execute REPL command :set debugging true/false to start or stop debug session

debugger

yami2200 and others added 30 commits June 5, 2023 10:27
…add temporary implementation for stackTrace, continue and next.
…factor new thread creation in Launcher class.
@jurgenvinju
Copy link
Member

@yami2200 pls pull for the changes in :set debugging semantics and the license headers.

@jurgenvinju
Copy link
Member

@yami2200 is it possible to show the variables of the bottom stack frame? I.e. the REPL's scope? That would be very useful.

@jurgenvinju
Copy link
Member

jurgenvinju commented Jul 18, 2023

I have a stack trace right after (or during( :set debugging true printed in the terminal itself. Still everything works after that.
I used auto-complete on the d<TAB>.

rascal>Jul 18, 2023 9:49:55 AM org.eclipse.lsp4j.jsonrpc.RemoteEndpoint fallbackResponseError
SEVERE: Internal error: Parse error
at file:///Users/jurgenv/git/rascal/src/org/rascalmpl/repl/BaseRascalREPL.java offset=0 length=1 begin=1:0 end=1:1
java.util.concurrent.CompletionException: Parse error
at file:///Users/jurgenv/git/rascal/src/org/rascalmpl/repl/BaseRascalREPL.java offset=0 length=1 begin=1:0 end=1:1
        at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:314)
        at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:319)
        at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1702)
        at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:1692)
        at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
        at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
        at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
        at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
        at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)
Caused by: Parse error
at file:///Users/jurgenv/git/rascal/src/org/rascalmpl/repl/BaseRascalREPL.java offset=0 length=1 begin=1:0 end=1:1
        at org.rascalmpl.parser.gtd.SGTDBF.parse(SGTDBF.java:1197)
        at org.rascalmpl.parser.gtd.SGTDBF.parse(SGTDBF.java:1235)
        at org.rascalmpl.parser.gtd.SGTDBF.parse(SGTDBF.java:1240)
        at org.rascalmpl.parser.gtd.SGTDBF.parse(SGTDBF.java:1252)
        at org.rascalmpl.vscode.lsp.util.RascalServices.parseRascalModule(RascalServices.java:42)
        at org.rascalmpl.vscode.lsp.dap.RascalDebugAdapter.lambda$setBreakpoints$1(RascalDebugAdapter.java:145)
        at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1700)
        ... 6 more

Jul 18, 2023 9:49:55 AM org.eclipse.lsp4j.jsonrpc.RemoteEndpoint fallbackResponseError
SEVERE: Internal error: Parse error
at file:///Users/jurgenv/git/rascal/src/org/rascalmpl/library/Prelude.java offset=797 length=1 begin=17:0 end=17:1
java.util.concurrent.CompletionException: Parse error
at file:///Users/jurgenv/git/rascal/src/org/rascalmpl/library/Prelude.java offset=797 length=1 begin=17:0 end=17:1
        at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:314)
        at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:319)
        at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1702)
        at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:1692)
        at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
        at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
        at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
        at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
        at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)
Caused by: Parse error
at file:///Users/jurgenv/git/rascal/src/org/rascalmpl/library/Prelude.java offset=797 length=1 begin=17:0 end=17:1
        at org.rascalmpl.parser.gtd.SGTDBF.parse(SGTDBF.java:1197)
        at org.rascalmpl.parser.gtd.SGTDBF.parse(SGTDBF.java:1235)
        at org.rascalmpl.parser.gtd.SGTDBF.parse(SGTDBF.java:1240)
        at org.rascalmpl.parser.gtd.SGTDBF.parse(SGTDBF.java:1252)
        at org.rascalmpl.vscode.lsp.util.RascalServices.parseRascalModule(RascalServices.java:42)
        at org.rascalmpl.vscode.lsp.dap.RascalDebugAdapter.lambda$setBreakpoints$1(RascalDebugAdapter.java:145)
        at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1700)
        ... 6 more

Jul 18, 2023 9:49:55 AM org.eclipse.lsp4j.jsonrpc.RemoteEndpoint fallbackResponseError
SEVERE: Internal error: Parse error
at file:///Users/jurgenv/git/rascal/src/org/rascalmpl/values/parsetrees/SymbolAdapter.java offset=699 length=1 begin=16:0 end=16:1
java.util.concurrent.CompletionException: Parse error
at file:///Users/jurgenv/git/rascal/src/org/rascalmpl/values/parsetrees/SymbolAdapter.java offset=699 length=1 begin=16:0 end=16:1
        at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:314)
        at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:319)
        at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1702)
        at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:1692)
        at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
        at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
        at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
        at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
        at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)
Caused by: Parse error
at file:///Users/jurgenv/git/rascal/src/org/rascalmpl/values/parsetrees/SymbolAdapter.java offset=699 length=1 begin=16:0 end=16:1
        at org.rascalmpl.parser.gtd.SGTDBF.parse(SGTDBF.java:1197)
        at org.rascalmpl.parser.gtd.SGTDBF.parse(SGTDBF.java:1235)
        at org.rascalmpl.parser.gtd.SGTDBF.parse(SGTDBF.java:1240)
        at org.rascalmpl.parser.gtd.SGTDBF.parse(SGTDBF.java:1252)
        at org.rascalmpl.vscode.lsp.util.RascalServices.parseRascalModule(RascalServices.java:42)
        at org.rascalmpl.vscode.lsp.dap.RascalDebugAdapter.lambda$setBreakpoints$1(RascalDebugAdapter.java:145)
        at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1700)
        ... 6 more

Jul 18, 2023 9:49:55 AM org.eclipse.lsp4j.jsonrpc.RemoteEndpoint fallbackResponseError
SEVERE: Internal error: Parse error
at file:///Users/jurgenv/git/rascal/src/org/rascalmpl/types/NonTerminalType.java offset=611 length=1 begin=14:0 end=14:1
java.util.concurrent.CompletionException: Parse error
at file:///Users/jurgenv/git/rascal/src/org/rascalmpl/types/NonTerminalType.java offset=611 length=1 begin=14:0 end=14:1
        at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:314)
        at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:319)
        at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1702)
        at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:1692)
        at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
        at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
        at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
        at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
        at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)
Caused by: Parse error
at file:///Users/jurgenv/git/rascal/src/org/rascalmpl/types/NonTerminalType.java offset=611 length=1 begin=14:0 end=14:1
        at org.rascalmpl.parser.gtd.SGTDBF.parse(SGTDBF.java:1197)
        at org.rascalmpl.parser.gtd.SGTDBF.parse(SGTDBF.java:1235)
        at org.rascalmpl.parser.gtd.SGTDBF.parse(SGTDBF.java:1240)
        at org.rascalmpl.parser.gtd.SGTDBF.parse(SGTDBF.java:1252)
        at org.rascalmpl.vscode.lsp.util.RascalServices.parseRascalModule(RascalServices.java:42)
        at org.rascalmpl.vscode.lsp.dap.RascalDebugAdapter.lambda$setBreakpoints$1(RascalDebugAdapter.java:145)
        at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1700)
        ... 6 more


cancelled

@DavyLandman DavyLandman merged commit da1ac36 into usethesource:main Jul 21, 2023
2 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants