paulo-fernando-silva / vscOctaveDebugger

MIT License
35 stars 4 forks source link

remove_all_breakpoint_in_file: unable to find function ex1 #33

Closed slysenko closed 4 years ago

slysenko commented 4 years ago

Hello,

  1. I have Andrew Ng's course files on my Mac: ~/Projects/HOME/Learn ML AndrewNg/machine-learning-ex1/ex1 my ${workspaceFolder} is ~/Projects/HOME/Learn ML AndrewNg
  2. I open ex1.m file
  3. Create config as follows:
    "configurations": [
        {
            "type": "OctaveDebugger",
            "request": "launch",
            "name": "Function or file to execute.",
            "program": "${file}",
            "octave": "octave-cli",
            "sourceFolder": "${workspaceFolder}",
            "autoTerminate": true
        }
    ]
  4. Set breakpoint at line 33 which is warmUpExercise()
  5. press the Run button
  6. Get the error message in the debug console: error: remove_all_breakpoint_in_file: unable to find function ex1 Runtime: octave-cli exited with code: 1

If I follow the same steps WITHOUT setting a breakpoint, the ex1 file runs fine

paulo-fernando-silva commented 4 years ago

Hi Sergey, I'll have to take a look. In the meanwhile if your workspace is the directory ex1 it should work.

Can you also add a "verbose": true to your launch.json and attach the output from the debug console here? Thanks.

slysenko commented 4 years ago

From client: initialize({"clientID":"vscode","clientName":"Visual Studio Code","adapterID":"OctaveDebugger","pathFormat":"path","linesStartAt1":true,"columnsStartAt1":true,"supportsVariableType":true,"supportsVariablePaging":true,"supportsRunInTerminalRequest":true,"locale":"ru","supportsProgressReporting":true}) To client: {"seq":0,"type":"event","event":"initialized"} To client: {"seq":0,"type":"response","request_seq":1,"command":"initialize","success":true,"body":{"supportsConfigurationDoneRequest":true,"supportsEvaluateForHovers":true,"supportsConditionalBreakpoints":true,"supportsHitConditionalBreakpoints":true,"supportsSetVariable":true,"supportsStepBack":false,"supportTerminateDebuggee":true}} From client: setBreakpoints({"source":{"name":"ex1.m","path":"/Users/slysenko/Projects/HOME/Learn ML AndrewNg/machine-learning-ex1/ex1/ex1.m"},"lines":[33],"breakpoints":[{"line":33}],"sourceModified":false}) From client: launch({"type":"OctaveDebugger","request":"launch","name":"Function or file to execute.","program":"/Users/slysenko/Projects/HOME/Learn ML AndrewNg/machine-learning-ex1/ex1/ex1.m","octave":"octave-cli","sourceFolder":"/Users/slysenko/Projects/HOME/Learn ML AndrewNg","autoTerminate":true,"verbose":true,"__sessionId":"1fdaf9e4-f344-4c10-a580-ed5b385c72df"}) Runtime: connecting to 'octave-cli'. octave-cli:0> addpath('/Users/slysenko/Projects/HOME/Learn ML AndrewNg') octave-cli:1> printf("\nvsc-octave-debugger::1::1\n");dbstatus ex1 printf("\nvsc-octave-debugger::cl\n"); printf("\nvsc-octave-debugger::2::1\n"); To client: {"seq":0,"type":"response","request_seq":3,"command":"launch","success":true} octave-cli:2> printf("\nvsc-octave-debugger::1::2\n");dbclear ex1 printf("\nvsc-octave-debugger::cl\n");dbstop ex1 33 printf("\nvsc-octave-debugger::cl\n"); printf("\nvsc-octave-debugger::2::2\n"); vsc-octave-debugger::cl error: remove_all_breakpoint_in_file: unable to find function ex1 Runtime: octave-cli exited with code: 1 To client: {"seq":0,"type":"event","event":"terminated"} From client: disconnect({"restart":false}) Killing Runtime. octave-cli:3> quit To client: {"seq":0,"type":"response","request_seq":4,"command":"disconnect","success":false,"message":"Error [ERR_STREAM_DESTROYED]: Cannot call write after a stream was destroyed\n at doWrite (_stream_writable.js:414:19)\n at writeOrBuffer (_stream_writable.js:402:5)\n at Socket.Writable.write (_stream_writable.js:302:11)\n at d.execute (/Users/slysenko/.vscode/extensions/paulosilva.vsc-octave-debugger-0.4.2/dist/OctaveDebugger.js:1:33653)\n at disconnect (/Users/slysenko/.vscode/extensions/paulosilva.vsc-octave-debugger-0.4.2/dist/OctaveDebugger.js:1:32751)\n at x.disconnectRequest (/Users/slysenko/.vscode/extensions/paulosilva.vsc-octave-debugger-0.4.2/dist/OctaveDebugger.js:1:38569)\n at x.dispatchRequest (/Users/slysenko/.vscode/extensions/paulosilva.vsc-octave-debugger-0.4.2/dist/OctaveDebugger.js:1:18630)\n at x.dispatchRequest (/Users/slysenko/.vscode/extensions/paulosilva.vsc-octave-debugger-0.4.2/dist/OctaveDebugger.js:1:46693)\n at x.handleMessage (/Users/slysenko/.vscode/extensions/paulosilva.vsc-octave-debugger-0.4.2/dist/OctaveDebugger.js:1:43482)\n at x._handleData (/Users/slysenko/.vscode/extensions/paulosilva.vsc-octave-debugger-0.4.2/dist/OctaveDebugger.js:1:45204)","body":{"error":{"id":1104,"format":"{_stack}","variables":{"_exception":"Cannot call write after a stream was destroyed","_stack":"Error [ERR_STREAM_DESTROYED]: Cannot call write after a stream was destroyed\n at doWrite (_stream_writable.js:414:19)\n at writ[...]

paulo-fernando-silva commented 4 years ago

Hi, check version v0.4.3, it fixes this issue. Please reopen the bug If it doesn't work for you.

As a note, you have to press enter in the DEBUG CONSOLE when ex1 outputs 'Program paused. Press enter to continue.", even though the UI is showing the graphs in the background.