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
{debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_breakpoints.py
RENAMED
|
@@ -5,7 +5,6 @@ from _pydev_bundle._pydev_saved_modules import threading
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
class ExceptionBreakpoint(object):
|
|
8
|
-
|
|
9
8
|
def __init__(
|
|
10
9
|
self,
|
|
11
10
|
qname,
|
|
@@ -15,8 +14,8 @@ class ExceptionBreakpoint(object):
|
|
|
15
14
|
notify_on_unhandled_exceptions,
|
|
16
15
|
notify_on_user_unhandled_exceptions,
|
|
17
16
|
notify_on_first_raise_only,
|
|
18
|
-
ignore_libraries
|
|
19
|
-
|
|
17
|
+
ignore_libraries,
|
|
18
|
+
):
|
|
20
19
|
exctype = get_exception_class(qname)
|
|
21
20
|
self.qname = qname
|
|
22
21
|
if exctype is not None:
|
|
@@ -46,7 +45,6 @@ class ExceptionBreakpoint(object):
|
|
|
46
45
|
|
|
47
46
|
|
|
48
47
|
class LineBreakpoint(object):
|
|
49
|
-
|
|
50
48
|
def __init__(self, breakpoint_id, line, condition, func_name, expression, suspend_policy="NONE", hit_condition=None, is_logpoint=False):
|
|
51
49
|
self.breakpoint_id = breakpoint_id
|
|
52
50
|
self.line = line
|
|
@@ -69,7 +67,7 @@ class LineBreakpoint(object):
|
|
|
69
67
|
ret = False
|
|
70
68
|
with self._hit_condition_lock:
|
|
71
69
|
self._hit_count += 1
|
|
72
|
-
expr = self.hit_condition.replace(
|
|
70
|
+
expr = self.hit_condition.replace("@HIT@", str(self._hit_count))
|
|
73
71
|
try:
|
|
74
72
|
ret = bool(eval(expr, frame.f_globals, frame.f_locals))
|
|
75
73
|
except Exception:
|
|
@@ -78,7 +76,6 @@ class LineBreakpoint(object):
|
|
|
78
76
|
|
|
79
77
|
|
|
80
78
|
class FunctionBreakpoint(object):
|
|
81
|
-
|
|
82
79
|
def __init__(self, func_name, condition, expression, suspend_policy="NONE", hit_condition=None, is_logpoint=False):
|
|
83
80
|
self.condition = condition
|
|
84
81
|
self.func_name = func_name
|
|
@@ -99,7 +96,7 @@ class FunctionBreakpoint(object):
|
|
|
99
96
|
ret = False
|
|
100
97
|
with self._hit_condition_lock:
|
|
101
98
|
self._hit_count += 1
|
|
102
|
-
expr = self.hit_condition.replace(
|
|
99
|
+
expr = self.hit_condition.replace("@HIT@", str(self._hit_count))
|
|
103
100
|
try:
|
|
104
101
|
ret = bool(eval(expr, frame.f_globals, frame.f_locals))
|
|
105
102
|
except Exception:
|
|
@@ -111,7 +108,7 @@ def get_exception_breakpoint(exctype, exceptions):
|
|
|
111
108
|
if not exctype:
|
|
112
109
|
exception_full_qname = None
|
|
113
110
|
else:
|
|
114
|
-
exception_full_qname = str(exctype.__module__) +
|
|
111
|
+
exception_full_qname = str(exctype.__module__) + "." + exctype.__name__
|
|
115
112
|
|
|
116
113
|
exc = None
|
|
117
114
|
if exceptions is not None:
|
|
@@ -170,9 +167,9 @@ def stop_on_unhandled_exception(py_db, thread, additional_info, arg):
|
|
|
170
167
|
try:
|
|
171
168
|
additional_info.pydev_message = exception_breakpoint.qname
|
|
172
169
|
except:
|
|
173
|
-
additional_info.pydev_message = exception_breakpoint.qname.encode(
|
|
170
|
+
additional_info.pydev_message = exception_breakpoint.qname.encode("utf-8")
|
|
174
171
|
|
|
175
|
-
pydev_log.debug(
|
|
172
|
+
pydev_log.debug("Handling post-mortem stop on exception breakpoint %s" % (exception_breakpoint.qname,))
|
|
176
173
|
|
|
177
174
|
py_db.do_stop_on_unhandled_exception(thread, user_frame, frames_byid, arg)
|
|
178
175
|
|
{debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_bytecode_utils.py
RENAMED
|
@@ -6,7 +6,7 @@ Note: not importable from Python 2.
|
|
|
6
6
|
|
|
7
7
|
from _pydev_bundle import pydev_log
|
|
8
8
|
from types import CodeType
|
|
9
|
-
from _pydevd_frame_eval.vendored.bytecode.instr import _Variable
|
|
9
|
+
from _pydevd_frame_eval.vendored.bytecode.instr import _Variable, Label
|
|
10
10
|
from _pydevd_frame_eval.vendored import bytecode
|
|
11
11
|
from _pydevd_frame_eval.vendored.bytecode import cfg as bytecode_cfg
|
|
12
12
|
import dis
|
|
@@ -15,69 +15,85 @@ import opcode as _opcode
|
|
|
15
15
|
from _pydevd_bundle.pydevd_constants import KeyifyList, DebugInfoHolder, IS_PY311_OR_GREATER
|
|
16
16
|
from bisect import bisect
|
|
17
17
|
from collections import deque
|
|
18
|
+
import traceback
|
|
18
19
|
|
|
19
20
|
# When True, throws errors on unknown bytecodes, when False, ignore those as if they didn't change the stack.
|
|
20
21
|
STRICT_MODE = False
|
|
21
22
|
|
|
23
|
+
GO_INTO_INNER_CODES = True
|
|
24
|
+
|
|
22
25
|
DEBUG = False
|
|
23
26
|
|
|
24
|
-
_BINARY_OPS = set([opname for opname in dis.opname if opname.startswith(
|
|
27
|
+
_BINARY_OPS = set([opname for opname in dis.opname if opname.startswith("BINARY_")])
|
|
25
28
|
|
|
26
29
|
_BINARY_OP_MAP = {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
30
|
+
"BINARY_POWER": "__pow__",
|
|
31
|
+
"BINARY_MULTIPLY": "__mul__",
|
|
32
|
+
"BINARY_MATRIX_MULTIPLY": "__matmul__",
|
|
33
|
+
"BINARY_FLOOR_DIVIDE": "__floordiv__",
|
|
34
|
+
"BINARY_TRUE_DIVIDE": "__div__",
|
|
35
|
+
"BINARY_MODULO": "__mod__",
|
|
36
|
+
"BINARY_ADD": "__add__",
|
|
37
|
+
"BINARY_SUBTRACT": "__sub__",
|
|
38
|
+
"BINARY_LSHIFT": "__lshift__",
|
|
39
|
+
"BINARY_RSHIFT": "__rshift__",
|
|
40
|
+
"BINARY_AND": "__and__",
|
|
41
|
+
"BINARY_OR": "__or__",
|
|
42
|
+
"BINARY_XOR": "__xor__",
|
|
43
|
+
"BINARY_SUBSCR": "__getitem__",
|
|
44
|
+
"BINARY_DIVIDE": "__div__",
|
|
42
45
|
}
|
|
43
46
|
|
|
44
47
|
_COMP_OP_MAP = {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
48
|
+
"<": "__lt__",
|
|
49
|
+
"<=": "__le__",
|
|
50
|
+
"==": "__eq__",
|
|
51
|
+
"!=": "__ne__",
|
|
52
|
+
">": "__gt__",
|
|
53
|
+
">=": "__ge__",
|
|
54
|
+
"in": "__contains__",
|
|
55
|
+
"not in": "__contains__",
|
|
53
56
|
}
|
|
54
57
|
|
|
55
58
|
|
|
56
59
|
class Target(object):
|
|
57
|
-
__slots__ = [
|
|
58
|
-
|
|
59
|
-
def __init__(
|
|
60
|
+
__slots__ = ["arg", "lineno", "endlineno", "startcol", "endcol", "offset", "children_targets"]
|
|
61
|
+
|
|
62
|
+
def __init__(
|
|
63
|
+
self,
|
|
64
|
+
arg,
|
|
65
|
+
lineno,
|
|
66
|
+
offset,
|
|
67
|
+
children_targets=(),
|
|
68
|
+
# These are optional (only Python 3.11 onwards).
|
|
69
|
+
endlineno=-1,
|
|
70
|
+
startcol=-1,
|
|
71
|
+
endcol=-1,
|
|
72
|
+
):
|
|
60
73
|
self.arg = arg
|
|
61
74
|
self.lineno = lineno
|
|
75
|
+
self.endlineno = endlineno
|
|
76
|
+
self.startcol = startcol
|
|
77
|
+
self.endcol = endcol
|
|
78
|
+
|
|
62
79
|
self.offset = offset
|
|
63
80
|
self.children_targets = children_targets
|
|
64
81
|
|
|
65
82
|
def __repr__(self):
|
|
66
83
|
ret = []
|
|
67
84
|
for s in self.__slots__:
|
|
68
|
-
ret.append(
|
|
69
|
-
return
|
|
85
|
+
ret.append("%s: %s" % (s, getattr(self, s)))
|
|
86
|
+
return "Target(%s)" % ", ".join(ret)
|
|
70
87
|
|
|
71
88
|
__str__ = __repr__
|
|
72
89
|
|
|
73
90
|
|
|
74
91
|
class _TargetIdHashable(object):
|
|
75
|
-
|
|
76
92
|
def __init__(self, target):
|
|
77
93
|
self.target = target
|
|
78
94
|
|
|
79
95
|
def __eq__(self, other):
|
|
80
|
-
if not hasattr(other,
|
|
96
|
+
if not hasattr(other, "target"):
|
|
81
97
|
return
|
|
82
98
|
return other.target is self.target
|
|
83
99
|
|
|
@@ -89,9 +105,9 @@ class _TargetIdHashable(object):
|
|
|
89
105
|
|
|
90
106
|
|
|
91
107
|
class _StackInterpreter(object):
|
|
92
|
-
|
|
108
|
+
"""
|
|
93
109
|
Good reference: https://github.com/python/cpython/blob/fcb55c0037baab6f98f91ee38ce84b6f874f034a/Python/ceval.c
|
|
94
|
-
|
|
110
|
+
"""
|
|
95
111
|
|
|
96
112
|
def __init__(self, bytecode):
|
|
97
113
|
self.bytecode = bytecode
|
|
@@ -102,38 +118,42 @@ class _StackInterpreter(object):
|
|
|
102
118
|
self.func_name_id_to_code_object = {}
|
|
103
119
|
|
|
104
120
|
def __str__(self):
|
|
105
|
-
return
|
|
121
|
+
return "Stack:\nFunction calls:\n%s\nLoad attrs:\n%s\n" % (self.function_calls, list(self.load_attrs.values()))
|
|
106
122
|
|
|
107
123
|
def _getname(self, instr):
|
|
108
124
|
if instr.opcode in _opcode.hascompare:
|
|
109
125
|
cmp_op = dis.cmp_op[instr.arg]
|
|
110
|
-
if cmp_op not in (
|
|
126
|
+
if cmp_op not in ("exception match", "BAD"):
|
|
111
127
|
return _COMP_OP_MAP.get(cmp_op, cmp_op)
|
|
112
128
|
return instr.arg
|
|
113
129
|
|
|
114
130
|
def _getcallname(self, instr):
|
|
115
|
-
if instr.name ==
|
|
116
|
-
return
|
|
117
|
-
if instr.name ==
|
|
131
|
+
if instr.name == "BINARY_SUBSCR":
|
|
132
|
+
return "__getitem__().__call__"
|
|
133
|
+
if instr.name == "CALL_FUNCTION":
|
|
118
134
|
# Note: previously a '__call__().__call__' was returned, but this was a bit weird
|
|
119
135
|
# and on Python 3.9 this construct could appear for some internal things where
|
|
120
136
|
# it wouldn't be expected.
|
|
121
137
|
# Note: it'd be what we had in func()().
|
|
122
138
|
return None
|
|
123
|
-
if instr.name ==
|
|
124
|
-
return
|
|
125
|
-
if instr.name ==
|
|
126
|
-
return
|
|
139
|
+
if instr.name == "MAKE_FUNCTION":
|
|
140
|
+
return "__func__().__call__"
|
|
141
|
+
if instr.name == "LOAD_ASSERTION_ERROR":
|
|
142
|
+
return "AssertionError"
|
|
127
143
|
name = self._getname(instr)
|
|
128
144
|
if isinstance(name, CodeType):
|
|
129
145
|
name = name.co_qualname # Note: only available for Python 3.11
|
|
130
146
|
if isinstance(name, _Variable):
|
|
131
147
|
name = name.name
|
|
148
|
+
if isinstance(name, tuple):
|
|
149
|
+
# Load attr in Python 3.12 comes with (bool, name)
|
|
150
|
+
if len(name) == 2 and isinstance(name[0], bool) and isinstance(name[1], str):
|
|
151
|
+
name = name[1]
|
|
132
152
|
|
|
133
153
|
if not isinstance(name, str):
|
|
134
154
|
return None
|
|
135
|
-
if name.endswith(
|
|
136
|
-
return name.split(
|
|
155
|
+
if name.endswith(">"): # xxx.<listcomp>, xxx.<lambda>, ...
|
|
156
|
+
return name.split(".")[-1]
|
|
137
157
|
return name
|
|
138
158
|
|
|
139
159
|
def _no_stack_change(self, instr):
|
|
@@ -203,17 +223,16 @@ class _StackInterpreter(object):
|
|
|
203
223
|
target = None
|
|
204
224
|
if not call_name:
|
|
205
225
|
pass # Ignore if we can't identify a name
|
|
206
|
-
elif call_name in (
|
|
226
|
+
elif call_name in ("<listcomp>", "<genexpr>", "<setcomp>", "<dictcomp>"):
|
|
207
227
|
code_obj = self.func_name_id_to_code_object[_TargetIdHashable(func_name_instr)]
|
|
208
|
-
if code_obj is not None:
|
|
228
|
+
if code_obj is not None and GO_INTO_INNER_CODES:
|
|
209
229
|
children_targets = _get_smart_step_into_targets(code_obj)
|
|
210
230
|
if children_targets:
|
|
211
231
|
# i.e.: we have targets inside of a <listcomp> or <genexpr>.
|
|
212
232
|
# Note that to actually match this in the debugger we need to do matches on 2 frames,
|
|
213
233
|
# the one with the <listcomp> and then the actual target inside the <listcomp>.
|
|
214
234
|
target = Target(call_name, func_name_instr.lineno, func_call_instr.offset, children_targets)
|
|
215
|
-
self.function_calls.append(
|
|
216
|
-
target)
|
|
235
|
+
self.function_calls.append(target)
|
|
217
236
|
|
|
218
237
|
else:
|
|
219
238
|
# Ok, regular call
|
|
@@ -221,7 +240,7 @@ class _StackInterpreter(object):
|
|
|
221
240
|
self.function_calls.append(target)
|
|
222
241
|
|
|
223
242
|
if DEBUG and target is not None:
|
|
224
|
-
print(
|
|
243
|
+
print("Created target", target)
|
|
225
244
|
self._stack.append(func_call_instr) # Keep the func call as the result
|
|
226
245
|
|
|
227
246
|
def on_COMPARE_OP(self, instr):
|
|
@@ -235,7 +254,7 @@ class _StackInterpreter(object):
|
|
|
235
254
|
return
|
|
236
255
|
|
|
237
256
|
cmp_op = dis.cmp_op[instr.arg]
|
|
238
|
-
if cmp_op not in (
|
|
257
|
+
if cmp_op not in ("exception match", "BAD"):
|
|
239
258
|
self.function_calls.append(Target(self._getname(instr), instr.lineno, instr.offset))
|
|
240
259
|
|
|
241
260
|
self._stack.append(instr)
|
|
@@ -300,7 +319,7 @@ class _StackInterpreter(object):
|
|
|
300
319
|
_func_defaults = self._stack.pop()
|
|
301
320
|
|
|
302
321
|
call_name = self._getcallname(qualname)
|
|
303
|
-
if call_name in (
|
|
322
|
+
if call_name in ("<genexpr>", "<listcomp>", "<setcomp>", "<dictcomp>"):
|
|
304
323
|
if isinstance(code_obj_instr.arg, CodeType):
|
|
305
324
|
self.func_name_id_to_code_object[_TargetIdHashable(qualname)] = code_obj_instr.arg
|
|
306
325
|
self._stack.append(qualname)
|
|
@@ -308,6 +327,9 @@ class _StackInterpreter(object):
|
|
|
308
327
|
def on_LOAD_FAST(self, instr):
|
|
309
328
|
self._stack.append(instr)
|
|
310
329
|
|
|
330
|
+
on_LOAD_FAST_AND_CLEAR = on_LOAD_FAST
|
|
331
|
+
on_LOAD_FAST_CHECK = on_LOAD_FAST
|
|
332
|
+
|
|
311
333
|
def on_LOAD_ASSERTION_ERROR(self, instr):
|
|
312
334
|
self._stack.append(instr)
|
|
313
335
|
|
|
@@ -321,14 +343,49 @@ class _StackInterpreter(object):
|
|
|
321
343
|
func_name_instr = self._stack.pop()
|
|
322
344
|
self._handle_call_from_instr(func_name_instr, instr)
|
|
323
345
|
|
|
346
|
+
def on_CALL(self, instr):
|
|
347
|
+
# pop the actual args
|
|
348
|
+
for _ in range(instr.arg):
|
|
349
|
+
self._stack.pop()
|
|
350
|
+
|
|
351
|
+
func_name_instr = self._stack.pop()
|
|
352
|
+
if self._getcallname(func_name_instr) is None:
|
|
353
|
+
func_name_instr = self._stack.pop()
|
|
354
|
+
|
|
355
|
+
if self._stack:
|
|
356
|
+
peeked = self._stack[-1]
|
|
357
|
+
if peeked.name == "PUSH_NULL":
|
|
358
|
+
self._stack.pop()
|
|
359
|
+
|
|
360
|
+
self._handle_call_from_instr(func_name_instr, instr)
|
|
361
|
+
|
|
362
|
+
def on_CALL_INTRINSIC_1(self, instr):
|
|
363
|
+
try:
|
|
364
|
+
func_name_instr = self._stack.pop()
|
|
365
|
+
except IndexError:
|
|
366
|
+
return
|
|
367
|
+
|
|
368
|
+
if self._stack:
|
|
369
|
+
peeked = self._stack[-1]
|
|
370
|
+
if peeked.name == "PUSH_NULL":
|
|
371
|
+
self._stack.pop()
|
|
372
|
+
|
|
373
|
+
self._handle_call_from_instr(func_name_instr, instr)
|
|
374
|
+
|
|
324
375
|
def on_PUSH_NULL(self, instr):
|
|
325
376
|
self._stack.append(instr)
|
|
326
377
|
|
|
378
|
+
def on_KW_NAMES(self, instr):
|
|
379
|
+
return
|
|
380
|
+
|
|
381
|
+
def on_RETURN_CONST(self, instr):
|
|
382
|
+
return
|
|
383
|
+
|
|
327
384
|
def on_CALL_FUNCTION(self, instr):
|
|
328
385
|
arg = instr.arg
|
|
329
386
|
|
|
330
|
-
argc = arg &
|
|
331
|
-
argc += (
|
|
387
|
+
argc = arg & 0xFF # positional args
|
|
388
|
+
argc += (arg >> 8) * 2 # keyword args
|
|
332
389
|
|
|
333
390
|
# pop the actual args
|
|
334
391
|
for _ in range(argc):
|
|
@@ -350,8 +407,8 @@ class _StackInterpreter(object):
|
|
|
350
407
|
# pop the actual args
|
|
351
408
|
arg = instr.arg
|
|
352
409
|
|
|
353
|
-
argc = arg &
|
|
354
|
-
argc += (
|
|
410
|
+
argc = arg & 0xFF # positional args
|
|
411
|
+
argc += (arg >> 8) * 2 # keyword args
|
|
355
412
|
|
|
356
413
|
for _ in range(argc):
|
|
357
414
|
self._stack.pop()
|
|
@@ -366,8 +423,8 @@ class _StackInterpreter(object):
|
|
|
366
423
|
# pop the actual args
|
|
367
424
|
arg = instr.arg
|
|
368
425
|
|
|
369
|
-
argc = arg &
|
|
370
|
-
argc += (
|
|
426
|
+
argc = arg & 0xFF # positional args
|
|
427
|
+
argc += (arg >> 8) * 2 # keyword args
|
|
371
428
|
|
|
372
429
|
for _ in range(argc):
|
|
373
430
|
self._stack.pop()
|
|
@@ -381,8 +438,8 @@ class _StackInterpreter(object):
|
|
|
381
438
|
|
|
382
439
|
arg = instr.arg
|
|
383
440
|
|
|
384
|
-
argc = arg &
|
|
385
|
-
argc += (
|
|
441
|
+
argc = arg & 0xFF # positional args
|
|
442
|
+
argc += (arg >> 8) * 2 # keyword args
|
|
386
443
|
|
|
387
444
|
# also pop **kwargs
|
|
388
445
|
self._stack.pop()
|
|
@@ -401,9 +458,9 @@ class _StackInterpreter(object):
|
|
|
401
458
|
func_name_instr = self._stack.pop()
|
|
402
459
|
self._handle_call_from_instr(func_name_instr, instr)
|
|
403
460
|
|
|
404
|
-
on_YIELD_VALUE = _no_stack_change
|
|
405
461
|
on_GET_AITER = _no_stack_change
|
|
406
462
|
on_GET_ANEXT = _no_stack_change
|
|
463
|
+
on_END_FOR = _no_stack_change
|
|
407
464
|
on_END_ASYNC_FOR = _no_stack_change
|
|
408
465
|
on_BEFORE_ASYNC_WITH = _no_stack_change
|
|
409
466
|
on_SETUP_ASYNC_WITH = _no_stack_change
|
|
@@ -435,6 +492,13 @@ class _StackInterpreter(object):
|
|
|
435
492
|
except IndexError:
|
|
436
493
|
return
|
|
437
494
|
|
|
495
|
+
def on_SWAP(self, instr):
|
|
496
|
+
i = instr.arg
|
|
497
|
+
try:
|
|
498
|
+
self._stack[-i], self._stack[-1] = self._stack[-1], self._stack[-i]
|
|
499
|
+
except:
|
|
500
|
+
pass
|
|
501
|
+
|
|
438
502
|
def on_ROT_TWO(self, instr):
|
|
439
503
|
try:
|
|
440
504
|
p0 = self._stack.pop()
|
|
@@ -520,6 +584,7 @@ class _StackInterpreter(object):
|
|
|
520
584
|
self.on_POP_TOP(instr) # value
|
|
521
585
|
self._stack.append(instr)
|
|
522
586
|
|
|
587
|
+
on_YIELD_VALUE = on_POP_TOP
|
|
523
588
|
on_RETURN_VALUE = on_POP_TOP
|
|
524
589
|
on_POP_JUMP_IF_FALSE = on_POP_TOP
|
|
525
590
|
on_POP_JUMP_IF_TRUE = on_POP_TOP
|
|
@@ -575,6 +640,8 @@ class _StackInterpreter(object):
|
|
|
575
640
|
|
|
576
641
|
on_POP_BLOCK = _no_stack_change
|
|
577
642
|
on_JUMP_FORWARD = _no_stack_change
|
|
643
|
+
on_JUMP_BACKWARD = _no_stack_change
|
|
644
|
+
on_JUMP_BACKWARD_NO_INTERRUPT = _no_stack_change
|
|
578
645
|
on_POP_EXCEPT = _no_stack_change
|
|
579
646
|
on_SETUP_EXCEPT = _no_stack_change
|
|
580
647
|
on_WITH_EXCEPT_START = _no_stack_change
|
|
@@ -662,6 +729,7 @@ class _StackInterpreter(object):
|
|
|
662
729
|
# some evaluation.
|
|
663
730
|
on_PRINT_EXPR = on_POP_TOP
|
|
664
731
|
|
|
732
|
+
on_LABEL = _no_stack_change
|
|
665
733
|
on_UNARY_POSITIVE = _no_stack_change
|
|
666
734
|
on_UNARY_NEGATIVE = _no_stack_change
|
|
667
735
|
on_UNARY_NOT = _no_stack_change
|
|
@@ -672,9 +740,9 @@ class _StackInterpreter(object):
|
|
|
672
740
|
|
|
673
741
|
|
|
674
742
|
def _get_smart_step_into_targets(code):
|
|
675
|
-
|
|
743
|
+
"""
|
|
676
744
|
:return list(Target)
|
|
677
|
-
|
|
745
|
+
"""
|
|
678
746
|
b = bytecode.Bytecode.from_code(code)
|
|
679
747
|
cfg = bytecode_cfg.ControlFlowGraph.from_bytecode(b)
|
|
680
748
|
|
|
@@ -682,33 +750,39 @@ def _get_smart_step_into_targets(code):
|
|
|
682
750
|
|
|
683
751
|
for block in cfg:
|
|
684
752
|
if DEBUG:
|
|
685
|
-
print(
|
|
753
|
+
print("\nStart block----")
|
|
686
754
|
stack = _StackInterpreter(block)
|
|
687
755
|
for instr in block:
|
|
756
|
+
if isinstance(instr, (Label,)):
|
|
757
|
+
# No name for these
|
|
758
|
+
continue
|
|
688
759
|
try:
|
|
689
|
-
func_name =
|
|
760
|
+
func_name = "on_%s" % (instr.name,)
|
|
690
761
|
func = getattr(stack, func_name, None)
|
|
691
762
|
|
|
692
|
-
if DEBUG:
|
|
693
|
-
if instr.name != 'CACHE': # Filter the ones we don't want to see.
|
|
694
|
-
print('\nWill handle: ', instr, '>>', stack._getname(instr), '<<')
|
|
695
|
-
print('Current stack:')
|
|
696
|
-
for entry in stack._stack:
|
|
697
|
-
print(' arg:', stack._getname(entry), '(', entry, ')')
|
|
698
|
-
|
|
699
763
|
if func is None:
|
|
700
764
|
if STRICT_MODE:
|
|
701
|
-
raise AssertionError(
|
|
765
|
+
raise AssertionError("%s not found." % (func_name,))
|
|
702
766
|
else:
|
|
767
|
+
if DEBUG:
|
|
768
|
+
print("Skipping: %s." % (func_name,))
|
|
769
|
+
|
|
703
770
|
continue
|
|
704
771
|
func(instr)
|
|
772
|
+
|
|
773
|
+
if DEBUG:
|
|
774
|
+
if instr.name != "CACHE": # Filter the ones we don't want to see.
|
|
775
|
+
print("\nHandled: ", instr, ">>", stack._getname(instr), "<<")
|
|
776
|
+
print("New stack:")
|
|
777
|
+
for entry in stack._stack:
|
|
778
|
+
print(" arg:", stack._getname(entry), "(", entry, ")")
|
|
705
779
|
except:
|
|
706
780
|
if STRICT_MODE:
|
|
707
781
|
raise # Error in strict mode.
|
|
708
782
|
else:
|
|
709
783
|
# In non-strict mode, log it (if in verbose mode) and keep on going.
|
|
710
784
|
if DebugInfoHolder.DEBUG_TRACE_LEVEL >= 2:
|
|
711
|
-
pydev_log.exception(
|
|
785
|
+
pydev_log.exception("Exception computing step into targets (handled).")
|
|
712
786
|
|
|
713
787
|
ret.extend(stack.function_calls)
|
|
714
788
|
# No longer considering attr loads as calls (while in theory sometimes it's possible
|
|
@@ -717,6 +791,8 @@ def _get_smart_step_into_targets(code):
|
|
|
717
791
|
# step into from stepping into properties).
|
|
718
792
|
# ret.extend(stack.load_attrs.values())
|
|
719
793
|
|
|
794
|
+
if DEBUG:
|
|
795
|
+
print("\nEnd block----")
|
|
720
796
|
return ret
|
|
721
797
|
|
|
722
798
|
|
|
@@ -725,12 +801,15 @@ def _get_smart_step_into_targets(code):
|
|
|
725
801
|
# to inspect the parent frame for frame.f_lasti to know where we actually are (as the
|
|
726
802
|
# caller name may not always match the new frame name).
|
|
727
803
|
class Variant(object):
|
|
728
|
-
__slots__ = [
|
|
804
|
+
__slots__ = ["name", "is_visited", "line", "offset", "call_order", "children_variants", "parent", "endlineno", "startcol", "endcol"]
|
|
729
805
|
|
|
730
|
-
def __init__(self, name, is_visited, line, offset, call_order, children_variants=None):
|
|
806
|
+
def __init__(self, name, is_visited, line, offset, call_order, children_variants=None, endlineno=-1, startcol=-1, endcol=-1):
|
|
731
807
|
self.name = name
|
|
732
808
|
self.is_visited = is_visited
|
|
733
809
|
self.line = line
|
|
810
|
+
self.endlineno = endlineno
|
|
811
|
+
self.startcol = startcol
|
|
812
|
+
self.endcol = endcol
|
|
734
813
|
self.offset = offset
|
|
735
814
|
self.call_order = call_order
|
|
736
815
|
self.children_variants = children_variants
|
|
@@ -742,32 +821,32 @@ class Variant(object):
|
|
|
742
821
|
def __repr__(self):
|
|
743
822
|
ret = []
|
|
744
823
|
for s in self.__slots__:
|
|
745
|
-
if s ==
|
|
824
|
+
if s == "parent":
|
|
746
825
|
try:
|
|
747
826
|
parent = self.parent
|
|
748
827
|
except AttributeError:
|
|
749
|
-
ret.append(
|
|
828
|
+
ret.append("%s: <not set>" % (s,))
|
|
750
829
|
else:
|
|
751
830
|
if parent is None:
|
|
752
|
-
ret.append(
|
|
831
|
+
ret.append("parent: None")
|
|
753
832
|
else:
|
|
754
|
-
ret.append(
|
|
833
|
+
ret.append("parent: %s (%s)" % (parent.name, parent.offset))
|
|
755
834
|
continue
|
|
756
835
|
|
|
757
|
-
if s ==
|
|
758
|
-
ret.append(
|
|
836
|
+
if s == "children_variants":
|
|
837
|
+
ret.append("children_variants: %s" % (len(self.children_variants) if self.children_variants else 0))
|
|
759
838
|
continue
|
|
760
839
|
|
|
761
840
|
try:
|
|
762
|
-
ret.append(
|
|
841
|
+
ret.append("%s= %s" % (s, getattr(self, s)))
|
|
763
842
|
except AttributeError:
|
|
764
|
-
ret.append(
|
|
765
|
-
return
|
|
843
|
+
ret.append("%s: <not set>" % (s,))
|
|
844
|
+
return "Variant(%s)" % ", ".join(ret)
|
|
766
845
|
|
|
767
846
|
__str__ = __repr__
|
|
768
847
|
|
|
769
848
|
|
|
770
|
-
def _convert_target_to_variant(target, start_line, end_line, call_order_cache, lasti, base):
|
|
849
|
+
def _convert_target_to_variant(target, start_line, end_line, call_order_cache: dict, lasti: int, base: int):
|
|
771
850
|
name = target.arg
|
|
772
851
|
if not isinstance(name, str):
|
|
773
852
|
return
|
|
@@ -784,10 +863,21 @@ def _convert_target_to_variant(target, start_line, end_line, call_order_cache, l
|
|
|
784
863
|
children_variants = None
|
|
785
864
|
if children_targets:
|
|
786
865
|
children_variants = [
|
|
787
|
-
_convert_target_to_variant(child, start_line, end_line, call_order_cache, lasti, base)
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
return Variant(
|
|
866
|
+
_convert_target_to_variant(child, start_line, end_line, call_order_cache, lasti, base) for child in target.children_targets
|
|
867
|
+
]
|
|
868
|
+
|
|
869
|
+
return Variant(
|
|
870
|
+
name,
|
|
871
|
+
is_visited,
|
|
872
|
+
target.lineno - base,
|
|
873
|
+
target.offset,
|
|
874
|
+
call_order,
|
|
875
|
+
children_variants,
|
|
876
|
+
# Only really matter in Python 3.11
|
|
877
|
+
target.endlineno - base if target.endlineno >= 0 else -1,
|
|
878
|
+
target.startcol,
|
|
879
|
+
target.endcol,
|
|
880
|
+
)
|
|
791
881
|
|
|
792
882
|
|
|
793
883
|
def calculate_smart_step_into_variants(frame, start_line, end_line, base=0):
|
|
@@ -801,13 +891,18 @@ def calculate_smart_step_into_variants(frame, start_line, end_line, base=0):
|
|
|
801
891
|
:note: it's guaranteed that the offsets appear in order.
|
|
802
892
|
:raise: :py:class:`RuntimeError` if failed to parse the bytecode or if dis cannot be used.
|
|
803
893
|
"""
|
|
894
|
+
if IS_PY311_OR_GREATER:
|
|
895
|
+
from . import pydevd_bytecode_utils_py311
|
|
896
|
+
|
|
897
|
+
return pydevd_bytecode_utils_py311.calculate_smart_step_into_variants(frame, start_line, end_line, base)
|
|
898
|
+
|
|
804
899
|
variants = []
|
|
805
900
|
code = frame.f_code
|
|
806
901
|
lasti = frame.f_lasti
|
|
807
902
|
|
|
808
903
|
call_order_cache = {}
|
|
809
904
|
if DEBUG:
|
|
810
|
-
print(
|
|
905
|
+
print("dis.dis:")
|
|
811
906
|
if IS_PY311_OR_GREATER:
|
|
812
907
|
dis.dis(code, show_caches=False)
|
|
813
908
|
else:
|
|
@@ -834,7 +929,7 @@ def get_smart_step_into_variant_from_frame_offset(frame_f_lasti, variants):
|
|
|
834
929
|
if not variants:
|
|
835
930
|
return None
|
|
836
931
|
|
|
837
|
-
i = bisect(KeyifyList(variants, lambda entry:entry.offset), frame_f_lasti)
|
|
932
|
+
i = bisect(KeyifyList(variants, lambda entry: entry.offset), frame_f_lasti)
|
|
838
933
|
|
|
839
934
|
if i == 0:
|
|
840
935
|
return None
|