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
|
@@ -3,12 +3,12 @@ import traceback
|
|
|
3
3
|
from _pydevd_bundle.pydevd_constants import ForkSafeLock
|
|
4
4
|
|
|
5
5
|
_pid = os.getpid()
|
|
6
|
-
_pid_msg =
|
|
6
|
+
_pid_msg = "%s: " % (_pid,)
|
|
7
7
|
|
|
8
8
|
_debug_lock = ForkSafeLock()
|
|
9
9
|
|
|
10
10
|
DEBUG = False
|
|
11
|
-
DEBUG_FILE = os.path.join(os.path.dirname(__file__),
|
|
11
|
+
DEBUG_FILE = os.path.join(os.path.dirname(__file__), "__debug_output__.txt")
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
def debug(msg):
|
|
@@ -16,15 +16,15 @@ def debug(msg):
|
|
|
16
16
|
with _debug_lock:
|
|
17
17
|
_pid_prefix = _pid_msg
|
|
18
18
|
if isinstance(msg, bytes):
|
|
19
|
-
_pid_prefix = _pid_prefix.encode(
|
|
19
|
+
_pid_prefix = _pid_prefix.encode("utf-8")
|
|
20
20
|
|
|
21
|
-
if not msg.endswith(b
|
|
22
|
-
msg += b
|
|
23
|
-
mode =
|
|
21
|
+
if not msg.endswith(b"\r") and not msg.endswith(b"\n"):
|
|
22
|
+
msg += b"\n"
|
|
23
|
+
mode = "a+b"
|
|
24
24
|
else:
|
|
25
|
-
if not msg.endswith(
|
|
26
|
-
msg +=
|
|
27
|
-
mode =
|
|
25
|
+
if not msg.endswith("\r") and not msg.endswith("\n"):
|
|
26
|
+
msg += "\n"
|
|
27
|
+
mode = "a+"
|
|
28
28
|
with open(DEBUG_FILE, mode) as stream:
|
|
29
29
|
stream.write(_pid_prefix)
|
|
30
30
|
stream.write(msg)
|
|
@@ -36,11 +36,10 @@ def debug_exception(msg=None):
|
|
|
36
36
|
debug(msg)
|
|
37
37
|
|
|
38
38
|
with _debug_lock:
|
|
39
|
-
|
|
40
|
-
with open(DEBUG_FILE, 'a+') as stream:
|
|
39
|
+
with open(DEBUG_FILE, "a+") as stream:
|
|
41
40
|
_pid_prefix = _pid_msg
|
|
42
41
|
if isinstance(msg, bytes):
|
|
43
|
-
_pid_prefix = _pid_prefix.encode(
|
|
42
|
+
_pid_prefix = _pid_prefix.encode("utf-8")
|
|
44
43
|
stream.write(_pid_prefix)
|
|
45
44
|
|
|
46
45
|
traceback.print_exc(file=stream)
|
{debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevconsole_code.py
RENAMED
|
@@ -76,8 +76,7 @@ Compile():
|
|
|
76
76
|
|
|
77
77
|
import __future__
|
|
78
78
|
|
|
79
|
-
_features = [getattr(__future__, fname)
|
|
80
|
-
for fname in __future__.all_feature_names]
|
|
79
|
+
_features = [getattr(__future__, fname) for fname in __future__.all_feature_names]
|
|
81
80
|
|
|
82
81
|
__all__ = ["compile_command", "Compile", "CommandCompiler"]
|
|
83
82
|
|
|
@@ -88,7 +87,7 @@ def _maybe_compile(compiler, source, filename, symbol):
|
|
|
88
87
|
# Check for source consisting of only blank lines and comments
|
|
89
88
|
for line in source.split("\n"):
|
|
90
89
|
line = line.strip()
|
|
91
|
-
if line and line[0] !=
|
|
90
|
+
if line and line[0] != "#":
|
|
92
91
|
break # Leave it alone
|
|
93
92
|
else:
|
|
94
93
|
if symbol != "eval":
|
|
@@ -157,6 +156,7 @@ class Compile:
|
|
|
157
156
|
|
|
158
157
|
try:
|
|
159
158
|
from ast import PyCF_ALLOW_TOP_LEVEL_AWAIT
|
|
159
|
+
|
|
160
160
|
self.flags |= PyCF_ALLOW_TOP_LEVEL_AWAIT
|
|
161
161
|
except:
|
|
162
162
|
pass
|
|
@@ -176,7 +176,9 @@ class CommandCompiler:
|
|
|
176
176
|
the instance 'remembers' and compiles all subsequent program texts
|
|
177
177
|
with the statement in force."""
|
|
178
178
|
|
|
179
|
-
def __init__(
|
|
179
|
+
def __init__(
|
|
180
|
+
self,
|
|
181
|
+
):
|
|
180
182
|
self.compiler = Compile()
|
|
181
183
|
|
|
182
184
|
def __call__(self, source, filename="<input>", symbol="single"):
|
|
@@ -200,6 +202,7 @@ class CommandCompiler:
|
|
|
200
202
|
"""
|
|
201
203
|
return _maybe_compile(self.compiler, source, filename, symbol)
|
|
202
204
|
|
|
205
|
+
|
|
203
206
|
# END --------------------------- from codeop import CommandCompiler, compile_command
|
|
204
207
|
# END --------------------------- from codeop import CommandCompiler, compile_command
|
|
205
208
|
# END --------------------------- from codeop import CommandCompiler, compile_command
|
|
@@ -207,14 +210,12 @@ class CommandCompiler:
|
|
|
207
210
|
# END --------------------------- from codeop import CommandCompiler, compile_command
|
|
208
211
|
|
|
209
212
|
|
|
210
|
-
__all__ = ["InteractiveInterpreter", "InteractiveConsole", "interact",
|
|
211
|
-
"compile_command"]
|
|
213
|
+
__all__ = ["InteractiveInterpreter", "InteractiveConsole", "interact", "compile_command"]
|
|
212
214
|
|
|
213
215
|
from _pydev_bundle._pydev_saved_modules import threading
|
|
214
216
|
|
|
215
217
|
|
|
216
218
|
class _EvalAwaitInNewEventLoop(threading.Thread):
|
|
217
|
-
|
|
218
219
|
def __init__(self, compiled, updated_globals, updated_locals):
|
|
219
220
|
threading.Thread.__init__(self)
|
|
220
221
|
self.daemon = True
|
|
@@ -232,6 +233,7 @@ class _EvalAwaitInNewEventLoop(threading.Thread):
|
|
|
232
233
|
def run(self):
|
|
233
234
|
try:
|
|
234
235
|
import asyncio
|
|
236
|
+
|
|
235
237
|
loop = asyncio.new_event_loop()
|
|
236
238
|
asyncio.set_event_loop(loop)
|
|
237
239
|
self.evaluated_value = asyncio.run(self._async_func())
|
|
@@ -315,7 +317,7 @@ class InteractiveInterpreter:
|
|
|
315
317
|
"""
|
|
316
318
|
try:
|
|
317
319
|
is_async = False
|
|
318
|
-
if hasattr(inspect,
|
|
320
|
+
if hasattr(inspect, "CO_COROUTINE"):
|
|
319
321
|
is_async = inspect.CO_COROUTINE & code.co_flags == inspect.CO_COROUTINE
|
|
320
322
|
|
|
321
323
|
if is_async:
|
|
@@ -362,7 +364,7 @@ class InteractiveInterpreter:
|
|
|
362
364
|
sys.last_value = value
|
|
363
365
|
if sys.excepthook is sys.__excepthook__:
|
|
364
366
|
lines = traceback.format_exception_only(type, value)
|
|
365
|
-
self.write(
|
|
367
|
+
self.write("".join(lines))
|
|
366
368
|
else:
|
|
367
369
|
# If someone has set sys.excepthook, we let that take precedence
|
|
368
370
|
# over self.write
|
|
@@ -381,7 +383,7 @@ class InteractiveInterpreter:
|
|
|
381
383
|
try:
|
|
382
384
|
lines = traceback.format_exception(ei[0], ei[1], last_tb.tb_next)
|
|
383
385
|
if sys.excepthook is sys.__excepthook__:
|
|
384
|
-
self.write(
|
|
386
|
+
self.write("".join(lines))
|
|
385
387
|
else:
|
|
386
388
|
# If someone has set sys.excepthook, we let that take precedence
|
|
387
389
|
# over self.write
|
|
@@ -451,9 +453,7 @@ class InteractiveConsole(InteractiveInterpreter):
|
|
|
451
453
|
sys.ps2 = "... "
|
|
452
454
|
cprt = 'Type "help", "copyright", "credits" or "license" for more information.'
|
|
453
455
|
if banner is None:
|
|
454
|
-
self.write("Python %s on %s\n%s\n(%s)\n" %
|
|
455
|
-
(sys.version, sys.platform, cprt,
|
|
456
|
-
self.__class__.__name__))
|
|
456
|
+
self.write("Python %s on %s\n%s\n(%s)\n" % (sys.version, sys.platform, cprt, self.__class__.__name__))
|
|
457
457
|
elif banner:
|
|
458
458
|
self.write("%s\n" % str(banner))
|
|
459
459
|
more = 0
|
|
@@ -475,9 +475,9 @@ class InteractiveConsole(InteractiveInterpreter):
|
|
|
475
475
|
self.resetbuffer()
|
|
476
476
|
more = 0
|
|
477
477
|
if exitmsg is None:
|
|
478
|
-
self.write(
|
|
479
|
-
elif exitmsg !=
|
|
480
|
-
self.write(
|
|
478
|
+
self.write("now exiting %s...\n" % self.__class__.__name__)
|
|
479
|
+
elif exitmsg != "":
|
|
480
|
+
self.write("%s\n" % exitmsg)
|
|
481
481
|
|
|
482
482
|
def push(self, line):
|
|
483
483
|
"""Push a line to the interpreter.
|
|
@@ -544,11 +544,10 @@ if __name__ == "__main__":
|
|
|
544
544
|
import argparse
|
|
545
545
|
|
|
546
546
|
parser = argparse.ArgumentParser()
|
|
547
|
-
parser.add_argument(
|
|
548
|
-
help="don't print version and copyright messages")
|
|
547
|
+
parser.add_argument("-q", action="store_true", help="don't print version and copyright messages")
|
|
549
548
|
args = parser.parse_args()
|
|
550
549
|
if args.q or sys.flags.quiet:
|
|
551
|
-
banner =
|
|
550
|
+
banner = ""
|
|
552
551
|
else:
|
|
553
552
|
banner = None
|
|
554
553
|
interact(banner)
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Defines which version of the PyDBAdditionalThreadInfo we'll use.
|
|
2
|
+
from _pydevd_bundle.pydevd_constants import ENV_FALSE_LOWER_VALUES, USE_CYTHON_FLAG, ENV_TRUE_LOWER_VALUES
|
|
3
|
+
|
|
4
|
+
if USE_CYTHON_FLAG in ENV_TRUE_LOWER_VALUES:
|
|
5
|
+
# We must import the cython version if forcing cython
|
|
6
|
+
from _pydevd_bundle.pydevd_cython_wrapper import (
|
|
7
|
+
PyDBAdditionalThreadInfo,
|
|
8
|
+
set_additional_thread_info,
|
|
9
|
+
_set_additional_thread_info_lock, # @UnusedImport
|
|
10
|
+
any_thread_stepping,
|
|
11
|
+
remove_additional_info,
|
|
12
|
+
) # @UnusedImport
|
|
13
|
+
|
|
14
|
+
elif USE_CYTHON_FLAG in ENV_FALSE_LOWER_VALUES:
|
|
15
|
+
# Use the regular version if not forcing cython
|
|
16
|
+
from _pydevd_bundle.pydevd_additional_thread_info_regular import (
|
|
17
|
+
PyDBAdditionalThreadInfo,
|
|
18
|
+
set_additional_thread_info,
|
|
19
|
+
_set_additional_thread_info_lock, # @UnusedImport @Reimport
|
|
20
|
+
any_thread_stepping,
|
|
21
|
+
remove_additional_info,
|
|
22
|
+
) # @UnusedImport @Reimport
|
|
23
|
+
|
|
24
|
+
else:
|
|
25
|
+
# Regular: use fallback if not found (message is already given elsewhere).
|
|
26
|
+
try:
|
|
27
|
+
from _pydevd_bundle.pydevd_cython_wrapper import (
|
|
28
|
+
PyDBAdditionalThreadInfo,
|
|
29
|
+
set_additional_thread_info,
|
|
30
|
+
_set_additional_thread_info_lock,
|
|
31
|
+
any_thread_stepping,
|
|
32
|
+
remove_additional_info,
|
|
33
|
+
)
|
|
34
|
+
except ImportError:
|
|
35
|
+
from _pydevd_bundle.pydevd_additional_thread_info_regular import (
|
|
36
|
+
PyDBAdditionalThreadInfo,
|
|
37
|
+
set_additional_thread_info,
|
|
38
|
+
_set_additional_thread_info_lock, # @UnusedImport
|
|
39
|
+
any_thread_stepping,
|
|
40
|
+
remove_additional_info,
|
|
41
|
+
) # @UnusedImport
|
debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_additional_thread_info_regular.py
ADDED
|
@@ -0,0 +1,328 @@
|
|
|
1
|
+
from _pydevd_bundle.pydevd_constants import (
|
|
2
|
+
STATE_RUN,
|
|
3
|
+
PYTHON_SUSPEND,
|
|
4
|
+
SUPPORT_GEVENT,
|
|
5
|
+
ForkSafeLock,
|
|
6
|
+
_current_frames,
|
|
7
|
+
STATE_SUSPEND,
|
|
8
|
+
get_global_debugger,
|
|
9
|
+
get_thread_id,
|
|
10
|
+
)
|
|
11
|
+
from _pydev_bundle import pydev_log
|
|
12
|
+
from _pydev_bundle._pydev_saved_modules import threading
|
|
13
|
+
from _pydev_bundle.pydev_is_thread_alive import is_thread_alive
|
|
14
|
+
import weakref
|
|
15
|
+
|
|
16
|
+
version = 11
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
# =======================================================================================================================
|
|
20
|
+
# PyDBAdditionalThreadInfo
|
|
21
|
+
# =======================================================================================================================
|
|
22
|
+
# fmt: off
|
|
23
|
+
# IFDEF CYTHON
|
|
24
|
+
# cdef class PyDBAdditionalThreadInfo:
|
|
25
|
+
# ELSE
|
|
26
|
+
class PyDBAdditionalThreadInfo(object):
|
|
27
|
+
# ENDIF
|
|
28
|
+
# fmt: on
|
|
29
|
+
|
|
30
|
+
# Note: the params in cython are declared in pydevd_cython.pxd.
|
|
31
|
+
# fmt: off
|
|
32
|
+
# IFDEF CYTHON
|
|
33
|
+
# ELSE
|
|
34
|
+
__slots__ = [
|
|
35
|
+
"pydev_state",
|
|
36
|
+
"pydev_step_stop",
|
|
37
|
+
"pydev_original_step_cmd",
|
|
38
|
+
"pydev_step_cmd",
|
|
39
|
+
"pydev_notify_kill",
|
|
40
|
+
"pydev_django_resolve_frame",
|
|
41
|
+
"pydev_call_from_jinja2",
|
|
42
|
+
"pydev_call_inside_jinja2",
|
|
43
|
+
"is_tracing",
|
|
44
|
+
"conditional_breakpoint_exception",
|
|
45
|
+
"pydev_message",
|
|
46
|
+
"suspend_type",
|
|
47
|
+
"pydev_next_line",
|
|
48
|
+
"pydev_func_name",
|
|
49
|
+
"suspended_at_unhandled",
|
|
50
|
+
"trace_suspend_type",
|
|
51
|
+
"top_level_thread_tracer_no_back_frames",
|
|
52
|
+
"top_level_thread_tracer_unhandled",
|
|
53
|
+
"thread_tracer",
|
|
54
|
+
"step_in_initial_location",
|
|
55
|
+
# Used for CMD_SMART_STEP_INTO (to know which smart step into variant to use)
|
|
56
|
+
"pydev_smart_parent_offset",
|
|
57
|
+
"pydev_smart_child_offset",
|
|
58
|
+
# Used for CMD_SMART_STEP_INTO (list[_pydevd_bundle.pydevd_bytecode_utils.Variant])
|
|
59
|
+
# Filled when the cmd_get_smart_step_into_variants is requested (so, this is a copy
|
|
60
|
+
# of the last request for a given thread and pydev_smart_parent_offset/pydev_smart_child_offset relies on it).
|
|
61
|
+
"pydev_smart_step_into_variants",
|
|
62
|
+
"target_id_to_smart_step_into_variant",
|
|
63
|
+
"pydev_use_scoped_step_frame",
|
|
64
|
+
"weak_thread",
|
|
65
|
+
"is_in_wait_loop",
|
|
66
|
+
]
|
|
67
|
+
# ENDIF
|
|
68
|
+
# fmt: on
|
|
69
|
+
|
|
70
|
+
def __init__(self):
|
|
71
|
+
self.pydev_state = STATE_RUN # STATE_RUN or STATE_SUSPEND
|
|
72
|
+
self.pydev_step_stop = None
|
|
73
|
+
|
|
74
|
+
# Note: we have `pydev_original_step_cmd` and `pydev_step_cmd` because the original is to
|
|
75
|
+
# say the action that started it and the other is to say what's the current tracing behavior
|
|
76
|
+
# (because it's possible that we start with a step over but may have to switch to a
|
|
77
|
+
# different step strategy -- for instance, if a step over is done and we return the current
|
|
78
|
+
# method the strategy is changed to a step in).
|
|
79
|
+
|
|
80
|
+
self.pydev_original_step_cmd = -1 # Something as CMD_STEP_INTO, CMD_STEP_OVER, etc.
|
|
81
|
+
self.pydev_step_cmd = -1 # Something as CMD_STEP_INTO, CMD_STEP_OVER, etc.
|
|
82
|
+
|
|
83
|
+
self.pydev_notify_kill = False
|
|
84
|
+
self.pydev_django_resolve_frame = False
|
|
85
|
+
self.pydev_call_from_jinja2 = None
|
|
86
|
+
self.pydev_call_inside_jinja2 = None
|
|
87
|
+
self.is_tracing = 0
|
|
88
|
+
self.conditional_breakpoint_exception = None
|
|
89
|
+
self.pydev_message = ""
|
|
90
|
+
self.suspend_type = PYTHON_SUSPEND
|
|
91
|
+
self.pydev_next_line = -1
|
|
92
|
+
self.pydev_func_name = ".invalid." # Must match the type in cython
|
|
93
|
+
self.suspended_at_unhandled = False
|
|
94
|
+
self.trace_suspend_type = "trace" # 'trace' or 'frame_eval'
|
|
95
|
+
self.top_level_thread_tracer_no_back_frames = []
|
|
96
|
+
self.top_level_thread_tracer_unhandled = None
|
|
97
|
+
self.thread_tracer = None
|
|
98
|
+
self.step_in_initial_location = None
|
|
99
|
+
self.pydev_smart_parent_offset = -1
|
|
100
|
+
self.pydev_smart_child_offset = -1
|
|
101
|
+
self.pydev_smart_step_into_variants = ()
|
|
102
|
+
self.target_id_to_smart_step_into_variant = {}
|
|
103
|
+
|
|
104
|
+
# Flag to indicate ipython use-case where each line will be executed as a call/line/return
|
|
105
|
+
# in a new new frame but in practice we want to consider each new frame as if it was all
|
|
106
|
+
# part of the same frame.
|
|
107
|
+
#
|
|
108
|
+
# In practice this means that a step over shouldn't revert to a step in and we need some
|
|
109
|
+
# special logic to know when we should stop in a step over as we need to consider 2
|
|
110
|
+
# different frames as being equal if they're logically the continuation of a frame
|
|
111
|
+
# being executed by ipython line by line.
|
|
112
|
+
#
|
|
113
|
+
# See: https://github.com/microsoft/debugpy/issues/869#issuecomment-1132141003
|
|
114
|
+
self.pydev_use_scoped_step_frame = False
|
|
115
|
+
self.weak_thread = None
|
|
116
|
+
|
|
117
|
+
# Purpose: detect if this thread is suspended and actually in the wait loop
|
|
118
|
+
# at this time (otherwise it may be suspended but still didn't reach a point.
|
|
119
|
+
# to pause).
|
|
120
|
+
self.is_in_wait_loop = False
|
|
121
|
+
|
|
122
|
+
# fmt: off
|
|
123
|
+
# IFDEF CYTHON
|
|
124
|
+
# cpdef object _get_related_thread(self):
|
|
125
|
+
# ELSE
|
|
126
|
+
def _get_related_thread(self):
|
|
127
|
+
# ENDIF
|
|
128
|
+
# fmt: on
|
|
129
|
+
if self.pydev_notify_kill: # Already killed
|
|
130
|
+
return None
|
|
131
|
+
|
|
132
|
+
if self.weak_thread is None:
|
|
133
|
+
return None
|
|
134
|
+
|
|
135
|
+
thread = self.weak_thread()
|
|
136
|
+
if thread is None:
|
|
137
|
+
return False
|
|
138
|
+
|
|
139
|
+
if not is_thread_alive(thread):
|
|
140
|
+
return None
|
|
141
|
+
|
|
142
|
+
if thread._ident is None: # Can this happen?
|
|
143
|
+
pydev_log.critical("thread._ident is None in _get_related_thread!")
|
|
144
|
+
return None
|
|
145
|
+
|
|
146
|
+
if threading._active.get(thread._ident) is not thread:
|
|
147
|
+
return None
|
|
148
|
+
|
|
149
|
+
return thread
|
|
150
|
+
|
|
151
|
+
# fmt: off
|
|
152
|
+
# IFDEF CYTHON
|
|
153
|
+
# cpdef bint _is_stepping(self):
|
|
154
|
+
# ELSE
|
|
155
|
+
def _is_stepping(self):
|
|
156
|
+
# ENDIF
|
|
157
|
+
# fmt: on
|
|
158
|
+
if self.pydev_state == STATE_RUN and self.pydev_step_cmd != -1:
|
|
159
|
+
# This means actually stepping in a step operation.
|
|
160
|
+
return True
|
|
161
|
+
|
|
162
|
+
if self.pydev_state == STATE_SUSPEND and self.is_in_wait_loop:
|
|
163
|
+
# This means stepping because it was suspended but still didn't
|
|
164
|
+
# reach a suspension point.
|
|
165
|
+
return True
|
|
166
|
+
|
|
167
|
+
return False
|
|
168
|
+
|
|
169
|
+
# fmt: off
|
|
170
|
+
# IFDEF CYTHON
|
|
171
|
+
# cpdef get_topmost_frame(self, thread):
|
|
172
|
+
# ELSE
|
|
173
|
+
def get_topmost_frame(self, thread):
|
|
174
|
+
# ENDIF
|
|
175
|
+
# fmt: on
|
|
176
|
+
"""
|
|
177
|
+
Gets the topmost frame for the given thread. Note that it may be None
|
|
178
|
+
and callers should remove the reference to the frame as soon as possible
|
|
179
|
+
to avoid disturbing user code.
|
|
180
|
+
"""
|
|
181
|
+
# sys._current_frames(): dictionary with thread id -> topmost frame
|
|
182
|
+
current_frames = _current_frames()
|
|
183
|
+
topmost_frame = current_frames.get(thread._ident)
|
|
184
|
+
if topmost_frame is None:
|
|
185
|
+
# Note: this is expected for dummy threads (so, getting the topmost frame should be
|
|
186
|
+
# treated as optional).
|
|
187
|
+
pydev_log.info(
|
|
188
|
+
"Unable to get topmost frame for thread: %s, thread.ident: %s, id(thread): %s\nCurrent frames: %s.\n" "GEVENT_SUPPORT: %s",
|
|
189
|
+
thread,
|
|
190
|
+
thread.ident,
|
|
191
|
+
id(thread),
|
|
192
|
+
current_frames,
|
|
193
|
+
SUPPORT_GEVENT,
|
|
194
|
+
)
|
|
195
|
+
|
|
196
|
+
return topmost_frame
|
|
197
|
+
|
|
198
|
+
# fmt: off
|
|
199
|
+
# IFDEF CYTHON
|
|
200
|
+
# cpdef update_stepping_info(self):
|
|
201
|
+
# ELSE
|
|
202
|
+
def update_stepping_info(self):
|
|
203
|
+
# ENDIF
|
|
204
|
+
# fmt: on
|
|
205
|
+
_update_stepping_info(self)
|
|
206
|
+
|
|
207
|
+
def __str__(self):
|
|
208
|
+
return "State:%s Stop:%s Cmd: %s Kill:%s" % (self.pydev_state, self.pydev_step_stop, self.pydev_step_cmd, self.pydev_notify_kill)
|
|
209
|
+
|
|
210
|
+
|
|
211
|
+
_set_additional_thread_info_lock = ForkSafeLock()
|
|
212
|
+
_next_additional_info = [PyDBAdditionalThreadInfo()]
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
# fmt: off
|
|
216
|
+
# IFDEF CYTHON
|
|
217
|
+
# cpdef set_additional_thread_info(thread):
|
|
218
|
+
# ELSE
|
|
219
|
+
def set_additional_thread_info(thread):
|
|
220
|
+
# ENDIF
|
|
221
|
+
# fmt: on
|
|
222
|
+
try:
|
|
223
|
+
additional_info = thread.additional_info
|
|
224
|
+
if additional_info is None:
|
|
225
|
+
raise AttributeError()
|
|
226
|
+
except:
|
|
227
|
+
with _set_additional_thread_info_lock:
|
|
228
|
+
# If it's not there, set it within a lock to avoid any racing
|
|
229
|
+
# conditions.
|
|
230
|
+
try:
|
|
231
|
+
additional_info = thread.additional_info
|
|
232
|
+
except:
|
|
233
|
+
additional_info = None
|
|
234
|
+
|
|
235
|
+
if additional_info is None:
|
|
236
|
+
# Note: don't call PyDBAdditionalThreadInfo constructor at this
|
|
237
|
+
# point as it can piggy-back into the debugger which could
|
|
238
|
+
# get here again, rather get the global ref which was pre-created
|
|
239
|
+
# and add a new entry only after we set thread.additional_info.
|
|
240
|
+
additional_info = _next_additional_info[0]
|
|
241
|
+
thread.additional_info = additional_info
|
|
242
|
+
additional_info.weak_thread = weakref.ref(thread)
|
|
243
|
+
add_additional_info(additional_info)
|
|
244
|
+
del _next_additional_info[:]
|
|
245
|
+
_next_additional_info.append(PyDBAdditionalThreadInfo())
|
|
246
|
+
|
|
247
|
+
return additional_info
|
|
248
|
+
|
|
249
|
+
|
|
250
|
+
# fmt: off
|
|
251
|
+
# IFDEF CYTHON
|
|
252
|
+
# cdef set _all_infos
|
|
253
|
+
# cdef set _infos_stepping
|
|
254
|
+
# cdef object _update_infos_lock
|
|
255
|
+
# ELSE
|
|
256
|
+
# ENDIF
|
|
257
|
+
# fmt: on
|
|
258
|
+
|
|
259
|
+
_all_infos = set()
|
|
260
|
+
_infos_stepping = set()
|
|
261
|
+
_update_infos_lock = ForkSafeLock()
|
|
262
|
+
|
|
263
|
+
|
|
264
|
+
# fmt: off
|
|
265
|
+
# IFDEF CYTHON
|
|
266
|
+
# cdef _update_stepping_info(PyDBAdditionalThreadInfo info):
|
|
267
|
+
# ELSE
|
|
268
|
+
def _update_stepping_info(info):
|
|
269
|
+
# ENDIF
|
|
270
|
+
# fmt: on
|
|
271
|
+
|
|
272
|
+
global _infos_stepping
|
|
273
|
+
global _all_infos
|
|
274
|
+
|
|
275
|
+
with _update_infos_lock:
|
|
276
|
+
# Removes entries that are no longer valid.
|
|
277
|
+
new_all_infos = set()
|
|
278
|
+
for info in _all_infos:
|
|
279
|
+
if info._get_related_thread() is not None:
|
|
280
|
+
new_all_infos.add(info)
|
|
281
|
+
_all_infos = new_all_infos
|
|
282
|
+
|
|
283
|
+
new_stepping = set()
|
|
284
|
+
for info in _all_infos:
|
|
285
|
+
if info._is_stepping():
|
|
286
|
+
new_stepping.add(info)
|
|
287
|
+
_infos_stepping = new_stepping
|
|
288
|
+
|
|
289
|
+
py_db = get_global_debugger()
|
|
290
|
+
if py_db is not None and not py_db.pydb_disposed:
|
|
291
|
+
thread = info.weak_thread()
|
|
292
|
+
if thread is not None:
|
|
293
|
+
thread_id = get_thread_id(thread)
|
|
294
|
+
_queue, event = py_db.get_internal_queue_and_event(thread_id)
|
|
295
|
+
event.set()
|
|
296
|
+
|
|
297
|
+
# fmt: off
|
|
298
|
+
# IFDEF CYTHON
|
|
299
|
+
# cpdef add_additional_info(PyDBAdditionalThreadInfo info):
|
|
300
|
+
# ELSE
|
|
301
|
+
def add_additional_info(info):
|
|
302
|
+
# ENDIF
|
|
303
|
+
# fmt: on
|
|
304
|
+
with _update_infos_lock:
|
|
305
|
+
_all_infos.add(info)
|
|
306
|
+
if info._is_stepping():
|
|
307
|
+
_infos_stepping.add(info)
|
|
308
|
+
|
|
309
|
+
# fmt: off
|
|
310
|
+
# IFDEF CYTHON
|
|
311
|
+
# cpdef remove_additional_info(PyDBAdditionalThreadInfo info):
|
|
312
|
+
# ELSE
|
|
313
|
+
def remove_additional_info(info):
|
|
314
|
+
# ENDIF
|
|
315
|
+
# fmt: on
|
|
316
|
+
with _update_infos_lock:
|
|
317
|
+
_all_infos.discard(info)
|
|
318
|
+
_infos_stepping.discard(info)
|
|
319
|
+
|
|
320
|
+
|
|
321
|
+
# fmt: off
|
|
322
|
+
# IFDEF CYTHON
|
|
323
|
+
# cpdef bint any_thread_stepping():
|
|
324
|
+
# ELSE
|
|
325
|
+
def any_thread_stepping():
|
|
326
|
+
# ENDIF
|
|
327
|
+
# fmt: on
|
|
328
|
+
return bool(_infos_stepping)
|