debugpy 1.8.5__zip → 1.8.7__zip
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {debugpy-1.8.5/src/debugpy.egg-info → debugpy-1.8.7}/PKG-INFO +1 -1
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_calltip_util.py +19 -21
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_completer.py +30 -30
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_execfile.py +3 -1
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_filesystem_encoding.py +43 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_getopt.py +35 -32
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_imports_tipper.py +83 -84
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_jy_imports_tipper.py +92 -99
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_log.py +2 -3
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_saved_modules.py +51 -27
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_sys_patch.py +11 -7
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_tipper_common.py +6 -5
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/fsnotify/__init__.py +34 -38
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_console_utils.py +71 -69
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_import_hook.py +1 -3
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_imports.py +0 -1
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_ipython_console.py +14 -16
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_ipython_console_011.py +81 -93
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_is_thread_alive.py +3 -3
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_localhost.py +9 -8
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_log.py +33 -25
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_monkey.py +183 -170
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_monkey_qt.py +33 -29
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_override.py +6 -4
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_umd.py +19 -18
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_versioncheck.py +3 -3
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles.py +165 -138
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_coverage.py +77 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_nose.py +35 -36
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_parallel.py +22 -23
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_parallel_client.py +37 -57
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_pytest2.py +54 -52
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_unittest.py +28 -37
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_xml_rpc.py +56 -53
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/__main__pydevd_gen_debug_adapter_protocol.py +604 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/debugProtocol.json +551 -445
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_base_schema.py +25 -29
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_schema.py +17458 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_schema_log.py +11 -12
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevconsole_code.py +18 -19
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_additional_thread_info.py +41 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_additional_thread_info_regular.py +328 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_api.py +263 -214
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_breakpoints.py +7 -10
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_bytecode_utils.py +187 -92
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_bytecode_utils_py311.py +105 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_code_to_source.py +46 -51
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_collect_bytecode_info.py +239 -176
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_comm.py +370 -297
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_comm_constants.py +78 -86
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_command_line_handling.py +55 -59
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_concurrency_analyser/pydevd_concurrency_logger.py +194 -58
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_concurrency_analyser/pydevd_thread_wrappers.py +2 -3
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_console.py +18 -23
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_constants.py +159 -127
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_custom_frames.py +10 -12
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython.c +55527 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython.pxd +15 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython.pyx +803 -511
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython_wrapper.py +18 -7
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_daemon_thread.py +32 -24
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_defaults.py +11 -13
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_dont_trace.py +16 -16
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_dont_trace_files.py +27 -2
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_exec2.py +1 -1
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_extension_api.py +4 -5
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_extension_utils.py +8 -10
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_filtering.py +50 -45
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_frame.py +462 -407
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_frame_utils.py +69 -61
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_gevent_integration.py +14 -16
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_import_class.py +27 -25
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_io.py +40 -42
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_json_debug_options.py +200 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_net_command.py +20 -19
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_net_command_factory_json.py +199 -108
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_net_command_factory_xml.py +121 -73
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_plugin_utils.py +208 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_process_net_command.py +206 -159
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_process_net_command_json.py +346 -334
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_referrers.py +75 -80
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_reload.py +35 -35
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_resolver.py +116 -124
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_runpy.py +44 -58
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_safe_repr.py +51 -55
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_save_locals.py +4 -2
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_signature.py +24 -24
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_source_mapping.py +19 -20
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_stackless.py +45 -49
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_suspended_frames.py +61 -58
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_thread_lifecycle.py +23 -13
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_timeout.py +29 -31
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_trace_dispatch.py +41 -11
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_trace_dispatch_regular.py +117 -55
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_traceproperty.py +11 -14
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_utils.py +90 -89
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_vars.py +106 -97
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_vm_type.py +40 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_xml.py +56 -46
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_eval_cython_wrapper.py +5 -5
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_eval_main.py +71 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.c +11165 -5326
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_tracing.py +5 -6
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_modify_bytecode.py +53 -56
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/__init__.py +1 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/bytecode.py +4 -6
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/cfg.py +6 -26
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/concrete.py +7 -21
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/flags.py +5 -24
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/instr.py +10 -34
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/peephole_opt.py +1 -4
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/__init__.py +2 -6
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_bytecode.py +3 -5
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_cfg.py +11 -31
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_code.py +2 -2
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_concrete.py +14 -41
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_flags.py +2 -4
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_instr.py +7 -18
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_misc.py +6 -18
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_peephole_opt.py +7 -18
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/util_annotation.py +1 -3
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/pydevd_fix_code.py +14 -19
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring.py +1929 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring_cython.c +43253 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring_cython.pxd +46 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring_cython.pyx +1935 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/pydevd_sys_monitoring.py +16 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_app_engine_debug_startup.py +12 -11
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_coverage.py +30 -32
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhook.py +58 -54
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookglut.py +20 -24
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookgtk.py +8 -7
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookgtk3.py +8 -6
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookpyglet.py +11 -8
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookqt4.py +21 -18
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookqt5.py +17 -15
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookqt6.py +17 -15
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhooktk.py +6 -4
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookwx.py +14 -10
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/matplotlibtools.py +30 -26
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydev_ipython/qt.py +24 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/qt_for_kernel.py +37 -34
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/qt_loaders.py +86 -73
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/version.py +7 -7
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydev_pysrc.py +1 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_run_in_console.py +23 -24
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydev_sitecustomize/sitecustomize.py +267 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevconsole.py +55 -47
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd.py +732 -508
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_always_live_program.py +40 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_check.py +1 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_test_attach_to_process.py +11 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_test_attach_to_process_linux.py +75 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/add_code_to_python_process.py +130 -125
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_amd64.dll +0 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_amd64.pdb +0 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_pydevd.py +89 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_script.py +41 -32
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_x86.dll +0 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_x86.pdb +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_utils.hpp +1 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_version.hpp +9 -1
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_amd64.exe +0 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_amd64.pdb +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_x86.exe +0 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_x86.pdb +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/lldb_prepare.py +10 -9
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_amd64.dll +0 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_amd64.pdb +0 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_x86.dll +0 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_x86.pdb +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/__init__.py +103 -119
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/breakpoint.py +457 -516
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/compat.py +33 -15
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/crash.py +336 -281
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/debug.py +101 -131
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/disasm.py +148 -153
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/event.py +310 -302
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/interactive.py +235 -208
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/module.py +185 -218
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/process.py +428 -564
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/registry.py +54 -53
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/search.py +69 -73
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/sql.py +158 -170
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/system.py +143 -213
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/textio.py +302 -333
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/thread.py +220 -239
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/util.py +198 -177
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/__init__.py +11 -11
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/advapi32.py +1191 -713
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/context_amd64.py +248 -194
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/context_i386.py +132 -120
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/dbghelp.py +450 -346
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/defines.py +305 -286
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/gdi32.py +526 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/kernel32.py +1479 -1097
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/ntdll.py +579 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/peb_teb.py +3517 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/psapi.py +54 -31
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/shell32.py +170 -149
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/shlwapi.py +190 -108
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/user32.py +542 -437
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/version.py +489 -442
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/wtsapi32.py +83 -65
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/window.py +70 -76
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/attach.cpp +17 -9
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/compile_windows.bat +1 -1
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_file_utils.py +141 -120
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/__init__.py +1 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/django_debug.py +175 -149
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/__init__.py +1 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/__init__.py +1 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_helpers.py +5 -5
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_plugin_numpy_types.py +28 -28
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_plugin_pandas_types.py +22 -30
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_plugins_django_form_str.py +3 -2
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/jinja2_debug.py +130 -108
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/pydevd_line_validation.py +27 -14
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_tracing.py +85 -66
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/setup_pydevd_cython.py +96 -59
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_version.py +3 -3
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/common/messaging.py +2 -1
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/server/cli.py +32 -17
- {debugpy-1.8.5 → debugpy-1.8.7/src/debugpy.egg-info}/PKG-INFO +1 -1
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy.egg-info/SOURCES.txt +6 -1
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_filesystem_encoding.py +0 -41
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_coverage.py +0 -76
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/__main__pydevd_gen_debug_adapter_protocol.py +0 -592
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_schema.py +0 -19514
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_additional_thread_info.py +0 -19
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_additional_thread_info_regular.py +0 -153
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython.c +0 -43377
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_json_debug_options.py +0 -204
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_plugin_utils.py +0 -91
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_trace_api.py +0 -62
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_vm_type.py +0 -41
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_eval_main.py +0 -48
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydev_ipython/qt.py +0 -23
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydev_pysrc.py +0 -1
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydev_sitecustomize/sitecustomize.py +0 -237
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_always_live_program.py +0 -32
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_test_attach_to_process.py +0 -9
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_test_attach_to_process_linux.py +0 -74
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_amd64.dll +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_amd64.pdb +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_pydevd.py +0 -79
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_x86.dll +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_x86.pdb +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_amd64.exe +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_amd64.pdb +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_x86.pdb +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_amd64.dll +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_amd64.pdb +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_x86.dll +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_x86.pdb +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/gdi32.py +0 -507
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/ntdll.py +0 -539
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/peb_teb.py +0 -3435
- {debugpy-1.8.5 → debugpy-1.8.7}/DESCRIPTION.md +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/LICENSE +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/MANIFEST.in +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/README.md +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/pyproject.toml +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/setup.cfg +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/setup.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/ThirdPartyNotices.txt +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/__main__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/_pydevd_packaging.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/_util.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/force_pydevd.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_runfiles/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/debugProtocolCustom.json +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_concurrency_analyser/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/.gitignore +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.pxd +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.pyx +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.template.pyx +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/release_mem.h +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/README.txt +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/README +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_sitecustomize/__not_in_default_pythonpath.txt +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/README.txt +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_custom_pyeval_settrace.hpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_custom_pyeval_settrace_310.hpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_custom_pyeval_settrace_311.hpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_custom_pyeval_settrace_common.hpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_settrace.hpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/python.h +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/ref_utils.hpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/.gitignore +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/attach.cpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/compile_linux.sh +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/compile_mac.sh +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/compile_manylinux.cmd +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/attach.h +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/inject_dll.cpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/py_win_helpers.hpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/run_code_in_memory.hpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/run_code_on_dllmain.cpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/stdafx.cpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/stdafx.h +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/targetver.h +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/README.md +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/adapter/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/adapter/__main__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/adapter/clients.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/adapter/components.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/adapter/launchers.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/adapter/servers.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/adapter/sessions.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/common/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/common/json.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/common/log.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/common/singleton.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/common/sockets.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/common/stacks.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/common/timestamp.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/common/util.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/launcher/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/launcher/__main__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/launcher/debuggee.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/launcher/handlers.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/launcher/output.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/launcher/winapi.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/public_api.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/server/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/server/api.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/server/attach_pid_injected.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy.egg-info/dependency_links.txt +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy.egg-info/entry_points.txt +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy.egg-info/top_level.txt +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/versioneer.py +0 -0
|
@@ -1,6 +1,16 @@
|
|
|
1
|
-
from _pydevd_bundle.pydevd_constants import
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
from _pydevd_bundle.pydevd_constants import (
|
|
2
|
+
get_frame,
|
|
3
|
+
IS_CPYTHON,
|
|
4
|
+
IS_64BIT_PROCESS,
|
|
5
|
+
IS_WINDOWS,
|
|
6
|
+
IS_LINUX,
|
|
7
|
+
IS_MAC,
|
|
8
|
+
DebugInfoHolder,
|
|
9
|
+
LOAD_NATIVE_LIB_FLAG,
|
|
10
|
+
ENV_FALSE_LOWER_VALUES,
|
|
11
|
+
ForkSafeLock,
|
|
12
|
+
PYDEVD_USE_SYS_MONITORING,
|
|
13
|
+
)
|
|
4
14
|
from _pydev_bundle._pydev_saved_modules import thread, threading
|
|
5
15
|
from _pydev_bundle import pydev_log, pydev_monkey
|
|
6
16
|
import os.path
|
|
@@ -14,8 +24,8 @@ _original_settrace = sys.settrace
|
|
|
14
24
|
|
|
15
25
|
|
|
16
26
|
class TracingFunctionHolder:
|
|
17
|
-
|
|
18
|
-
|
|
27
|
+
"""This class exists just to keep some variables (so that we don't keep them in the global namespace)."""
|
|
28
|
+
|
|
19
29
|
_original_tracing = None
|
|
20
30
|
_warn = True
|
|
21
31
|
_traceback_limit = 1
|
|
@@ -30,14 +40,15 @@ def get_exception_traceback_str():
|
|
|
30
40
|
|
|
31
41
|
|
|
32
42
|
def _get_stack_str(frame):
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
43
|
+
msg = (
|
|
44
|
+
"\nIf this is needed, please check: "
|
|
45
|
+
+ "\nhttp://pydev.blogspot.com/2007/06/why-cant-pydev-debugger-work-with.html"
|
|
46
|
+
+ "\nto see how to restore the debug tracing back correctly.\n"
|
|
47
|
+
)
|
|
37
48
|
|
|
38
49
|
if TracingFunctionHolder._traceback_limit:
|
|
39
50
|
s = StringIO()
|
|
40
|
-
s.write(
|
|
51
|
+
s.write("Call Location:\n")
|
|
41
52
|
traceback.print_stack(f=frame, limit=TracingFunctionHolder._traceback_limit, file=s)
|
|
42
53
|
msg = msg + s.getvalue()
|
|
43
54
|
|
|
@@ -45,32 +56,34 @@ def _get_stack_str(frame):
|
|
|
45
56
|
|
|
46
57
|
|
|
47
58
|
def _internal_set_trace(tracing_func):
|
|
59
|
+
if PYDEVD_USE_SYS_MONITORING:
|
|
60
|
+
raise RuntimeError("pydevd: Using sys.monitoring, sys.settrace should not be called.")
|
|
48
61
|
if TracingFunctionHolder._warn:
|
|
49
62
|
frame = get_frame()
|
|
50
63
|
if frame is not None and frame.f_back is not None:
|
|
51
64
|
filename = os.path.splitext(frame.f_back.f_code.co_filename.lower())[0]
|
|
52
|
-
if filename.endswith(
|
|
65
|
+
if filename.endswith("threadpool") and "gevent" in filename:
|
|
53
66
|
if tracing_func is None:
|
|
54
|
-
pydev_log.debug(
|
|
67
|
+
pydev_log.debug("Disabled internal sys.settrace from gevent threadpool.")
|
|
55
68
|
return
|
|
56
69
|
|
|
57
70
|
elif not filename.endswith(
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
71
|
+
(
|
|
72
|
+
"threading",
|
|
73
|
+
"pydevd_tracing",
|
|
74
|
+
)
|
|
75
|
+
):
|
|
76
|
+
message = (
|
|
77
|
+
"\nPYDEV DEBUGGER WARNING:"
|
|
78
|
+
+ "\nsys.settrace() should not be used when the debugger is being used."
|
|
79
|
+
+ "\nThis may cause the debugger to stop working correctly."
|
|
80
|
+
+ "%s" % _get_stack_str(frame.f_back)
|
|
81
|
+
)
|
|
69
82
|
|
|
70
83
|
if message not in TracingFunctionHolder._warnings_shown:
|
|
71
84
|
# only warn about each message once...
|
|
72
85
|
TracingFunctionHolder._warnings_shown[message] = 1
|
|
73
|
-
sys.stderr.write(
|
|
86
|
+
sys.stderr.write("%s\n" % (message,))
|
|
74
87
|
sys.stderr.flush()
|
|
75
88
|
|
|
76
89
|
if TracingFunctionHolder._original_tracing:
|
|
@@ -81,6 +94,8 @@ _last_tracing_func_thread_local = threading.local()
|
|
|
81
94
|
|
|
82
95
|
|
|
83
96
|
def SetTrace(tracing_func):
|
|
97
|
+
if PYDEVD_USE_SYS_MONITORING:
|
|
98
|
+
raise RuntimeError("SetTrace should not be used when using sys.monitoring.")
|
|
84
99
|
_last_tracing_func_thread_local.tracing_func = tracing_func
|
|
85
100
|
|
|
86
101
|
if tracing_func is not None:
|
|
@@ -108,12 +123,16 @@ def reapply_settrace():
|
|
|
108
123
|
|
|
109
124
|
|
|
110
125
|
def replace_sys_set_trace_func():
|
|
126
|
+
if PYDEVD_USE_SYS_MONITORING:
|
|
127
|
+
return
|
|
111
128
|
if TracingFunctionHolder._original_tracing is None:
|
|
112
129
|
TracingFunctionHolder._original_tracing = sys.settrace
|
|
113
130
|
sys.settrace = _internal_set_trace
|
|
114
131
|
|
|
115
132
|
|
|
116
133
|
def restore_sys_set_trace_func():
|
|
134
|
+
if PYDEVD_USE_SYS_MONITORING:
|
|
135
|
+
return
|
|
117
136
|
if TracingFunctionHolder._original_tracing is not None:
|
|
118
137
|
sys.settrace = TracingFunctionHolder._original_tracing
|
|
119
138
|
TracingFunctionHolder._original_tracing = None
|
|
@@ -146,40 +165,40 @@ def get_python_helper_lib_filename():
|
|
|
146
165
|
# debugger -- the only situation where it's imported is if the user actually does an attach to
|
|
147
166
|
# process, through `attach_pydevd.py`, but this should usually be called from the IDE directly
|
|
148
167
|
# and not from the debugger).
|
|
149
|
-
libdir = os.path.join(os.path.dirname(__file__),
|
|
168
|
+
libdir = os.path.join(os.path.dirname(__file__), "pydevd_attach_to_process")
|
|
150
169
|
|
|
151
|
-
arch =
|
|
170
|
+
arch = ""
|
|
152
171
|
if IS_WINDOWS:
|
|
153
172
|
# prefer not using platform.machine() when possible (it's a bit heavyweight as it may
|
|
154
173
|
# spawn a subprocess).
|
|
155
|
-
arch = os.environ.get("PROCESSOR_ARCHITEW6432", os.environ.get(
|
|
174
|
+
arch = os.environ.get("PROCESSOR_ARCHITEW6432", os.environ.get("PROCESSOR_ARCHITECTURE", ""))
|
|
156
175
|
|
|
157
176
|
if not arch:
|
|
158
177
|
arch = platform.machine()
|
|
159
178
|
if not arch:
|
|
160
|
-
pydev_log.info(
|
|
179
|
+
pydev_log.info("platform.machine() did not return valid value.") # This shouldn't happen...
|
|
161
180
|
return None
|
|
162
181
|
|
|
163
182
|
if IS_WINDOWS:
|
|
164
|
-
extension =
|
|
165
|
-
suffix_64 =
|
|
166
|
-
suffix_32 =
|
|
183
|
+
extension = ".dll"
|
|
184
|
+
suffix_64 = "amd64"
|
|
185
|
+
suffix_32 = "x86"
|
|
167
186
|
|
|
168
187
|
elif IS_LINUX:
|
|
169
|
-
extension =
|
|
170
|
-
suffix_64 =
|
|
171
|
-
suffix_32 =
|
|
188
|
+
extension = ".so"
|
|
189
|
+
suffix_64 = "amd64"
|
|
190
|
+
suffix_32 = "x86"
|
|
172
191
|
|
|
173
192
|
elif IS_MAC:
|
|
174
|
-
extension =
|
|
175
|
-
suffix_64 =
|
|
176
|
-
suffix_32 =
|
|
193
|
+
extension = ".dylib"
|
|
194
|
+
suffix_64 = "x86_64"
|
|
195
|
+
suffix_32 = "x86"
|
|
177
196
|
|
|
178
197
|
else:
|
|
179
|
-
pydev_log.info(
|
|
198
|
+
pydev_log.info("Unable to set trace to all threads in platform: %s", sys.platform)
|
|
180
199
|
return None
|
|
181
200
|
|
|
182
|
-
if arch.lower() not in (
|
|
201
|
+
if arch.lower() not in ("amd64", "x86", "x86_64", "i386", "x86"):
|
|
183
202
|
# We don't support this processor by default. Still, let's support the case where the
|
|
184
203
|
# user manually compiled it himself with some heuristics.
|
|
185
204
|
#
|
|
@@ -190,15 +209,15 @@ def get_python_helper_lib_filename():
|
|
|
190
209
|
# - linux_and_mac/compile_mac.sh
|
|
191
210
|
|
|
192
211
|
try:
|
|
193
|
-
found = [name for name in os.listdir(libdir) if name.startswith(
|
|
212
|
+
found = [name for name in os.listdir(libdir) if name.startswith("attach_") and name.endswith(extension)]
|
|
194
213
|
except:
|
|
195
214
|
if DebugInfoHolder.DEBUG_TRACE_LEVEL >= 1:
|
|
196
215
|
# There is no need to show this unless debug tracing is enabled.
|
|
197
|
-
pydev_log.exception(
|
|
216
|
+
pydev_log.exception("Error listing dir: %s", libdir)
|
|
198
217
|
return None
|
|
199
218
|
|
|
200
|
-
expected_name =
|
|
201
|
-
expected_name_linux =
|
|
219
|
+
expected_name = "attach_" + arch + extension
|
|
220
|
+
expected_name_linux = "attach_linux_" + arch + extension
|
|
202
221
|
|
|
203
222
|
filename = None
|
|
204
223
|
if expected_name in found: # Heuristic: user compiled with "attach_<arch>.<extension>"
|
|
@@ -216,14 +235,10 @@ def get_python_helper_lib_filename():
|
|
|
216
235
|
filename = os.path.join(libdir, found[0])
|
|
217
236
|
|
|
218
237
|
if filename is None:
|
|
219
|
-
pydev_log.info(
|
|
220
|
-
'Unable to set trace to all threads in arch: %s (did not find a %s lib in %s).',
|
|
221
|
-
arch, expected_name, libdir
|
|
222
|
-
|
|
223
|
-
)
|
|
238
|
+
pydev_log.info("Unable to set trace to all threads in arch: %s (did not find a %s lib in %s).", arch, expected_name, libdir)
|
|
224
239
|
return None
|
|
225
240
|
|
|
226
|
-
pydev_log.info(
|
|
241
|
+
pydev_log.info("Using %s lib in arch: %s.", filename, arch)
|
|
227
242
|
|
|
228
243
|
else:
|
|
229
244
|
# Happy path for which we have pre-compiled binaries.
|
|
@@ -233,26 +248,30 @@ def get_python_helper_lib_filename():
|
|
|
233
248
|
suffix = suffix_32
|
|
234
249
|
|
|
235
250
|
if IS_WINDOWS or IS_MAC: # just the extension changes
|
|
236
|
-
prefix =
|
|
251
|
+
prefix = "attach_"
|
|
237
252
|
elif IS_LINUX: #
|
|
238
|
-
prefix =
|
|
253
|
+
prefix = "attach_linux_" # historically it has a different name
|
|
239
254
|
else:
|
|
240
|
-
pydev_log.info(
|
|
255
|
+
pydev_log.info("Unable to set trace to all threads in platform: %s", sys.platform)
|
|
241
256
|
return None
|
|
242
257
|
|
|
243
|
-
filename = os.path.join(libdir,
|
|
258
|
+
filename = os.path.join(libdir, "%s%s%s" % (prefix, suffix, extension))
|
|
244
259
|
|
|
245
260
|
if not os.path.exists(filename):
|
|
246
|
-
pydev_log.critical(
|
|
261
|
+
pydev_log.critical("Expected: %s to exist.", filename)
|
|
247
262
|
return None
|
|
248
263
|
|
|
249
264
|
return filename
|
|
250
265
|
|
|
251
266
|
|
|
252
267
|
def _load_python_helper_lib_uncached():
|
|
253
|
-
if (
|
|
254
|
-
|
|
255
|
-
|
|
268
|
+
if (
|
|
269
|
+
not IS_CPYTHON
|
|
270
|
+
or sys.version_info[:2] > (3, 11)
|
|
271
|
+
or hasattr(sys, "gettotalrefcount")
|
|
272
|
+
or LOAD_NATIVE_LIB_FLAG in ENV_FALSE_LOWER_VALUES
|
|
273
|
+
):
|
|
274
|
+
pydev_log.info("Helper lib to set tracing to all threads not loaded.")
|
|
256
275
|
return None
|
|
257
276
|
|
|
258
277
|
try:
|
|
@@ -261,17 +280,19 @@ def _load_python_helper_lib_uncached():
|
|
|
261
280
|
return None
|
|
262
281
|
# Load as pydll so that we don't release the gil.
|
|
263
282
|
lib = ctypes.pydll.LoadLibrary(filename)
|
|
264
|
-
pydev_log.info(
|
|
283
|
+
pydev_log.info("Successfully Loaded helper lib to set tracing to all threads.")
|
|
265
284
|
return lib
|
|
266
285
|
except:
|
|
267
286
|
if DebugInfoHolder.DEBUG_TRACE_LEVEL >= 1:
|
|
268
287
|
# Only show message if tracing is on (we don't have pre-compiled
|
|
269
288
|
# binaries for all architectures -- i.e.: ARM).
|
|
270
|
-
pydev_log.exception(
|
|
289
|
+
pydev_log.exception("Error loading: %s", filename)
|
|
271
290
|
return None
|
|
272
291
|
|
|
273
292
|
|
|
274
293
|
def set_trace_to_threads(tracing_func, thread_idents=None, create_dummy_thread=True):
|
|
294
|
+
if PYDEVD_USE_SYS_MONITORING:
|
|
295
|
+
raise RuntimeError("Should not be called when using sys.monitoring.")
|
|
275
296
|
assert tracing_func is not None
|
|
276
297
|
|
|
277
298
|
ret = 0
|
|
@@ -288,7 +309,7 @@ def set_trace_to_threads(tracing_func, thread_idents=None, create_dummy_thread=T
|
|
|
288
309
|
# PY-44778: ignore pydevd threads and also add any thread that wasn't found on
|
|
289
310
|
# sys._current_frames() as some existing threads may not appear in
|
|
290
311
|
# sys._current_frames() but may be available through the `threading` module.
|
|
291
|
-
if getattr(t,
|
|
312
|
+
if getattr(t, "pydev_do_not_trace", False):
|
|
292
313
|
thread_idents.discard(t.ident)
|
|
293
314
|
else:
|
|
294
315
|
thread_idents.add(t.ident)
|
|
@@ -310,7 +331,6 @@ def set_trace_to_threads(tracing_func, thread_idents=None, create_dummy_thread=T
|
|
|
310
331
|
if thread_ident not in threading._active:
|
|
311
332
|
|
|
312
333
|
class _DummyThread(threading._DummyThread):
|
|
313
|
-
|
|
314
334
|
def _set_ident(self):
|
|
315
335
|
# Note: Hack to set the thread ident that we want.
|
|
316
336
|
self._ident = thread_ident
|
|
@@ -331,7 +351,7 @@ def set_trace_to_threads(tracing_func, thread_idents=None, create_dummy_thread=T
|
|
|
331
351
|
|
|
332
352
|
if t.ident != thread_ident:
|
|
333
353
|
# Check if it actually worked.
|
|
334
|
-
pydev_log.critical(
|
|
354
|
+
pydev_log.critical("pydevd: creation of _DummyThread with fixed thread ident did not succeed.")
|
|
335
355
|
|
|
336
356
|
# Some (ptvsd) tests failed because of this, so, leave it always disabled for now.
|
|
337
357
|
# show_debug_info = 1 if DebugInfoHolder.DEBUG_TRACE_LEVEL >= 1 else 0
|
|
@@ -360,7 +380,7 @@ def set_trace_to_threads(tracing_func, thread_idents=None, create_dummy_thread=T
|
|
|
360
380
|
|
|
361
381
|
lib = _load_python_helper_lib()
|
|
362
382
|
if lib is None: # This is the case if it's not CPython.
|
|
363
|
-
pydev_log.info(
|
|
383
|
+
pydev_log.info("Unable to load helper lib to set tracing to all threads (unsupported python vm).")
|
|
364
384
|
ret = -1
|
|
365
385
|
else:
|
|
366
386
|
try:
|
|
@@ -374,12 +394,11 @@ def set_trace_to_threads(tracing_func, thread_idents=None, create_dummy_thread=T
|
|
|
374
394
|
except:
|
|
375
395
|
if DebugInfoHolder.DEBUG_TRACE_LEVEL >= 1:
|
|
376
396
|
# There is no need to show this unless debug tracing is enabled.
|
|
377
|
-
pydev_log.exception(
|
|
397
|
+
pydev_log.exception("Error attaching debugger tracing")
|
|
378
398
|
ret = -1
|
|
379
399
|
else:
|
|
380
400
|
if result != 0:
|
|
381
|
-
pydev_log.info(
|
|
401
|
+
pydev_log.info("Unable to set tracing for existing thread. Result: %s", result)
|
|
382
402
|
ret = result
|
|
383
403
|
|
|
384
404
|
return ret
|
|
385
|
-
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
"""
|
|
2
2
|
A simpler setup version just to compile the speedup module.
|
|
3
3
|
|
|
4
4
|
It should be used as:
|
|
@@ -7,7 +7,7 @@ python setup_pydevd_cython build_ext --inplace
|
|
|
7
7
|
|
|
8
8
|
Note: the .c file and other generated files are regenerated from
|
|
9
9
|
the .pyx file by running "python build_tools/build.py"
|
|
10
|
-
|
|
10
|
+
"""
|
|
11
11
|
|
|
12
12
|
import os
|
|
13
13
|
import sys
|
|
@@ -15,8 +15,9 @@ from setuptools import setup
|
|
|
15
15
|
|
|
16
16
|
os.chdir(os.path.dirname(os.path.abspath(__file__)))
|
|
17
17
|
|
|
18
|
-
IS_PY36_OR_GREATER = sys.version_info
|
|
19
|
-
|
|
18
|
+
IS_PY36_OR_GREATER = sys.version_info[:2] >= (3, 6)
|
|
19
|
+
IS_PY311_ONWARDS = sys.version_info[:2] >= (3, 11)
|
|
20
|
+
IS_PY312_ONWARDS = sys.version_info[:2] >= (3, 12)
|
|
20
21
|
|
|
21
22
|
|
|
22
23
|
def process_args():
|
|
@@ -26,16 +27,16 @@ def process_args():
|
|
|
26
27
|
force_cython = False
|
|
27
28
|
|
|
28
29
|
for i, arg in enumerate(sys.argv[:]):
|
|
29
|
-
if arg ==
|
|
30
|
+
if arg == "--build-lib":
|
|
30
31
|
extension_folder = sys.argv[i + 1]
|
|
31
32
|
# It shouldn't be removed from sys.argv (among with --build-temp) because they're passed further to setup()
|
|
32
|
-
if arg.startswith(
|
|
33
|
+
if arg.startswith("--target-pyd-name="):
|
|
33
34
|
sys.argv.remove(arg)
|
|
34
|
-
target_pydevd_name = arg[len(
|
|
35
|
-
if arg.startswith(
|
|
35
|
+
target_pydevd_name = arg[len("--target-pyd-name=") :]
|
|
36
|
+
if arg.startswith("--target-pyd-frame-eval="):
|
|
36
37
|
sys.argv.remove(arg)
|
|
37
|
-
target_frame_eval = arg[len(
|
|
38
|
-
if arg ==
|
|
38
|
+
target_frame_eval = arg[len("--target-pyd-frame-eval=") :]
|
|
39
|
+
if arg == "--force-cython":
|
|
39
40
|
sys.argv.remove(arg)
|
|
40
41
|
force_cython = True
|
|
41
42
|
|
|
@@ -44,26 +45,32 @@ def process_args():
|
|
|
44
45
|
|
|
45
46
|
def process_template_lines(template_lines):
|
|
46
47
|
# Create 2 versions of the template, one for Python 3.8 and another for Python 3.9
|
|
47
|
-
for version in (
|
|
48
|
-
yield
|
|
49
|
-
yield
|
|
50
|
-
yield
|
|
48
|
+
for version in ("38", "39"):
|
|
49
|
+
yield "### WARNING: GENERATED CODE, DO NOT EDIT!"
|
|
50
|
+
yield "### WARNING: GENERATED CODE, DO NOT EDIT!"
|
|
51
|
+
yield "### WARNING: GENERATED CODE, DO NOT EDIT!"
|
|
51
52
|
|
|
52
53
|
for line in template_lines:
|
|
53
|
-
if version ==
|
|
54
|
-
line = line.replace(
|
|
55
|
-
|
|
54
|
+
if version == "38":
|
|
55
|
+
line = line.replace(
|
|
56
|
+
"get_bytecode_while_frame_eval(PyFrameObject * frame_obj, int exc)",
|
|
57
|
+
"get_bytecode_while_frame_eval_38(PyFrameObject * frame_obj, int exc)",
|
|
58
|
+
)
|
|
59
|
+
line = line.replace("CALL_EvalFrameDefault", "CALL_EvalFrameDefault_38(frame_obj, exc)")
|
|
56
60
|
else: # 3.9
|
|
57
|
-
line = line.replace(
|
|
58
|
-
|
|
61
|
+
line = line.replace(
|
|
62
|
+
"get_bytecode_while_frame_eval(PyFrameObject * frame_obj, int exc)",
|
|
63
|
+
"get_bytecode_while_frame_eval_39(PyThreadState* tstate, PyFrameObject * frame_obj, int exc)",
|
|
64
|
+
)
|
|
65
|
+
line = line.replace("CALL_EvalFrameDefault", "CALL_EvalFrameDefault_39(tstate, frame_obj, exc)")
|
|
59
66
|
|
|
60
67
|
yield line
|
|
61
68
|
|
|
62
|
-
yield
|
|
63
|
-
yield
|
|
64
|
-
yield
|
|
65
|
-
yield
|
|
66
|
-
yield
|
|
69
|
+
yield "### WARNING: GENERATED CODE, DO NOT EDIT!"
|
|
70
|
+
yield "### WARNING: GENERATED CODE, DO NOT EDIT!"
|
|
71
|
+
yield "### WARNING: GENERATED CODE, DO NOT EDIT!"
|
|
72
|
+
yield ""
|
|
73
|
+
yield ""
|
|
67
74
|
|
|
68
75
|
|
|
69
76
|
def process_template_file(contents):
|
|
@@ -72,16 +79,16 @@ def process_template_file(contents):
|
|
|
72
79
|
|
|
73
80
|
append_to = ret
|
|
74
81
|
for line in contents.splitlines(keepends=False):
|
|
75
|
-
if line.strip() ==
|
|
82
|
+
if line.strip() == "### TEMPLATE_START":
|
|
76
83
|
append_to = template_lines
|
|
77
|
-
elif line.strip() ==
|
|
84
|
+
elif line.strip() == "### TEMPLATE_END":
|
|
78
85
|
append_to = ret
|
|
79
86
|
for line in process_template_lines(template_lines):
|
|
80
87
|
ret.append(line)
|
|
81
88
|
else:
|
|
82
89
|
append_to.append(line)
|
|
83
90
|
|
|
84
|
-
return
|
|
91
|
+
return "\n".join(ret)
|
|
85
92
|
|
|
86
93
|
|
|
87
94
|
def build_extension(dir_name, extension_name, target_pydevd_name, force_cython, extended=False, has_pxd=False, template=False):
|
|
@@ -89,12 +96,12 @@ def build_extension(dir_name, extension_name, target_pydevd_name, force_cython,
|
|
|
89
96
|
|
|
90
97
|
if template:
|
|
91
98
|
pyx_template_file = os.path.join(os.path.dirname(__file__), dir_name, "%s.template.pyx" % (extension_name,))
|
|
92
|
-
with open(pyx_template_file,
|
|
99
|
+
with open(pyx_template_file, "r") as stream:
|
|
93
100
|
contents = stream.read()
|
|
94
101
|
|
|
95
102
|
contents = process_template_file(contents)
|
|
96
103
|
|
|
97
|
-
with open(pyx_file,
|
|
104
|
+
with open(pyx_file, "w") as stream:
|
|
98
105
|
stream.write(contents)
|
|
99
106
|
|
|
100
107
|
if target_pydevd_name != extension_name:
|
|
@@ -117,7 +124,9 @@ def build_extension(dir_name, extension_name, target_pydevd_name, force_cython,
|
|
|
117
124
|
assert os.path.exists(pyx_file)
|
|
118
125
|
|
|
119
126
|
try:
|
|
120
|
-
c_files = [
|
|
127
|
+
c_files = [
|
|
128
|
+
os.path.join(dir_name, "%s.c" % target_pydevd_name),
|
|
129
|
+
]
|
|
121
130
|
if force_cython:
|
|
122
131
|
for c_file in c_files:
|
|
123
132
|
try:
|
|
@@ -127,45 +136,57 @@ def build_extension(dir_name, extension_name, target_pydevd_name, force_cython,
|
|
|
127
136
|
from Cython.Build import cythonize # @UnusedImport
|
|
128
137
|
# Generate the .c files in cythonize (will not compile at this point).
|
|
129
138
|
|
|
130
|
-
target = "%s/%s.pyx" % (
|
|
139
|
+
target = "%s/%s.pyx" % (
|
|
140
|
+
dir_name,
|
|
141
|
+
target_pydevd_name,
|
|
142
|
+
)
|
|
131
143
|
cythonize([target])
|
|
132
144
|
|
|
133
145
|
# Workarounds needed in CPython 3.8 and 3.9 to access PyInterpreterState.eval_frame.
|
|
134
146
|
for c_file in c_files:
|
|
135
|
-
with open(c_file,
|
|
147
|
+
with open(c_file, "r") as stream:
|
|
136
148
|
c_file_contents = stream.read()
|
|
137
149
|
|
|
138
150
|
if '#include "internal/pycore_gc.h"' not in c_file_contents:
|
|
139
|
-
c_file_contents = c_file_contents.replace(
|
|
151
|
+
c_file_contents = c_file_contents.replace(
|
|
152
|
+
'#include "Python.h"',
|
|
153
|
+
"""#include "Python.h"
|
|
140
154
|
#if PY_VERSION_HEX >= 0x03090000
|
|
141
155
|
#include "internal/pycore_gc.h"
|
|
142
156
|
#include "internal/pycore_interp.h"
|
|
143
157
|
#endif
|
|
144
|
-
|
|
158
|
+
""",
|
|
159
|
+
)
|
|
145
160
|
|
|
146
161
|
if '#include "internal/pycore_pystate.h"' not in c_file_contents:
|
|
147
|
-
c_file_contents = c_file_contents.replace(
|
|
162
|
+
c_file_contents = c_file_contents.replace(
|
|
163
|
+
'#include "pystate.h"',
|
|
164
|
+
"""#include "pystate.h"
|
|
148
165
|
#if PY_VERSION_HEX >= 0x03080000
|
|
149
166
|
#include "internal/pycore_pystate.h"
|
|
150
167
|
#endif
|
|
151
|
-
|
|
168
|
+
""",
|
|
169
|
+
)
|
|
152
170
|
|
|
153
171
|
# We want the same output on Windows and Linux.
|
|
154
|
-
c_file_contents = c_file_contents.replace(
|
|
155
|
-
c_file_contents = c_file_contents.replace(r
|
|
156
|
-
c_file_contents = c_file_contents.replace(
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
172
|
+
c_file_contents = c_file_contents.replace("\r\n", "\n").replace("\r", "\n")
|
|
173
|
+
c_file_contents = c_file_contents.replace(r"_pydevd_frame_eval\\release_mem.h", "_pydevd_frame_eval/release_mem.h")
|
|
174
|
+
c_file_contents = c_file_contents.replace(
|
|
175
|
+
r"_pydevd_frame_eval\\pydevd_frame_evaluator.pyx", "_pydevd_frame_eval/pydevd_frame_evaluator.pyx"
|
|
176
|
+
)
|
|
177
|
+
c_file_contents = c_file_contents.replace(r"_pydevd_bundle\\pydevd_cython.pxd", "_pydevd_bundle/pydevd_cython.pxd")
|
|
178
|
+
c_file_contents = c_file_contents.replace(r"_pydevd_bundle\\pydevd_cython.pyx", "_pydevd_bundle/pydevd_cython.pyx")
|
|
179
|
+
|
|
180
|
+
with open(c_file, "w") as stream:
|
|
161
181
|
stream.write(c_file_contents)
|
|
162
182
|
|
|
163
183
|
# Always compile the .c (and not the .pyx) file (which we should keep up-to-date by running build_tools/build.py).
|
|
164
184
|
from distutils.extension import Extension
|
|
185
|
+
|
|
165
186
|
extra_compile_args = []
|
|
166
187
|
extra_link_args = []
|
|
167
188
|
|
|
168
|
-
if
|
|
189
|
+
if "linux" in sys.platform:
|
|
169
190
|
# Enabling -flto brings executable from 4MB to 0.56MB and -Os to 0.41MB
|
|
170
191
|
# Profiling shows an execution around 3-5% slower with -Os vs -O3,
|
|
171
192
|
# so, kept only -flto.
|
|
@@ -181,70 +202,86 @@ def build_extension(dir_name, extension_name, target_pydevd_name, force_cython,
|
|
|
181
202
|
# extra_compile_args = ["-flto", "-fprofile-generate"]
|
|
182
203
|
# ... Run benchmarks ...
|
|
183
204
|
# extra_compile_args = ["-flto", "-fprofile-use", "-fprofile-correction"]
|
|
184
|
-
elif
|
|
205
|
+
elif "win32" in sys.platform:
|
|
185
206
|
pass
|
|
186
207
|
# uncomment to generate pdbs for visual studio.
|
|
187
208
|
# extra_compile_args=["-Zi", "/Od"]
|
|
188
209
|
# extra_link_args=["-debug"]
|
|
210
|
+
if IS_PY311_ONWARDS:
|
|
211
|
+
# On py311 we need to add the CPython include folder to the include path.
|
|
212
|
+
extra_compile_args.append("-I%s\\include\\CPython" % sys.exec_prefix)
|
|
189
213
|
|
|
190
214
|
kwargs = {}
|
|
191
215
|
if extra_link_args:
|
|
192
|
-
kwargs[
|
|
216
|
+
kwargs["extra_link_args"] = extra_link_args
|
|
193
217
|
if extra_compile_args:
|
|
194
|
-
kwargs[
|
|
218
|
+
kwargs["extra_compile_args"] = extra_compile_args
|
|
195
219
|
|
|
196
220
|
ext_modules = [
|
|
197
221
|
Extension(
|
|
198
|
-
"%s%s.%s"
|
|
222
|
+
"%s%s.%s"
|
|
223
|
+
% (
|
|
224
|
+
dir_name,
|
|
225
|
+
"_ext" if extended else "",
|
|
226
|
+
target_pydevd_name,
|
|
227
|
+
),
|
|
199
228
|
c_files,
|
|
200
|
-
**kwargs
|
|
201
|
-
)
|
|
229
|
+
**kwargs,
|
|
230
|
+
)
|
|
231
|
+
]
|
|
202
232
|
|
|
203
233
|
# This is needed in CPython 3.8 to be able to include internal/pycore_pystate.h
|
|
204
234
|
# (needed to set PyInterpreterState.eval_frame).
|
|
205
235
|
for module in ext_modules:
|
|
206
|
-
module.define_macros = [(
|
|
207
|
-
setup(
|
|
208
|
-
name='Cythonize',
|
|
209
|
-
ext_modules=ext_modules
|
|
210
|
-
)
|
|
236
|
+
module.define_macros = [("Py_BUILD_CORE_MODULE", "1")]
|
|
237
|
+
setup(name="Cythonize", ext_modules=ext_modules)
|
|
211
238
|
finally:
|
|
212
239
|
if target_pydevd_name != extension_name:
|
|
213
240
|
try:
|
|
214
241
|
os.remove(new_pyx_file)
|
|
215
242
|
except:
|
|
216
243
|
import traceback
|
|
244
|
+
|
|
217
245
|
traceback.print_exc()
|
|
218
246
|
try:
|
|
219
247
|
os.remove(new_c_file)
|
|
220
248
|
except:
|
|
221
249
|
import traceback
|
|
250
|
+
|
|
222
251
|
traceback.print_exc()
|
|
223
252
|
if has_pxd:
|
|
224
253
|
try:
|
|
225
254
|
os.remove(new_pxd_file)
|
|
226
255
|
except:
|
|
227
256
|
import traceback
|
|
257
|
+
|
|
228
258
|
traceback.print_exc()
|
|
229
259
|
|
|
230
260
|
|
|
231
261
|
extension_folder, target_pydevd_name, target_frame_eval, force_cython = process_args()
|
|
232
262
|
|
|
263
|
+
FORCE_BUILD_ALL = os.environ.get("PYDEVD_FORCE_BUILD_ALL", "").lower() in ("true", "1")
|
|
264
|
+
|
|
233
265
|
extension_name = "pydevd_cython"
|
|
234
266
|
if target_pydevd_name is None:
|
|
235
267
|
target_pydevd_name = extension_name
|
|
236
268
|
build_extension("_pydevd_bundle", extension_name, target_pydevd_name, force_cython, extension_folder, True)
|
|
237
269
|
|
|
238
|
-
if IS_PY36_OR_GREATER and not
|
|
270
|
+
if IS_PY36_OR_GREATER and not IS_PY311_ONWARDS or FORCE_BUILD_ALL:
|
|
239
271
|
extension_name = "pydevd_frame_evaluator"
|
|
240
272
|
if target_frame_eval is None:
|
|
241
273
|
target_frame_eval = extension_name
|
|
242
274
|
build_extension("_pydevd_frame_eval", extension_name, target_frame_eval, force_cython, extension_folder, True, template=True)
|
|
243
275
|
|
|
276
|
+
if IS_PY312_ONWARDS or FORCE_BUILD_ALL:
|
|
277
|
+
extension_name = "_pydevd_sys_monitoring_cython"
|
|
278
|
+
build_extension("_pydevd_sys_monitoring", extension_name, extension_name, force_cython, extension_folder, True)
|
|
279
|
+
|
|
244
280
|
if extension_folder:
|
|
245
281
|
os.chdir(extension_folder)
|
|
246
|
-
for folder in [
|
|
247
|
-
|
|
282
|
+
for folder in [
|
|
283
|
+
file for file in os.listdir(extension_folder) if file != "build" and os.path.isdir(os.path.join(extension_folder, file))
|
|
284
|
+
]:
|
|
248
285
|
file = os.path.join(folder, "__init__.py")
|
|
249
286
|
if not os.path.exists(file):
|
|
250
|
-
open(file,
|
|
287
|
+
open(file, "a").close()
|
|
@@ -8,11 +8,11 @@ import json
|
|
|
8
8
|
|
|
9
9
|
version_json = '''
|
|
10
10
|
{
|
|
11
|
-
"date": "2024-
|
|
11
|
+
"date": "2024-10-10T09:03:34-0700",
|
|
12
12
|
"dirty": false,
|
|
13
13
|
"error": null,
|
|
14
|
-
"full-revisionid": "
|
|
15
|
-
"version": "1.8.
|
|
14
|
+
"full-revisionid": "f7d5df027c0407ac02c080bb4c39eab963913bf6",
|
|
15
|
+
"version": "1.8.7"
|
|
16
16
|
}
|
|
17
17
|
''' # END VERSION_JSON
|
|
18
18
|
|