Skip to content

Multiprocess debugging support? #314

@Zloool

Description

@Zloool

Environment data

VS Code version: 1.18.1
Python Extension version: 0.8.0
Python Version: 3.6.3
OS and version: Microsoft Windows [Version 10.0.16299.64]

Actual behavior

Debugger is working only in main process.

Expected behavior

Debugger would stop on breakpoints in child processes.

Steps to reproduce:

  • Use this code:
    A.py
from multiprocessing import Process, Event

import B

if __name__ == '__main__':
    update_event = Event()
    client_proc = Process(
                args=(update_event,),
                name="client",
                target=B.TestFunc,
            )
    client_proc.start()

    import time
    time.sleep(100)

B.py

import time

def TestFunc(a):
    while True:
        time.sleep(5)
        print(a)
  • Put breakpoint on last line of B.py
  • Run debug

Logs

Output from Python output panel

Nothing special there

Output from Console window (Help->Developer Tools menu)

t.log @ /C:/Program Files/Microsoft VS Code/resources/app/out/vs/workbench/workbench.main.js:9
/C:/Program Files/Microsoft VS Code/resources/app/out/vs/workbench/workbench.main.js:10 spawn ctags ENOENT: Error: spawn ctags ENOENT
	at exports._errnoException (util.js:1050:11)
	at Process.ChildProcess._handle.onexit (internal/child_process.js:193:32)
	at onErrorNT (internal/child_process.js:367:16)
	at _combinedTickCallback (internal/process/next_tick.js:80:11)
	at process._tickCallback (internal/process/next_tick.js:104:9)
e.onUnexpectedError @ /C:/Program Files/Microsoft VS Code/resources/app/out/vs/workbench/workbench.main.js:10
/C:/Program Files/Microsoft VS Code/resources/app/out/vs/workbench/workbench.main.js:9 [Extension Host] (node:9236) DeprecationWarning: os.tmpDir() is deprecated. Use os.tmpdir() instead.
t.log @ /C:/Program Files/Microsoft VS Code/resources/app/out/vs/workbench/workbench.main.js:9


raw.marked.js:15 [Violation] Added non-passive event listener to a scroll-blocking 'mousewheel' event. Consider marking event handler as 'passive' to make the page more responsive.
raw.marked.js:15 [Violation] Added non-passive event listener to a scroll-blocking 'touchstart' event. 
// More same output
raw.marked.js:15 [Violation] Added non-passive event listener to a scroll-blocking 'touchstart' event. Consider marking event handler as 'passive' to make the page more responsive.
raw.marked.js:15 [Violation] Added non-passive event listener to a scroll-blocking 'touchmove' event. Consider marking event handler as 'passive' to make the page more responsive.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions