From 0ca1429d780693fff91a6b135e68523aa8513164 Mon Sep 17 00:00:00 2001 From: Eric Snow Date: Tue, 13 Mar 2018 17:18:36 +0000 Subject: [PATCH] Factor out helper functions for the debugger "main()". --- ptvsd/debugger.py | 49 +++++++++++++++++++++++++++++++++-------------- 1 file changed, 35 insertions(+), 14 deletions(-) diff --git a/ptvsd/debugger.py b/ptvsd/debugger.py index 399d711c..7ac7871d 100644 --- a/ptvsd/debugger.py +++ b/ptvsd/debugger.py @@ -4,6 +4,10 @@ import sys +# import the wrapper first, so that it gets a chance +# to detour pydevd socket functionality. +import ptvsd.wrapper + __author__ = "Microsoft Corporation " __version__ = "4.0.0a1" @@ -13,22 +17,39 @@ DONT_DEBUG = [] def debug(filename, port_num, debug_id, debug_options, run_as): # TODO: docstring - - # import the wrapper first, so that it gets a chance - # to detour pydevd socket functionality. - import ptvsd.wrapper - import pydevd - - args = [ - '--port', str(port_num), - '--client', '127.0.0.1', - ] + address = (None, port_num) if run_as == 'module': - args.append('--module') - args.extend(('--file', filename + ":")) + _run_module(address, filename) else: - args.extend(('--file', filename)) - sys.argv[1:0] = args + _run_file(address, filename) + + +def _run_module(address, modname): + filename = modname + ':' + argv = _run_argv(address, filename) + argv.append('--module') + _run(argv) + + +def _run_file(address, filename): + argv = _run_argv(address, filename) + _run(argv) + + +def _run_argv(address, filename): + host, port = address + if host is None: + host = '127.0.0.1' + return [ + '--port', str(port), + '--client', host, + '--file', filename, + ] + + +def _run(argv): + import pydevd + sys.argv[1:0] = argv try: pydevd.main() except SystemExit as ex: