Subprocess debugging not supported
See original GitHub issueDoes this issue occur when all extensions are disabled?: Yes/No (N/A, requires the Python and Jupyter extensions)
- VS Code Version: 1.66.2 (Universal) Commit: dfd34e8260c270da74b5c2d86d61aee4b6d56977
- OS Version: macOS Monterey (12.1)
Steps to Reproduce:
I admit that I donāt have any good intuition at this point if this is a bug with VS code, or if itās a coincidence with some wonkiness in my Python environments, or what exactly is happening, but I truly donāt understand the behavior Iām observing.
My apologies for splitting the description over a few cells, but the stack traces are too long to fit in one post.
- A minimal example reproducing the bug (though I admit I canāt imagine in what that particular cell would cause this to fail) is available in the last cell of this notebook: https://github.com/guydav/simple-relational-reasoning/blob/quinn-epxanded/notebooks/BugReproduction.ipynb
- This cell successfully runs every conda environment I have on my machine (using both Python 3.8.2 and 3.9.7), but only successfully debugs in my base conda environment. In every other environment (including ones where debugging cells worked up until recently), debugging this cell throws the following error: āInvalid message: Session is already startedā and offers to open launch.json.
Below is a full trace of the Jupyter output in verbose, cleared before attempting to debug the relevant cell, when it succeeds:
Verbose 16:26:05: IKernel Status change to busy
Verbose 16:26:05: IKernel Status change to idle
Info 16:26:05: Executing silently Code (completed) = import ipykernel\nprint(ipykernel.__version__)
Verbose 16:26:05: [Debug] to kernel: {"command":"initialize","arguments":{"clientID":"vscode","clientName":"Visual Studio Code","adapterID":"Python Kernel Debug Adapter","pathFormat":"path","linesStartAt1":true,"columnsStartAt1":true,"supportsVariableType":true,"supportsVariablePaging":true,"supportsRunInTerminalRequest":true,"locale":"en-us","supportsProgressReporting":true,"supportsInvalidatedEvent":true,"supportsMemoryReferences":true},"type":"request","seq":1}
Verbose 16:26:05: IKernel Status change to busy
Verbose 16:26:05: [Debug] event: {"header":{"msg_id":"a5f90694-7be1056687156ded0a44d86a_520","msg_type":"debug_event","username":"guydavidson","session":"a5f90694-7be1056687156ded0a44d86a","date":"2022-05-03T20:26:05.175092Z","version":"5.3"},"msg_id":"a5f90694-7be1056687156ded0a44d86a_520","msg_type":"debug_event","parent_header":{"date":"2022-05-03T20:26:05.172000Z","msg_id":"a393516e-0822-4391-8ccc-4a99444fbeaa","msg_type":"debug_request","session":"d91e69c7-1073-4444-9bbe-75ee20785bba","username":"","version":"5.2"},"metadata":{},"content":{"seq":1,"type":"event","event":"output","body":{"category":"telemetry","output":"ptvsd","data":{"packageVersion":"1.4.1"}}},"buffers":[],"channel":"iopub"}
Verbose 16:26:05: [Debug] event: {"header":{"msg_id":"a5f90694-7be1056687156ded0a44d86a_521","msg_type":"debug_event","username":"guydavidson","session":"a5f90694-7be1056687156ded0a44d86a","date":"2022-05-03T20:26:05.175495Z","version":"5.3"},"msg_id":"a5f90694-7be1056687156ded0a44d86a_521","msg_type":"debug_event","parent_header":{"date":"2022-05-03T20:26:05.172000Z","msg_id":"a393516e-0822-4391-8ccc-4a99444fbeaa","msg_type":"debug_request","session":"d91e69c7-1073-4444-9bbe-75ee20785bba","username":"","version":"5.2"},"metadata":{},"content":{"seq":2,"type":"event","event":"output","body":{"category":"telemetry","output":"debugpy","data":{"packageVersion":"1.4.1"}}},"buffers":[],"channel":"iopub"}
Verbose 16:26:05: IKernel Status change to idle
Verbose 16:26:05: [Debug] response: {"seq":3,"type":"response","request_seq":1,"success":true,"command":"initialize","body":{"supportsCompletionsRequest":true,"supportsConditionalBreakpoints":true,"supportsConfigurationDoneRequest":true,"supportsDebuggerProperties":true,"supportsDelayedStackTraceLoading":true,"supportsEvaluateForHovers":true,"supportsExceptionInfoRequest":true,"supportsExceptionOptions":true,"supportsFunctionBreakpoints":true,"supportsHitConditionalBreakpoints":true,"supportsLogPoints":true,"supportsModulesRequest":true,"supportsSetExpression":true,"supportsSetVariable":true,"supportsValueFormattingOptions":true,"supportsTerminateDebuggee":true,"supportsGotoTargetsRequest":true,"supportsClipboardContext":true,"exceptionBreakpointFilters":[{"filter":"raised","label":"Raised Exceptions","default":false},{"filter":"uncaught","label":"Uncaught Exceptions","default":true}],"supportsStepInTargetsRequest":true}}
Verbose 16:26:05: [Debug] to kernel: {"command":"debugInfo","type":"request","seq":3}
Verbose 16:26:05: IKernel Status change to busy
Verbose 16:26:05: IKernel Status change to idle
Verbose 16:26:05: [Debug] response: {"type":"response","request_seq":3,"success":true,"command":"debugInfo","body":{"isStarted":true,"hashMethod":"Murmur2","hashSeed":3339675911,"tmpFilePrefix":"/var/folders/h9/kzpqpksx6fq00v9d73x5j51c0000gn/T/ipykernel_25611/","tmpFileSuffix":".py","breakpoints":[],"stoppedThreads":[]}}
Verbose 16:26:05: [Debug] to kernel: {"command":"attach","arguments":{"type":"Python Kernel Debug Adapter","name":"BugReproduction.ipynb","request":"attach","justMyCode":true,"__mode":1,"__cellIndex":3,"__sessionId":"674c28d6-9c8b-44e2-814d-870c2021f3d7"},"type":"request","seq":2}
Verbose 16:26:05: IKernel Status change to busy
Verbose 16:26:05: [Debug] event: {"header":{"msg_id":"a5f90694-7be1056687156ded0a44d86a_528","msg_type":"debug_event","username":"guydavidson","session":"a5f90694-7be1056687156ded0a44d86a","date":"2022-05-03T20:26:05.201934Z","version":"5.3"},"msg_id":"a5f90694-7be1056687156ded0a44d86a_528","msg_type":"debug_event","parent_header":{"date":"2022-05-03T20:26:05.199000Z","msg_id":"1e20aa47-ba4c-4074-ad30-932510670ed9","msg_type":"debug_request","session":"d91e69c7-1073-4444-9bbe-75ee20785bba","username":"","version":"5.2"},"metadata":{},"content":{"seq":4,"type":"event","event":"debugpyWaitingForServer","body":{"host":"127.0.0.1","port":52928}},"buffers":[],"channel":"iopub"}
Verbose 16:26:05: [Debug] event: {"header":{"msg_id":"a5f90694-7be1056687156ded0a44d86a_529","msg_type":"debug_event","username":"guydavidson","session":"a5f90694-7be1056687156ded0a44d86a","date":"2022-05-03T20:26:05.204465Z","version":"5.3"},"msg_id":"a5f90694-7be1056687156ded0a44d86a_529","msg_type":"debug_event","parent_header":{"date":"2022-05-03T20:26:05.199000Z","msg_id":"1e20aa47-ba4c-4074-ad30-932510670ed9","msg_type":"debug_request","session":"d91e69c7-1073-4444-9bbe-75ee20785bba","username":"","version":"5.2"},"metadata":{},"content":{"seq":5,"type":"event","event":"initialized"},"buffers":[],"channel":"iopub"}
Verbose 16:26:05: IKernel Status change to idle
Verbose 16:26:05: [Debug] event: {"header":{"msg_id":"a5f90694-7be1056687156ded0a44d86a_532","msg_type":"debug_event","username":"guydavidson","session":"a5f90694-7be1056687156ded0a44d86a","date":"2022-05-03T20:26:05.206936Z","version":"5.3"},"msg_id":"a5f90694-7be1056687156ded0a44d86a_532","msg_type":"debug_event","parent_header":{"date":"2022-05-03T20:26:05.199000Z","msg_id":"1e20aa47-ba4c-4074-ad30-932510670ed9","msg_type":"debug_request","session":"d91e69c7-1073-4444-9bbe-75ee20785bba","username":"","version":"5.2"},"metadata":{},"content":{"seq":8,"type":"event","event":"process","body":{"name":"/Users/guydavidson/opt/anaconda3/lib/python3.9/site-packages/ipykernel_launcher.py","systemProcessId":25611,"isLocalProcess":true,"startMethod":"attach"}},"buffers":[],"channel":"iopub"}
Verbose 16:26:05: [Debug] response: {"seq":7,"type":"response","request_seq":2,"success":true,"command":"attach"}
Verbose 16:26:05: [Debug] event: {"header":{"msg_id":"a5f90694-7be1056687156ded0a44d86a_533","msg_type":"debug_event","username":"guydavidson","session":"a5f90694-7be1056687156ded0a44d86a","date":"2022-05-03T20:26:05.207232Z","version":"5.3"},"msg_id":"a5f90694-7be1056687156ded0a44d86a_533","msg_type":"debug_event","parent_header":{"date":"2022-05-03T20:26:05.199000Z","msg_id":"1e20aa47-ba4c-4074-ad30-932510670ed9","msg_type":"debug_request","session":"d91e69c7-1073-4444-9bbe-75ee20785bba","username":"","version":"5.2"},"metadata":{},"content":{"seq":9,"type":"event","event":"thread","body":{"reason":"started","threadId":1}},"buffers":[],"channel":"iopub"}
Verbose 16:26:05: [Debug] event: {"header":{"msg_id":"a5f90694-7be1056687156ded0a44d86a_534","msg_type":"debug_event","username":"guydavidson","session":"a5f90694-7be1056687156ded0a44d86a","date":"2022-05-03T20:26:05.207408Z","version":"5.3"},"msg_id":"a5f90694-7be1056687156ded0a44d86a_534","msg_type":"debug_event","parent_header":{"date":"2022-05-03T20:26:05.199000Z","msg_id":"1e20aa47-ba4c-4074-ad30-932510670ed9","msg_type":"debug_request","session":"d91e69c7-1073-4444-9bbe-75ee20785bba","username":"","version":"5.2"},"metadata":{},"content":{"seq":10,"type":"event","event":"thread","body":{"reason":"started","threadId":2}},"buffers":[],"channel":"iopub"}
Verbose 16:26:05: [Debug] event: {"header":{"msg_id":"a5f90694-7be1056687156ded0a44d86a_535","msg_type":"debug_event","username":"guydavidson","session":"a5f90694-7be1056687156ded0a44d86a","date":"2022-05-03T20:26:05.207630Z","version":"5.3"},"msg_id":"a5f90694-7be1056687156ded0a44d86a_535","msg_type":"debug_event","parent_header":{"date":"2022-05-03T20:26:05.199000Z","msg_id":"1e20aa47-ba4c-4074-ad30-932510670ed9","msg_type":"debug_request","session":"d91e69c7-1073-4444-9bbe-75ee20785bba","username":"","version":"5.2"},"metadata":{},"content":{"seq":11,"type":"event","event":"thread","body":{"reason":"started","threadId":3}},"buffers":[],"channel":"iopub"}
Verbose 16:26:05: [Debug] event: {"header":{"msg_id":"a5f90694-7be1056687156ded0a44d86a_536","msg_type":"debug_event","username":"guydavidson","session":"a5f90694-7be1056687156ded0a44d86a","date":"2022-05-03T20:26:05.207815Z","version":"5.3"},"msg_id":"a5f90694-7be1056687156ded0a44d86a_536","msg_type":"debug_event","parent_header":{"date":"2022-05-03T20:26:05.199000Z","msg_id":"1e20aa47-ba4c-4074-ad30-932510670ed9","msg_type":"debug_request","session":"d91e69c7-1073-4444-9bbe-75ee20785bba","username":"","version":"5.2"},"metadata":{},"content":{"seq":12,"type":"event","event":"thread","body":{"reason":"started","threadId":4}},"buffers":[],"channel":"iopub"}
Verbose 16:26:05: [Debug] event: {"header":{"msg_id":"a5f90694-7be1056687156ded0a44d86a_537","msg_type":"debug_event","username":"guydavidson","session":"a5f90694-7be1056687156ded0a44d86a","date":"2022-05-03T20:26:05.207972Z","version":"5.3"},"msg_id":"a5f90694-7be1056687156ded0a44d86a_537","msg_type":"debug_event","parent_header":{"date":"2022-05-03T20:26:05.199000Z","msg_id":"1e20aa47-ba4c-4074-ad30-932510670ed9","msg_type":"debug_request","session":"d91e69c7-1073-4444-9bbe-75ee20785bba","username":"","version":"5.2"},"metadata":{},"content":{"seq":13,"type":"event","event":"thread","body":{"reason":"started","threadId":5}},"buffers":[],"channel":"iopub"}
Verbose 16:26:05: [Debug] event: {"header":{"msg_id":"a5f90694-7be1056687156ded0a44d86a_538","msg_type":"debug_event","username":"guydavidson","session":"a5f90694-7be1056687156ded0a44d86a","date":"2022-05-03T20:26:05.208233Z","version":"5.3"},"msg_id":"a5f90694-7be1056687156ded0a44d86a_538","msg_type":"debug_event","parent_header":{"date":"2022-05-03T20:26:05.199000Z","msg_id":"1e20aa47-ba4c-4074-ad30-932510670ed9","msg_type":"debug_request","session":"d91e69c7-1073-4444-9bbe-75ee20785bba","username":"","version":"5.2"},"metadata":{},"content":{"seq":14,"type":"event","event":"thread","body":{"reason":"started","threadId":6}},"buffers":[],"channel":"iopub"}
Verbose 16:26:05: [Debug] to kernel: {"command":"setBreakpoints","arguments":{"source":{"name":"models.py","path":"/Users/guydavidson/projects/simple-relational-reasoning/simple_relational_reasoning/embeddings/models.py"},"lines":[],"breakpoints":[],"sourceModified":false},"type":"request","seq":4}
Verbose 16:26:05: [Debug] to kernel: {"command":"setBreakpoints","arguments":{"source":{"name":"NewCentroidAnalysis.ipynb","path":"vscode-notebook-cell:/Users/guydavidson/projects/simple-relational-reasoning/notebooks/NewCentroidAnalysis.ipynb#ch0000003"},"lines":[15],"breakpoints":[{"line":15}],"sourceModified":false},"type":"request","seq":5}
Verbose 16:26:05: [Debug] to kernel: {"command":"setBreakpoints","arguments":{"source":{"name":"quinn_objects.py","path":"/Users/guydavidson/projects/simple-relational-reasoning/simple_relational_reasoning/datagen/quinn_objects.py"},"lines":[],"breakpoints":[],"sourceModified":false},"type":"request","seq":6}
Verbose 16:26:05: [Debug] to kernel: {"command":"setBreakpoints","arguments":{"source":{"name":"QuinnCentroidsAnalysis.ipynb","path":"vscode-notebook-cell:/Users/guydavidson/projects/simple-relational-reasoning/notebooks/QuinnCentroidsAnalysis.ipynb#ch0000004"},"lines":[58],"breakpoints":[{"line":58}],"sourceModified":false},"type":"request","seq":7}
Verbose 16:26:05: [Debug] to kernel: {"command":"setBreakpoints","arguments":{"source":{"name":"QuinnDataAnalysis.ipynb","path":"vscode-notebook-cell:/Users/guydavidson/projects/simple-relational-reasoning/notebooks/QuinnDataAnalysis.ipynb#ch0000032"},"lines":[],"breakpoints":[],"sourceModified":false},"type":"request","seq":8}
Verbose 16:26:05: [Debug] to kernel: {"command":"setBreakpoints","arguments":{"source":{"name":"QuinnDataAnalysis.ipynb","path":"vscode-notebook-cell:/Users/guydavidson/projects/simple-relational-reasoning/notebooks/QuinnDataAnalysis.ipynb#ch0000015"},"lines":[],"breakpoints":[],"sourceModified":false},"type":"request","seq":9}
Verbose 16:26:05: [Debug] to kernel: {"command":"setBreakpoints","arguments":{"source":{"name":"QuinnEmbeddingDebugging.ipynb","path":"vscode-notebook-cell:/Users/guydavidson/projects/simple-relational-reasoning/notebooks/QuinnEmbeddingDebugging.ipynb#ch0000004"},"lines":[],"breakpoints":[],"sourceModified":false},"type":"request","seq":10}
Verbose 16:26:05: [Debug] to kernel: {"command":"setBreakpoints","arguments":{"source":{"name":"QuinnEmbeddingTask.ipynb","path":"vscode-notebook-cell:/Users/guydavidson/projects/simple-relational-reasoning/notebooks/QuinnEmbeddingTask.ipynb#ch0000065"},"lines":[],"breakpoints":[],"sourceModified":false},"type":"request","seq":11}
Verbose 16:26:05: [Debug] to kernel: {"command":"setBreakpoints","arguments":{"source":{"name":"QuinnStimuliDemo.ipynb","path":"vscode-notebook-cell:/Users/guydavidson/projects/simple-relational-reasoning/notebooks/QuinnStimuliDemo.ipynb#ch0000015"},"lines":[],"breakpoints":[],"sourceModified":false},"type":"request","seq":12}
Verbose 16:26:05: [Debug] to kernel: {"command":"setBreakpoints","arguments":{"source":{"name":"QuinnStimuliDemo.ipynb","path":"vscode-notebook-cell:/Users/guydavidson/projects/simple-relational-reasoning/notebooks/QuinnStimuliDemo.ipynb#ch0000007"},"lines":[],"breakpoints":[],"sourceModified":false},"type":"request","seq":13}
Verbose 16:26:05: [Debug] to kernel: {"command":"setBreakpoints","arguments":{"source":{"name":"run_embeddings.py","path":"/Users/guydavidson/projects/simple-relational-reasoning/run/run_embeddings.py"},"lines":[],"breakpoints":[],"sourceModified":false},"type":"request","seq":14}
Verbose 16:26:05: [Debug] to kernel: {"command":"setBreakpoints","arguments":{"source":{"name":"stimuli.py","path":"/Users/guydavidson/projects/simple-relational-reasoning/simple_relational_reasoning/embeddings/stimuli.py"},"lines":[],"breakpoints":[],"sourceModified":false},"type":"request","seq":15}
Verbose 16:26:05: [Debug] to kernel: {"command":"setBreakpoints","arguments":{"source":{"name":"task.py","path":"/Users/guydavidson/projects/simple-relational-reasoning/simple_relational_reasoning/embeddings/task.py"},"lines":[],"breakpoints":[],"sourceModified":false},"type":"request","seq":16}
Verbose 16:26:05: [Debug] to kernel: {"command":"setBreakpoints","arguments":{"source":{"name":"triplets.py","path":"/Users/guydavidson/projects/simple-relational-reasoning/simple_relational_reasoning/embeddings/triplets.py"},"lines":[185],"breakpoints":[{"line":185,"condition":"-target_horizontal_margin >= target_horizontal_margin - target_distance"}],"sourceModified":false},"type":"request","seq":17}
Verbose 16:26:05: IKernel Status change to busy
Verbose 16:26:05: IKernel Status change to idle
Verbose 16:26:05: IKernel Status change to busy
Verbose 16:26:05: [Debug] response: {"seq":15,"type":"response","request_seq":4,"success":true,"command":"setBreakpoints","body":{"breakpoints":[]}}
Verbose 16:26:05: IKernel Status change to idle
Verbose 16:26:05: IKernel Status change to busy
Verbose 16:26:05: [Debug] response: {"seq":16,"type":"response","request_seq":5,"success":true,"command":"setBreakpoints","body":{"breakpoints":[{"verified":false,"message":"Breakpoint in file that does not exist.","source":{"name":"NewCentroidAnalysis.ipynb","path":"vscode-notebook-cell:/Users/guydavidson/projects/simple-relational-reasoning/notebooks/NewCentroidAnalysis.ipynb#ch0000003"},"line":15}]}}
Verbose 16:26:05: IKernel Status change to idle
Verbose 16:26:05: IKernel Status change to busy
Verbose 16:26:05: [Debug] response: {"seq":17,"type":"response","request_seq":6,"success":true,"command":"setBreakpoints","body":{"breakpoints":[]}}
Verbose 16:26:05: [Debug] response: {"seq":18,"type":"response","request_seq":7,"success":true,"command":"setBreakpoints","body":{"breakpoints":[{"verified":false,"message":"Breakpoint in file that does not exist.","source":{"name":"QuinnCentroidsAnalysis.ipynb","path":"vscode-notebook-cell:/Users/guydavidson/projects/simple-relational-reasoning/notebooks/QuinnCentroidsAnalysis.ipynb#ch0000004"},"line":58}]}}
Verbose 16:26:05: IKernel Status change to idle
Verbose 16:26:05: IKernel Status change to busy
Verbose 16:26:05: IKernel Status change to idle
Verbose 16:26:05: [Debug] response: {"seq":19,"type":"response","request_seq":8,"success":true,"command":"setBreakpoints","body":{"breakpoints":[]}}
Verbose 16:26:05: IKernel Status change to busy
Verbose 16:26:05: IKernel Status change to idle
Verbose 16:26:05: IKernel Status change to busy
Verbose 16:26:05: [Debug] response: {"seq":20,"type":"response","request_seq":9,"success":true,"command":"setBreakpoints","body":{"breakpoints":[]}}
Verbose 16:26:05: IKernel Status change to idle
Verbose 16:26:05: IKernel Status change to busy
Verbose 16:26:05: [Debug] response: {"seq":21,"type":"response","request_seq":10,"success":true,"command":"setBreakpoints","body":{"breakpoints":[]}}
Verbose 16:26:05: [Debug] response: {"seq":22,"type":"response","request_seq":11,"success":true,"command":"setBreakpoints","body":{"breakpoints":[]}}
Verbose 16:26:05: IKernel Status change to idle
Verbose 16:26:05: IKernel Status change to busy
Verbose 16:26:05: IKernel Status change to idle
Verbose 16:26:05: IKernel Status change to busy
Verbose 16:26:05: [Debug] response: {"seq":23,"type":"response","request_seq":12,"success":true,"command":"setBreakpoints","body":{"breakpoints":[]}}
Verbose 16:26:05: IKernel Status change to idle
Verbose 16:26:05: [Debug] response: {"seq":24,"type":"response","request_seq":13,"success":true,"command":"setBreakpoints","body":{"breakpoints":[]}}
Verbose 16:26:05: IKernel Status change to busy
Verbose 16:26:05: IKernel Status change to idle
Verbose 16:26:05: IKernel Status change to busy
Verbose 16:26:05: [Debug] response: {"seq":25,"type":"response","request_seq":14,"success":true,"command":"setBreakpoints","body":{"breakpoints":[]}}
Verbose 16:26:05: IKernel Status change to idle
Verbose 16:26:05: [Debug] response: {"seq":26,"type":"response","request_seq":15,"success":true,"command":"setBreakpoints","body":{"breakpoints":[]}}
Verbose 16:26:05: IKernel Status change to busy
Verbose 16:26:05: IKernel Status change to idle
Verbose 16:26:05: [Debug] response: {"seq":27,"type":"response","request_seq":16,"success":true,"command":"setBreakpoints","body":{"breakpoints":[]}}
Verbose 16:26:05: IKernel Status change to busy
Verbose 16:26:05: IKernel Status change to idle
Verbose 16:26:05: [Debug] response: {"seq":28,"type":"response","request_seq":17,"success":true,"command":"setBreakpoints","body":{"breakpoints":[{"verified":true,"id":1,"source":{"name":"triplets.py","path":"/Users/guydavidson/projects/simple-relational-reasoning/simple_relational_reasoning/embeddings/triplets.py"},"line":185}]}}
Verbose 16:26:05: [Debug] to kernel: {"command":"setFunctionBreakpoints","arguments":{"breakpoints":[]},"type":"request","seq":18}
Verbose 16:26:05: IKernel Status change to busy
Verbose 16:26:05: IKernel Status change to idle
Verbose 16:26:05: [Debug] response: {"seq":29,"type":"response","request_seq":18,"success":true,"command":"setFunctionBreakpoints","body":{"breakpoints":[]}}
Verbose 16:26:05: [Debug] to kernel: {"command":"setExceptionBreakpoints","arguments":{"filters":["uncaught"]},"type":"request","seq":19}
Verbose 16:26:05: IKernel Status change to busy
Verbose 16:26:05: [Debug] to kernel: {"command":"threads","type":"request","seq":20}
Verbose 16:26:05: IKernel Status change to idle
Verbose 16:26:05: [Debug] response: {"seq":30,"type":"response","request_seq":19,"success":true,"command":"setExceptionBreakpoints"}
Verbose 16:26:05: IKernel Status change to busy
Verbose 16:26:05: IKernel Status change to idle
Verbose 16:26:05: [Debug] response: {"seq":31,"type":"response","request_seq":20,"success":true,"command":"threads","body":{"threads":[{"id":1,"name":"MainThread"},{"id":2,"name":"Thread-6"},{"id":3,"name":"Thread-7"},{"id":4,"name":"IPythonHistorySavingThread"},{"id":5,"name":"Thread-2"},{"id":6,"name":"Thread-8"}]}}
Info 16:26:05: Executing silently Code (idle) = import debugpy\ndebugpy.debug_this_thread()
Verbose 16:26:05: IKernel Status change to busy
Verbose 16:26:05: IKernel Status change to idle
Info 16:26:05: Executing silently Code (completed) = import debugpy\ndebugpy.debug_this_thread()
Verbose 16:26:05: [Debug] to kernel: {"command":"dumpCell","arguments":{"code":"import os\nimport sys\nsys.path.append(os.path.abspath('.'))\nsys.path.append(os.path.abspath('..'))\nsys.path.append(os.path.abspath('../run'))\n\nfrom collections import defaultdict\nimport itertools\nimport numpy as np\nimport matplotlib\nimport matplotlib.pyplot as plt\nfrom scipy import stats\nimport typing\nimport pandas as pd\nfrom tqdm.notebook import tqdm\nimport tabulate\n\nfrom torchvision.transforms import functional as F\n\nfrom IPython.display import display, Markdown\n\nfrom simple_relational_reasoning.embeddings.stimuli import build_differet_shapes_stimulus_generator, build_split_text_stimulus_generator, build_random_color_stimulus_generator,\\\n find_non_empty_indices, EMPTY_TENSOR_PIXEL\nfrom simple_relational_reasoning.embeddings.triplets import QuinnTripletGenerator, ABOVE_BELOW_RELATION, BETWEEN_RELATION\nfrom simple_relational_reasoning.embeddings.visualizations import filter_and_group, DEFAULT_TEXT_KWARGS, save_plot"},"type":"request","seq":22}
Verbose 16:26:05: [Debug] to kernel: {"command":"dumpCell","arguments":{"code":"BASELINE_TRIPLET_KWARGS = dict(n_target_types=2, extra_diagonal_margin=0)\n\ndistance_endpoints_dict = {\n (False, False): (30, 80),\n (True, False): (60, 120),\n (True, True): (40, 80), \n}\n\ndef parse_above_below_condition(df):\n above_below_types = []\n\n for _, (relation, two_refs, adjacent_refs) in \\\n df.loc[:, ['relation', 'two_reference_objects', 'adjacent_reference_objects']].iterrows():\n a_b_type = None\n\n if relation == 'above_below':\n if not two_refs:\n a_b_type = 'one_reference'\n\n elif adjacent_refs:\n a_b_type = 'adjacent_references'\n\n else:\n a_b_type = 'gapped_references'\n\n above_below_types.append(a_b_type)\n\n return df.assign(above_below_type=above_below_types)\n\n\nGENERATOR_NAMES = ('color bar', 'split text', 'random colors')\n\n\ndef create_stimulus_generators_and_names(names=GENERATOR_NAMES, seed=None, **kwargs):\n rng = np.random.default_rng(seed if seed is not None else np.random.randint(0, 2**32))\n\n generators = (\n build_differet_shapes_stimulus_generator(rng=rng, **kwargs), \n \n build_split_text_stimulus_generator(\n # reference_box_size=10,\n # total_reference_size=(10, 140), n_reference_patches=8,\n # reference_patch_kwargs=dict(ylim=(-70, 70)),\n rng=rng, **kwargs),\n build_random_color_stimulus_generator(rng=rng, **kwargs)\n )\n \n return zip(generators, names)"},"type":"request","seq":23}
Verbose 16:26:05: [Debug] to kernel: {"command":"dumpCell","arguments":{"code":"DATA_PATH = 'centroid_sizes.csv'\nLIST_COLUMNS = [\n 'row_centroids', 'col_centroids', \n 'first_non_empty_row', 'last_non_empty_row', \n 'first_non_empty_col', 'last_non_empty_col'\n]\nCOLUMNS = [\n 'relation', 'two_reference_objects', \n 'adjacent_reference_objects', 'transpose', \n 'n_habituation_stimuli', 'rotate_angle', 'stimulus_generator'\n] + LIST_COLUMNS\nN_examples = 100\nANGLES = [0, 30, 45, 60, 90, 120, 135, 150]\n\nOPTION_SET = (\n (ABOVE_BELOW_RELATION, BETWEEN_RELATION),\n (False, True),\n (False, True),\n (False, True),\n [1, 4],\n ANGLES\n) \n"},"type":"request","seq":24}
Verbose 16:26:05: [Debug] to kernel: {"command":"dumpCell","arguments":{"code":"generate_data = True\nif generate_data:\n total_options = np.prod([len(v) for v in OPTION_SET])\n option_iter = itertools.product(*OPTION_SET)\n\n data_rows = []\n\n for relation, two_reference_objects, adjacent_reference_objects, transpose, n_habituation_stimuli, rotate_angle in tqdm(option_iter, total=total_options):\n if (relation == ABOVE_BELOW_RELATION) and not two_reference_objects and adjacent_reference_objects:\n continue\n\n if (relation == BETWEEN_RELATION) and ((not two_reference_objects) or adjacent_reference_objects):\n continue\n\n distance_endpoints = distance_endpoints_dict[(two_reference_objects, adjacent_reference_objects)]\n\n for stimulus_generator, generator_name in create_stimulus_generators_and_names(rotate_angle=rotate_angle):\n triplet_generator = QuinnTripletGenerator(stimulus_generator, distance_endpoints,\n relation=relation, two_reference_objects=two_reference_objects,\n adjacent_reference_objects=adjacent_reference_objects, \n transpose=transpose,\n n_habituation_stimuli=n_habituation_stimuli,\n track_centroids=True,\n **BASELINE_TRIPLET_KWARGS)\n\n triplets = triplet_generator(N_examples, normalize=False)\n non_empty_tuples = [find_non_empty_indices(t, empty_value=EMPTY_TENSOR_PIXEL, color_axis=0) for t in triplets.view(-1, *triplets.shape[2:])]\n del triplets\n row_centroids, col_centroids = zip(*triplet_generator.stimulus_centroids)\n row_centroids = list(row_centroids)\n col_centroids = list(col_centroids)\n\n first_non_empty_row, last_non_empty_row, first_non_empty_col, last_non_empty_col = zip(*non_empty_tuples)\n first_non_empty_row = [i.item() for i in first_non_empty_row]\n last_non_empty_row = [i.item() for i in last_non_empty_row]\n first_non_empty_col = [i.item() for i in first_non_empty_col]\n last_non_empty_col = [i.item() for i in last_non_empty_col]\n \n row = [relation, two_reference_objects, adjacent_reference_objects, transpose,\n n_habituation_stimuli, rotate_angle, generator_name, \n row_centroids, col_centroids, \n first_non_empty_row, last_non_empty_row, first_non_empty_col, last_non_empty_col\n ]\n data_rows.append(row)\n\n del triplet_generator\n del stimulus_generator\n\n \n data_df = pd.DataFrame(data_rows, columns=COLUMNS)\n data_df = parse_above_below_condition(data_df)\n data_df.to_csv(DATA_PATH, index=False)\n\nelse:\n data_df = pd.read_csv(DATA_PATH, converters={col: pd.eval for col in LIST_COLUMNS}) \n data_df = data_df.assign(**{col: data_df[col].apply(list) for col in LIST_COLUMNS})\n data_df = data_df.assign(relation_and_type=data_df.above_below_type)\n data_df.relation_and_type[data_df.relation_and_type.isna()] = 'between'\n \n\ndata_df.head() \n\n"},"type":"request","seq":25}
Verbose 16:26:05: [Debug] to kernel: {"command":"dumpCell","arguments":{"code":""},"type":"request","seq":26}
Verbose 16:26:05: IKernel Status change to busy
Verbose 16:26:05: IKernel Status change to idle
Verbose 16:26:05: [Debug] response: {"type":"response","request_seq":22,"success":true,"command":"dumpCell","body":{"sourcePath":"/var/folders/h9/kzpqpksx6fq00v9d73x5j51c0000gn/T/ipykernel_25611/3409709466.py"}}
Verbose 16:26:05: IKernel Status change to busy
Verbose 16:26:05: IKernel Status change to idle
Verbose 16:26:05: [Debug] response: {"type":"response","request_seq":23,"success":true,"command":"dumpCell","body":{"sourcePath":"/var/folders/h9/kzpqpksx6fq00v9d73x5j51c0000gn/T/ipykernel_25611/2127228247.py"}}
Verbose 16:26:05: IKernel Status change to busy
Verbose 16:26:05: IKernel Status change to idle
Verbose 16:26:05: [Debug] response: {"type":"response","request_seq":24,"success":true,"command":"dumpCell","body":{"sourcePath":"/var/folders/h9/kzpqpksx6fq00v9d73x5j51c0000gn/T/ipykernel_25611/3824027068.py"}}
Verbose 16:26:05: IKernel Status change to busy
Verbose 16:26:05: [Debug] response: {"type":"response","request_seq":25,"success":true,"command":"dumpCell","body":{"sourcePath":"/var/folders/h9/kzpqpksx6fq00v9d73x5j51c0000gn/T/ipykernel_25611/1045445394.py"}}
Verbose 16:26:05: IKernel Status change to idle
Verbose 16:26:05: IKernel Status change to busy
Verbose 16:26:05: IKernel Status change to idle
Verbose 16:26:05: [Debug] response: {"type":"response","request_seq":26,"success":true,"command":"dumpCell","body":{"sourcePath":"/var/folders/h9/kzpqpksx6fq00v9d73x5j51c0000gn/T/ipykernel_25611/3990065800.py"}}
Verbose 16:26:05: [Debug] to kernel: {"command":"configurationDone","type":"request","seq":21}
Verbose 16:26:05: IKernel Status change to busy
Verbose 16:26:05: IKernel Status change to idle
Verbose 16:26:05: [Debug] response: {"seq":21,"type":"response","request_seq":21,"success":true,"command":"configurationDone"}
Verbose 16:26:05: VSCodeNotebookController::handleExecution, Class name = M (started execution)
Info 16:26:05: Execute Cells request 3
Info 16:26:05: Execute Cell 3 ~/projects/simple-relational-reasoning/notebooks/BugReproduction.ipynb
Verbose 16:26:05: [Debug] to kernel: {"command":"threads","type":"request","seq":27}
Verbose 16:26:05: IKernel Status change to busy
Verbose 16:26:05: IKernel Status change to idle
Verbose 16:26:05: [Debug] response: {"seq":32,"type":"response","request_seq":27,"success":true,"command":"threads","body":{"threads":[{"id":1,"name":"MainThread"},{"id":2,"name":"Thread-6"},{"id":3,"name":"Thread-7"},{"id":4,"name":"IPythonHistorySavingThread"},{"id":5,"name":"Thread-2"},{"id":6,"name":"Thread-8"}]}}
Verbose 16:26:05: IKernel Status change to busy```
Issue Analytics
- State:
- Created a year ago
- Comments:47 (23 by maintainers)
Top Results From Across the Web
Python subprocess Error 22 - Works while debugging but not ...
I am trying to call a python script from another using subprocess.Popen() . It works perfectly when I debug the program line-by-line,Ā ...
Read more >Debug won't work in subprocess
I'm running python code with some subprocesses. I set breakpoints in main process and sub process. but pycharm python debugger only works...
Read more >Debugging configurations for Python apps in Visual Studio Code
The Python extension supports debugging of several types of Python ... also bring up the debug configuration menu, but will not create a...
Read more >Pycharm debugger is breaking subprocess.call()? - Reddit
Subprocess appears to be failing because it cannot find 'python'. This only happens when using the debugger. I tested this by adding '/usr/bin/Ā ......
Read more >Mixed-mode debugging for Python - Visual Studio (Windows)
Most regular Python debuggers support debugging of only Python code. ... Mixed-mode debugging is not available with Python Tools for VisualĀ ...
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
The env I created was just to test the Lava framework tutorials. Here is how I created that env, following the recommendations in the lava README to use poetry.
Then you can try to debug one of the notebooks in the
tutorials
folder. In my case, I was attempting to debug cell 5 of thetutorials/in_depth/tutorial03_process_models.ipynb
notebookFrom your original log, looks like this fails when debugpy issues the debugpyAttach request to attach to a subprocess. When I run this code there is no subprocess involved. Any idea why tqdm would start a subprocess for you but not for me?
It makes sense that we wonāt yet support this scenario, but I donāt see an existing issue. Simpler code to reproduce:
In a cell:
In
a.py
I guess we need to rewrite the debugpyAttach request to do a normal āpythonā type attach.