Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def _build_launch_env():
import os
import pydevd
environ = os.environ.copy()
cwd = os.path.abspath(os.path.dirname(__file__))
assert os.path.isdir(cwd)
resources_dir = os.path.join(os.path.dirname(pydevd.__file__), 'tests_python', 'resources')
assert os.path.isdir(resources_dir)
attach_to_process_dir = os.path.join(os.path.dirname(pydevd.__file__), 'pydevd_attach_to_process')
assert os.path.isdir(attach_to_process_dir)
pydevd_dir = os.path.dirname(pydevd.__file__)
assert os.path.isdir(pydevd_dir)
environ['PYTHONPATH'] = (
cwd + os.pathsep +
resources_dir + os.pathsep +
attach_to_process_dir + os.pathsep +
pydevd_dir + os.pathsep +
environ.get('PYTHONPATH', '')
)
return cwd, environ
def _build_launch_env():
import os
import pydevd
environ = os.environ.copy()
cwd = os.path.abspath(os.path.dirname(__file__))
assert os.path.isdir(cwd)
resources_dir = os.path.join(os.path.dirname(pydevd.__file__), 'tests_python', 'resources')
assert os.path.isdir(resources_dir)
attach_to_process_dir = os.path.join(os.path.dirname(pydevd.__file__), 'pydevd_attach_to_process')
assert os.path.isdir(attach_to_process_dir)
pydevd_dir = os.path.dirname(pydevd.__file__)
assert os.path.isdir(pydevd_dir)
environ['PYTHONPATH'] = (
cwd + os.pathsep +
resources_dir + os.pathsep +
attach_to_process_dir + os.pathsep +
pydevd_dir + os.pathsep +
environ.get('PYTHONPATH', '')
)
return cwd, environ
def _build_launch_env():
import os
import pydevd
environ = os.environ.copy()
cwd = os.path.abspath(os.path.dirname(__file__))
assert os.path.isdir(cwd)
resources_dir = os.path.join(os.path.dirname(pydevd.__file__), 'tests_python', 'resources')
assert os.path.isdir(resources_dir)
attach_to_process_dir = os.path.join(os.path.dirname(pydevd.__file__), 'pydevd_attach_to_process')
assert os.path.isdir(attach_to_process_dir)
pydevd_dir = os.path.dirname(pydevd.__file__)
assert os.path.isdir(pydevd_dir)
environ['PYTHONPATH'] = (
cwd + os.pathsep +
resources_dir + os.pathsep +
attach_to_process_dir + os.pathsep +
pydevd_dir + os.pathsep +
environ.get('PYTHONPATH', '')
)
return cwd, environ
_, port = s.getsockname()
s.close()
import os
def _get_debugger_test_file(filename):
try:
rPath = os.path.realpath # @UndefinedVariable
except:
# jython does not support os.path.realpath
# realpath is a no-op on systems without islink support
rPath = os.path.abspath
return os.path.normcase(rPath(os.path.join(os.path.dirname(__file__), filename)))
import pydevd
PYDEVD_FILE = pydevd.__file__
import sys
import subprocess
import socket
import threading
import time
from pydev_imports import quote_plus, quote, unquote_plus
#=======================================================================================================================
# ReaderThread
#=======================================================================================================================
class ReaderThread(threading.Thread):
def __init__(self, sock):
def _build_launch_env():
import os
import pydevd
environ = os.environ.copy()
cwd = os.path.abspath(os.path.dirname(__file__))
assert os.path.isdir(cwd)
resources_dir = os.path.join(os.path.dirname(pydevd.__file__), 'tests_python', 'resources')
assert os.path.isdir(resources_dir)
attach_to_process_dir = os.path.join(os.path.dirname(pydevd.__file__), 'pydevd_attach_to_process')
assert os.path.isdir(attach_to_process_dir)
pydevd_dir = os.path.dirname(pydevd.__file__)
assert os.path.isdir(pydevd_dir)
environ['PYTHONPATH'] = (
cwd + os.pathsep +
resources_dir + os.pathsep +
attach_to_process_dir + os.pathsep +
pydevd_dir + os.pathsep +
environ.get('PYTHONPATH', '')
)
return cwd, environ
host=host,
client={client},
log_dir=log_dir,
client_access_token=client_access_token,
)
"""
python_code = python_code.replace("\r", "").replace("\n", "").format(**setup)
log.info("Code to be injected: \n{0}", python_code.replace(";", ";\n"))
# pydevd restriction on characters in injected code.
assert not (
{'"', "'", "\r", "\n"} & set(python_code)
), "Injected code should not contain any single quotes, double quotes, or newlines."
pydevd_attach_to_process_path = os.path.join(
os.path.dirname(pydevd.__file__), "pydevd_attach_to_process"
)
assert os.path.exists(pydevd_attach_to_process_path)
sys.path.append(pydevd_attach_to_process_path)
try:
import add_code_to_python_process # noqa
log.info("Injecting code into process with PID={0} ...", pid)
add_code_to_python_process.run_python_code(
pid,
python_code,
connect_debugger_tracing=True,
show_debug_info=int(os.getenv("PTVSD_ATTACH_BY_PID_DEBUG_INFO", "0")),
)
except Exception:
pydevd_comm.start_server = _start_server
pydevd_comm.start_client = _start_client
# This is invoked when a child process is spawned with multiproc debugging enabled.
pydev_monkey.patch_args = multiproc.patch_and_quote_args
if not options.multiprocess:
# This means '--multiprocess' flag was not passed via command line args. Patch the
# new process functions here to handle multiprocess being enabled via debug options.
pydev_monkey.patch_new_process_functions()
# Ensure that pydevd is using our functions.
pydevd_module.start_server = _start_server
pydevd_module.start_client = _start_client
__main__ = sys.modules['__main__']
if __main__ is not pydevd:
if getattr(__main__, '__file__', None) == pydevd.__file__:
__main__.start_server = _start_server
__main__.start_client = _start_client
return daemon
def get_pydevd_file():
import pydevd
f = pydevd.__file__
if f.endswith('.pyc'):
f = f[:-1]
elif f.endswith('$py.class'):
f = f[:-len('$py.class')] + '.py'
return f
import sys
sys.path.insert(0, {ptvsd_path})
import ptvsd
del sys.path[0]
import ptvsd.options
ptvsd.options.client = True
ptvsd.options.host = {host}
ptvsd.options.port = {port}
ptvsd.enable_attach()
'''.format(**locals())
print(code)
pydevd_attach_to_process_path = os.path.join(
os.path.dirname(pydevd.__file__),
'pydevd_attach_to_process')
sys.path.insert(0, pydevd_attach_to_process_path)
from add_code_to_python_process import run_python_code
run_python_code(pid, code, connect_debugger_tracing=True)
def get_pydevd_file():
import pydevd
f = pydevd.__file__
if f.endswith('.pyc'):
f = f[:-1]
elif f.endswith('$py.class'):
f = f[:-len('$py.class')] + '.py'
return f