debugpy 1.8.5__zip → 1.8.6__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.6}/PKG-INFO +1 -1
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_calltip_util.py +19 -21
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_completer.py +30 -30
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_execfile.py +3 -1
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_filesystem_encoding.py +43 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_getopt.py +35 -32
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_imports_tipper.py +83 -84
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_jy_imports_tipper.py +92 -99
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_log.py +2 -3
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_saved_modules.py +51 -27
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_sys_patch.py +11 -7
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_tipper_common.py +6 -5
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/fsnotify/__init__.py +34 -38
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_console_utils.py +71 -69
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_import_hook.py +1 -3
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_imports.py +0 -1
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_ipython_console.py +14 -16
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_ipython_console_011.py +81 -93
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_is_thread_alive.py +3 -3
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_localhost.py +9 -8
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_log.py +33 -25
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_monkey.py +183 -170
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_monkey_qt.py +33 -29
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_override.py +6 -4
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_umd.py +19 -18
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_versioncheck.py +3 -3
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles.py +165 -138
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_coverage.py +77 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_nose.py +35 -36
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_parallel.py +22 -23
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_parallel_client.py +37 -57
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_pytest2.py +54 -52
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_unittest.py +28 -37
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_xml_rpc.py +56 -53
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/__main__pydevd_gen_debug_adapter_protocol.py +604 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/debugProtocol.json +551 -445
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_base_schema.py +25 -29
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_schema.py +17458 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_schema_log.py +11 -12
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevconsole_code.py +18 -19
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_additional_thread_info.py +41 -0
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_additional_thread_info_regular.py +327 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_api.py +263 -214
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_breakpoints.py +7 -10
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_bytecode_utils.py +187 -92
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_bytecode_utils_py311.py +105 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_code_to_source.py +46 -51
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_collect_bytecode_info.py +239 -176
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_comm.py +370 -297
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_comm_constants.py +78 -86
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_command_line_handling.py +55 -59
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_concurrency_analyser/pydevd_concurrency_logger.py +194 -58
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_concurrency_analyser/pydevd_thread_wrappers.py +2 -3
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_console.py +18 -23
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_constants.py +157 -127
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_custom_frames.py +10 -12
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython.c +35217 -23106
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython.pxd +15 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython.pyx +802 -511
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython_wrapper.py +18 -7
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_daemon_thread.py +32 -24
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_defaults.py +11 -13
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_dont_trace.py +16 -16
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_dont_trace_files.py +27 -2
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_exec2.py +1 -1
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_extension_api.py +4 -5
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_extension_utils.py +8 -10
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_filtering.py +50 -45
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_frame.py +462 -407
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_frame_utils.py +63 -61
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_gevent_integration.py +14 -16
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_import_class.py +27 -25
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_io.py +40 -42
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_json_debug_options.py +200 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_net_command.py +20 -19
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_net_command_factory_json.py +199 -108
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_net_command_factory_xml.py +121 -73
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_plugin_utils.py +208 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_process_net_command.py +206 -159
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_process_net_command_json.py +346 -334
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_referrers.py +75 -80
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_reload.py +35 -35
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_resolver.py +116 -124
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_runpy.py +44 -58
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_safe_repr.py +51 -55
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_save_locals.py +4 -2
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_signature.py +24 -24
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_source_mapping.py +19 -20
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_stackless.py +45 -49
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_suspended_frames.py +61 -58
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_thread_lifecycle.py +23 -13
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_timeout.py +29 -31
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_trace_dispatch.py +41 -11
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_trace_dispatch_regular.py +117 -55
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_traceproperty.py +11 -14
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_utils.py +90 -89
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_vars.py +106 -97
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_vm_type.py +40 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_xml.py +56 -46
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_eval_cython_wrapper.py +5 -5
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_eval_main.py +71 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.c +11165 -5326
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_tracing.py +5 -6
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_modify_bytecode.py +53 -56
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/__init__.py +1 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/bytecode.py +4 -6
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/cfg.py +6 -26
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/concrete.py +7 -21
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/flags.py +5 -24
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/instr.py +10 -34
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/peephole_opt.py +1 -4
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/__init__.py +2 -6
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_bytecode.py +3 -5
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_cfg.py +11 -31
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_code.py +2 -2
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_concrete.py +14 -41
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_flags.py +2 -4
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_instr.py +7 -18
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_misc.py +6 -18
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_peephole_opt.py +7 -18
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/util_annotation.py +1 -3
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/pydevd_fix_code.py +14 -19
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring.py +1927 -0
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring_cython.c +43058 -0
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring_cython.pxd +46 -0
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring_cython.pyx +1934 -0
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/pydevd_sys_monitoring.py +16 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_app_engine_debug_startup.py +12 -11
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_coverage.py +30 -32
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhook.py +58 -54
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookglut.py +20 -24
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookgtk.py +8 -7
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookgtk3.py +8 -6
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookpyglet.py +11 -8
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookqt4.py +21 -18
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookqt5.py +17 -15
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookqt6.py +17 -15
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhooktk.py +6 -4
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookwx.py +14 -10
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/matplotlibtools.py +30 -26
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydev_ipython/qt.py +24 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/qt_for_kernel.py +37 -34
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/qt_loaders.py +86 -73
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/version.py +7 -7
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydev_pysrc.py +1 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_run_in_console.py +23 -24
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydev_sitecustomize/sitecustomize.py +267 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevconsole.py +55 -47
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd.py +732 -508
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_always_live_program.py +40 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_check.py +1 -0
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_test_attach_to_process.py +11 -0
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_test_attach_to_process_linux.py +75 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/add_code_to_python_process.py +130 -125
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_amd64.dll +0 -0
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_amd64.pdb +0 -0
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_pydevd.py +89 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_script.py +41 -32
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_x86.dll +0 -0
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_x86.pdb +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_utils.hpp +1 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_version.hpp +9 -1
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_amd64.exe +0 -0
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_amd64.pdb +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_x86.exe +0 -0
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_x86.pdb +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/lldb_prepare.py +10 -9
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_amd64.dll +0 -0
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_amd64.pdb +0 -0
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_x86.dll +0 -0
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_x86.pdb +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/__init__.py +103 -119
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/breakpoint.py +457 -516
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/compat.py +33 -15
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/crash.py +336 -281
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/debug.py +101 -131
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/disasm.py +148 -153
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/event.py +310 -302
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/interactive.py +235 -208
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/module.py +185 -218
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/process.py +428 -564
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/registry.py +54 -53
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/search.py +69 -73
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/sql.py +158 -170
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/system.py +143 -213
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/textio.py +302 -333
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/thread.py +220 -239
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/util.py +198 -177
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/__init__.py +11 -11
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/advapi32.py +1191 -713
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/context_amd64.py +248 -194
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/context_i386.py +132 -120
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/dbghelp.py +450 -346
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/defines.py +305 -286
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/gdi32.py +526 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/kernel32.py +1479 -1097
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/ntdll.py +579 -0
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/peb_teb.py +3517 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/psapi.py +54 -31
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/shell32.py +170 -149
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/shlwapi.py +190 -108
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/user32.py +542 -437
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/version.py +489 -442
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/wtsapi32.py +83 -65
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/window.py +70 -76
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/attach.cpp +17 -9
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/compile_windows.bat +1 -1
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_file_utils.py +141 -120
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_plugins/__init__.py +1 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_plugins/django_debug.py +175 -149
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/__init__.py +1 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/__init__.py +1 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_helpers.py +5 -5
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_plugin_numpy_types.py +28 -28
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_plugin_pandas_types.py +22 -30
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_plugins_django_form_str.py +3 -2
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_plugins/jinja2_debug.py +130 -108
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_plugins/pydevd_line_validation.py +27 -14
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_tracing.py +85 -66
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/setup_pydevd_cython.py +96 -59
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_version.py +3 -3
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/common/messaging.py +2 -1
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/server/cli.py +32 -17
- {debugpy-1.8.5 → debugpy-1.8.6/src/debugpy.egg-info}/PKG-INFO +1 -1
- {debugpy-1.8.5 → debugpy-1.8.6}/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_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.6}/DESCRIPTION.md +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/LICENSE +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/MANIFEST.in +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/README.md +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/pyproject.toml +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/setup.cfg +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/setup.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/ThirdPartyNotices.txt +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/__main__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/_pydevd_packaging.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/_util.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/force_pydevd.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_runfiles/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/debugProtocolCustom.json +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_concurrency_analyser/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/.gitignore +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.pxd +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.pyx +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.template.pyx +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/release_mem.h +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/README.txt +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/README +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_sitecustomize/__not_in_default_pythonpath.txt +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/README.txt +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_custom_pyeval_settrace.hpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_custom_pyeval_settrace_310.hpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_custom_pyeval_settrace_311.hpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_custom_pyeval_settrace_common.hpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_settrace.hpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/python.h +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/ref_utils.hpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/.gitignore +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/attach.cpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/compile_linux.sh +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/compile_mac.sh +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/compile_manylinux.cmd +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/attach.h +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/inject_dll.cpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/py_win_helpers.hpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/run_code_in_memory.hpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/run_code_on_dllmain.cpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/stdafx.cpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/stdafx.h +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/targetver.h +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/README.md +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/adapter/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/adapter/__main__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/adapter/clients.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/adapter/components.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/adapter/launchers.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/adapter/servers.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/adapter/sessions.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/common/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/common/json.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/common/log.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/common/singleton.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/common/sockets.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/common/stacks.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/common/timestamp.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/common/util.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/launcher/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/launcher/__main__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/launcher/debuggee.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/launcher/handlers.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/launcher/output.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/launcher/winapi.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/public_api.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/server/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/server/api.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/server/attach_pid_injected.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy.egg-info/dependency_links.txt +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy.egg-info/entry_points.txt +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy.egg-info/top_level.txt +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/versioneer.py +0 -0
|
@@ -129,9 +129,7 @@ def get_code(source, *, filename="<string>", function=False):
|
|
|
129
129
|
source = textwrap.dedent(source).strip()
|
|
130
130
|
code = compile(source, filename, "exec")
|
|
131
131
|
if function:
|
|
132
|
-
sub_code = [
|
|
133
|
-
const for const in code.co_consts if isinstance(const, types.CodeType)
|
|
134
|
-
]
|
|
132
|
+
sub_code = [const for const in code.co_consts if isinstance(const, types.CodeType)]
|
|
135
133
|
if len(sub_code) != 1:
|
|
136
134
|
raise ValueError("unable to find function code")
|
|
137
135
|
code = sub_code[0]
|
|
@@ -149,6 +147,4 @@ class TestCase(unittest.TestCase):
|
|
|
149
147
|
|
|
150
148
|
for block1, block2 in zip(code, expected_blocks):
|
|
151
149
|
block_index = code.get_block_index(block1)
|
|
152
|
-
self.assertListEqual(
|
|
153
|
-
list(block1), block2, "Block #%s is different" % block_index
|
|
154
|
-
)
|
|
150
|
+
self.assertListEqual(list(block1), block2, "Block #%s is different" % block_index)
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
|
|
2
1
|
import pytest
|
|
3
2
|
from tests_python.debugger_unittest import IS_PY36_OR_GREATER, IS_CPYTHON
|
|
4
3
|
from tests_python.debug_constants import TEST_CYTHON
|
|
5
|
-
|
|
4
|
+
|
|
5
|
+
pytestmark = pytest.mark.skipif(not IS_PY36_OR_GREATER or not IS_CPYTHON or not TEST_CYTHON, reason="Requires CPython >= 3.6")
|
|
6
6
|
#!/usr/bin/env python3
|
|
7
7
|
import sys
|
|
8
8
|
import textwrap
|
|
@@ -90,9 +90,7 @@ class BytecodeTests(TestCase):
|
|
|
90
90
|
"freevars",
|
|
91
91
|
"argnames",
|
|
92
92
|
):
|
|
93
|
-
self.assertEqual(
|
|
94
|
-
getattr(code, name, None), getattr(sliced_code, name, None)
|
|
95
|
-
)
|
|
93
|
+
self.assertEqual(getattr(code, name, None), getattr(sliced_code, name, None))
|
|
96
94
|
|
|
97
95
|
def test_copy(self):
|
|
98
96
|
code = Bytecode()
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
|
|
2
1
|
import pytest
|
|
3
2
|
from tests_python.debugger_unittest import IS_PY36_OR_GREATER, IS_CPYTHON
|
|
4
3
|
from tests_python.debug_constants import TEST_CYTHON
|
|
5
|
-
|
|
4
|
+
|
|
5
|
+
pytestmark = pytest.mark.skipif(not IS_PY36_OR_GREATER or not IS_CPYTHON or not TEST_CYTHON, reason="Requires CPython >= 3.6")
|
|
6
6
|
#!/usr/bin/env python3
|
|
7
7
|
import io
|
|
8
8
|
import sys
|
|
@@ -21,24 +21,16 @@ from _pydevd_frame_eval.vendored.bytecode.concrete import OFFSET_AS_INSTRUCTION
|
|
|
21
21
|
from _pydevd_frame_eval.vendored.bytecode.tests import disassemble as _disassemble, TestCase
|
|
22
22
|
|
|
23
23
|
|
|
24
|
-
def disassemble(
|
|
25
|
-
source, *, filename="<string>", function=False, remove_last_return_none=False
|
|
26
|
-
):
|
|
24
|
+
def disassemble(source, *, filename="<string>", function=False, remove_last_return_none=False):
|
|
27
25
|
code = _disassemble(source, filename=filename, function=function)
|
|
28
26
|
blocks = ControlFlowGraph.from_bytecode(code)
|
|
29
27
|
if remove_last_return_none:
|
|
30
28
|
# drop LOAD_CONST+RETURN_VALUE to only keep 2 instructions,
|
|
31
29
|
# to make unit tests shorter
|
|
32
30
|
block = blocks[-1]
|
|
33
|
-
test =
|
|
34
|
-
block[-2].name == "LOAD_CONST"
|
|
35
|
-
and block[-2].arg is None
|
|
36
|
-
and block[-1].name == "RETURN_VALUE"
|
|
37
|
-
)
|
|
31
|
+
test = block[-2].name == "LOAD_CONST" and block[-2].arg is None and block[-1].name == "RETURN_VALUE"
|
|
38
32
|
if not test:
|
|
39
|
-
raise ValueError(
|
|
40
|
-
"unable to find implicit RETURN_VALUE <None>: %s" % block[-2:]
|
|
41
|
-
)
|
|
33
|
+
raise ValueError("unable to find implicit RETURN_VALUE <None>: %s" % block[-2:])
|
|
42
34
|
del block[-2:]
|
|
43
35
|
return blocks
|
|
44
36
|
|
|
@@ -458,9 +450,7 @@ class BytecodeBlocksFunctionalTests(TestCase):
|
|
|
458
450
|
|
|
459
451
|
def sample_code(self):
|
|
460
452
|
code = disassemble("x = 1", remove_last_return_none=True)
|
|
461
|
-
self.assertBlocksEqual(
|
|
462
|
-
code, [Instr("LOAD_CONST", 1, lineno=1), Instr("STORE_NAME", "x", lineno=1)]
|
|
463
|
-
)
|
|
453
|
+
self.assertBlocksEqual(code, [Instr("LOAD_CONST", 1, lineno=1), Instr("STORE_NAME", "x", lineno=1)])
|
|
464
454
|
return code
|
|
465
455
|
|
|
466
456
|
def test_split_block(self):
|
|
@@ -522,9 +512,7 @@ class BytecodeBlocksFunctionalTests(TestCase):
|
|
|
522
512
|
# FIXME: is it really useful to support that?
|
|
523
513
|
block = code.split_block(code[0], 0)
|
|
524
514
|
self.assertIs(block, code[0])
|
|
525
|
-
self.assertBlocksEqual(
|
|
526
|
-
code, [Instr("LOAD_CONST", 1, lineno=1), Instr("STORE_NAME", "x", lineno=1)]
|
|
527
|
-
)
|
|
515
|
+
self.assertBlocksEqual(code, [Instr("LOAD_CONST", 1, lineno=1), Instr("STORE_NAME", "x", lineno=1)])
|
|
528
516
|
|
|
529
517
|
def test_split_block_error(self):
|
|
530
518
|
code = self.sample_code()
|
|
@@ -555,9 +543,7 @@ class BytecodeBlocksFunctionalTests(TestCase):
|
|
|
555
543
|
Instr("POP_JUMP_IF_FALSE", block2, lineno=4),
|
|
556
544
|
]
|
|
557
545
|
)
|
|
558
|
-
block1.extend(
|
|
559
|
-
[Instr("LOAD_FAST", "arg", lineno=5), Instr("STORE_FAST", "x", lineno=5)]
|
|
560
|
-
)
|
|
546
|
+
block1.extend([Instr("LOAD_FAST", "arg", lineno=5), Instr("STORE_FAST", "x", lineno=5)])
|
|
561
547
|
block2.extend(
|
|
562
548
|
[
|
|
563
549
|
Instr("LOAD_CONST", 3, lineno=6),
|
|
@@ -569,13 +555,9 @@ class BytecodeBlocksFunctionalTests(TestCase):
|
|
|
569
555
|
|
|
570
556
|
if OFFSET_AS_INSTRUCTION:
|
|
571
557
|
# The argument of the jump is divided by 2
|
|
572
|
-
expected =
|
|
573
|
-
b"|\x05" b"r\x04" b"|\x00" b"}\x05" b"d\x01" b"}\x05" b"|\x05" b"S\x00"
|
|
574
|
-
)
|
|
558
|
+
expected = b"|\x05" b"r\x04" b"|\x00" b"}\x05" b"d\x01" b"}\x05" b"|\x05" b"S\x00"
|
|
575
559
|
else:
|
|
576
|
-
expected =
|
|
577
|
-
b"|\x05" b"r\x08" b"|\x00" b"}\x05" b"d\x01" b"}\x05" b"|\x05" b"S\x00"
|
|
578
|
-
)
|
|
560
|
+
expected = b"|\x05" b"r\x08" b"|\x00" b"}\x05" b"d\x01" b"}\x05" b"|\x05" b"S\x00"
|
|
579
561
|
|
|
580
562
|
code = bytecode.to_code()
|
|
581
563
|
self.assertEqual(code.co_consts, (None, 3))
|
|
@@ -589,9 +571,7 @@ class BytecodeBlocksFunctionalTests(TestCase):
|
|
|
589
571
|
self.assertEqual(code.co_flags, 0x43)
|
|
590
572
|
self.assertEqual(code.co_code, expected)
|
|
591
573
|
self.assertEqual(code.co_names, ())
|
|
592
|
-
self.assertEqual(
|
|
593
|
-
code.co_varnames, ("arg", "arg2", "arg3", "kwonly", "kwonly2", "x")
|
|
594
|
-
)
|
|
574
|
+
self.assertEqual(code.co_varnames, ("arg", "arg2", "arg3", "kwonly", "kwonly2", "x"))
|
|
595
575
|
self.assertEqual(code.co_filename, "hello.py")
|
|
596
576
|
self.assertEqual(code.co_name, "func")
|
|
597
577
|
self.assertEqual(code.co_firstlineno, 3)
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
|
|
2
1
|
import pytest
|
|
3
2
|
from tests_python.debugger_unittest import IS_PY36_OR_GREATER, IS_CPYTHON
|
|
4
3
|
from tests_python.debug_constants import TEST_CYTHON
|
|
5
|
-
|
|
4
|
+
|
|
5
|
+
pytestmark = pytest.mark.skipif(not IS_PY36_OR_GREATER or not IS_CPYTHON or not TEST_CYTHON, reason="Requires CPython >= 3.6")
|
|
6
6
|
import unittest
|
|
7
7
|
|
|
8
8
|
from _pydevd_frame_eval.vendored.bytecode import ConcreteBytecode, Bytecode, ControlFlowGraph
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
|
|
2
1
|
import pytest
|
|
3
2
|
from tests_python.debugger_unittest import IS_PY36_OR_GREATER, IS_CPYTHON
|
|
4
3
|
from tests_python.debug_constants import TEST_CYTHON
|
|
5
|
-
|
|
4
|
+
|
|
5
|
+
pytestmark = pytest.mark.skipif(not IS_PY36_OR_GREATER or not IS_CPYTHON or not TEST_CYTHON, reason="Requires CPython >= 3.6")
|
|
6
6
|
#!/usr/bin/env python3
|
|
7
7
|
import opcode
|
|
8
8
|
import sys
|
|
@@ -167,9 +167,7 @@ class ConcreteInstrTests(TestCase):
|
|
|
167
167
|
self.assertEqual(jump_abs.get_jump_target(100), 3)
|
|
168
168
|
|
|
169
169
|
jump_forward = ConcreteInstr("JUMP_FORWARD", 5)
|
|
170
|
-
self.assertEqual(
|
|
171
|
-
jump_forward.get_jump_target(10), 16 if OFFSET_AS_INSTRUCTION else 17
|
|
172
|
-
)
|
|
170
|
+
self.assertEqual(jump_forward.get_jump_target(10), 16 if OFFSET_AS_INSTRUCTION else 17)
|
|
173
171
|
|
|
174
172
|
|
|
175
173
|
class ConcreteBytecodeTests(TestCase):
|
|
@@ -241,7 +239,6 @@ class ConcreteBytecodeTests(TestCase):
|
|
|
241
239
|
ConcreteBytecode([Label()])
|
|
242
240
|
|
|
243
241
|
def test_to_code_lnotab(self):
|
|
244
|
-
|
|
245
242
|
# We use an actual function for the simple case to
|
|
246
243
|
# ensure we get lnotab right
|
|
247
244
|
def f():
|
|
@@ -454,9 +451,7 @@ class ConcreteBytecodeTests(TestCase):
|
|
|
454
451
|
concrete = ConcreteBytecode()
|
|
455
452
|
concrete.cellvars = ["__class__"]
|
|
456
453
|
concrete.freevars = ["__class__"]
|
|
457
|
-
concrete.extend(
|
|
458
|
-
[ConcreteInstr("LOAD_CLASSDEREF", 1), ConcreteInstr("STORE_DEREF", 1)]
|
|
459
|
-
)
|
|
454
|
+
concrete.extend([ConcreteInstr("LOAD_CLASSDEREF", 1), ConcreteInstr("STORE_DEREF", 1)])
|
|
460
455
|
|
|
461
456
|
bytecode = concrete.to_bytecode()
|
|
462
457
|
self.assertEqual(bytecode.freevars, ["__class__"])
|
|
@@ -582,11 +577,7 @@ class ConcreteFromCodeTests(TestCase):
|
|
|
582
577
|
# Create a code object from arbitrary bytecode
|
|
583
578
|
co_code = b"\x90\x12\x904\x90\xabd\xcd"
|
|
584
579
|
code = get_code("x=1")
|
|
585
|
-
args = (
|
|
586
|
-
(code.co_argcount,)
|
|
587
|
-
if sys.version_info < (3, 8)
|
|
588
|
-
else (code.co_argcount, code.co_posonlyargcount)
|
|
589
|
-
)
|
|
580
|
+
args = (code.co_argcount,) if sys.version_info < (3, 8) else (code.co_argcount, code.co_posonlyargcount)
|
|
590
581
|
args += (
|
|
591
582
|
code.co_kwonlyargcount,
|
|
592
583
|
code.co_nlocals,
|
|
@@ -608,9 +599,7 @@ class ConcreteFromCodeTests(TestCase):
|
|
|
608
599
|
|
|
609
600
|
# without EXTENDED_ARG opcode
|
|
610
601
|
bytecode = ConcreteBytecode.from_code(code)
|
|
611
|
-
self.assertListEqual(
|
|
612
|
-
list(bytecode), [ConcreteInstr("LOAD_CONST", 0x1234ABCD, lineno=1)]
|
|
613
|
-
)
|
|
602
|
+
self.assertListEqual(list(bytecode), [ConcreteInstr("LOAD_CONST", 0x1234ABCD, lineno=1)])
|
|
614
603
|
|
|
615
604
|
# with EXTENDED_ARG opcode
|
|
616
605
|
bytecode = ConcreteBytecode.from_code(code, extended_arg=True)
|
|
@@ -655,10 +644,7 @@ class ConcreteFromCodeTests(TestCase):
|
|
|
655
644
|
ConcreteInstr("LOAD_NAME", 0, lineno=1),
|
|
656
645
|
ConcreteInstr("BUILD_TUPLE", 4, lineno=1),
|
|
657
646
|
]
|
|
658
|
-
elif (
|
|
659
|
-
sys.version_info >= (3, 7)
|
|
660
|
-
and concrete.flags & CompilerFlags.FUTURE_ANNOTATIONS
|
|
661
|
-
):
|
|
647
|
+
elif sys.version_info >= (3, 7) and concrete.flags & CompilerFlags.FUTURE_ANNOTATIONS:
|
|
662
648
|
func_code = concrete.consts[2]
|
|
663
649
|
names = ["foo"]
|
|
664
650
|
consts = ["int", ("x", "y"), func_code, "foo", None]
|
|
@@ -726,9 +712,7 @@ class ConcreteFromCodeTests(TestCase):
|
|
|
726
712
|
return q, r, s, t
|
|
727
713
|
|
|
728
714
|
cpython_stacksize = test.__code__.co_stacksize
|
|
729
|
-
test.__code__ = ConcreteBytecode.from_code(
|
|
730
|
-
test.__code__, extended_arg=True
|
|
731
|
-
).to_code()
|
|
715
|
+
test.__code__ = ConcreteBytecode.from_code(test.__code__, extended_arg=True).to_code()
|
|
732
716
|
self.assertEqual(test.__code__.co_stacksize, cpython_stacksize)
|
|
733
717
|
self.assertEqual(test(), (1, 2, [3, 4, 5], 6))
|
|
734
718
|
|
|
@@ -997,9 +981,7 @@ class ConcreteFromCodeTests(TestCase):
|
|
|
997
981
|
|
|
998
982
|
return var
|
|
999
983
|
|
|
1000
|
-
test.__code__ = ConcreteBytecode.from_code(
|
|
1001
|
-
test.__code__, extended_arg=True
|
|
1002
|
-
).to_code()
|
|
984
|
+
test.__code__ = ConcreteBytecode.from_code(test.__code__, extended_arg=True).to_code()
|
|
1003
985
|
self.assertEqual(test.__code__.co_stacksize, 1)
|
|
1004
986
|
self.assertEqual(test(), 259)
|
|
1005
987
|
|
|
@@ -1130,9 +1112,7 @@ class BytecodeToConcreteTests(TestCase):
|
|
|
1130
1112
|
concrete = bytecode.to_concrete_bytecode()
|
|
1131
1113
|
expected = [
|
|
1132
1114
|
ConcreteInstr("LOAD_NAME", 0, lineno=1),
|
|
1133
|
-
ConcreteInstr(
|
|
1134
|
-
"POP_JUMP_IF_FALSE", 7 if OFFSET_AS_INSTRUCTION else 14, lineno=1
|
|
1135
|
-
),
|
|
1115
|
+
ConcreteInstr("POP_JUMP_IF_FALSE", 7 if OFFSET_AS_INSTRUCTION else 14, lineno=1),
|
|
1136
1116
|
ConcreteInstr("LOAD_CONST", 0, lineno=2),
|
|
1137
1117
|
ConcreteInstr("STORE_NAME", 1, lineno=2),
|
|
1138
1118
|
ConcreteInstr("JUMP_FORWARD", 2 if OFFSET_AS_INSTRUCTION else 4, lineno=2),
|
|
@@ -1205,9 +1185,7 @@ class BytecodeToConcreteTests(TestCase):
|
|
|
1205
1185
|
self.assertEqual(func(18), -1)
|
|
1206
1186
|
|
|
1207
1187
|
# Ensure that we properly round trip in such cases
|
|
1208
|
-
self.assertEqual(
|
|
1209
|
-
ConcreteBytecode.from_code(code).to_code().co_code, code.co_code
|
|
1210
|
-
)
|
|
1188
|
+
self.assertEqual(ConcreteBytecode.from_code(code).to_code().co_code, code.co_code)
|
|
1211
1189
|
|
|
1212
1190
|
def test_setlineno(self):
|
|
1213
1191
|
# x = 7
|
|
@@ -1259,7 +1237,7 @@ class BytecodeToConcreteTests(TestCase):
|
|
|
1259
1237
|
|
|
1260
1238
|
# (invalid) code using jumps > 0xffff to test extended arg
|
|
1261
1239
|
label = Label()
|
|
1262
|
-
nb_nop = 2
|
|
1240
|
+
nb_nop = 2**16
|
|
1263
1241
|
code = Bytecode(
|
|
1264
1242
|
[
|
|
1265
1243
|
Instr("JUMP_ABSOLUTE", label),
|
|
@@ -1304,9 +1282,7 @@ class BytecodeToConcreteTests(TestCase):
|
|
|
1304
1282
|
code = code.to_concrete_bytecode()
|
|
1305
1283
|
expected = [
|
|
1306
1284
|
ConcreteInstr("LOAD_NAME", 0, lineno=1),
|
|
1307
|
-
ConcreteInstr(
|
|
1308
|
-
"POP_JUMP_IF_FALSE", 5 if OFFSET_AS_INSTRUCTION else 10, lineno=1
|
|
1309
|
-
),
|
|
1285
|
+
ConcreteInstr("POP_JUMP_IF_FALSE", 5 if OFFSET_AS_INSTRUCTION else 10, lineno=1),
|
|
1310
1286
|
ConcreteInstr("LOAD_CONST", 0, lineno=2),
|
|
1311
1287
|
ConcreteInstr("STORE_NAME", 1, lineno=2),
|
|
1312
1288
|
ConcreteInstr("JUMP_FORWARD", 2 if OFFSET_AS_INSTRUCTION else 4, lineno=2),
|
|
@@ -1448,10 +1424,7 @@ class BytecodeToConcreteTests(TestCase):
|
|
|
1448
1424
|
labels = [Label() for x in range(0, 3 * N)]
|
|
1449
1425
|
|
|
1450
1426
|
code = Bytecode()
|
|
1451
|
-
code.extend(
|
|
1452
|
-
Instr("JUMP_FORWARD", labels[len(labels) - x - 1])
|
|
1453
|
-
for x in range(0, len(labels))
|
|
1454
|
-
)
|
|
1427
|
+
code.extend(Instr("JUMP_FORWARD", labels[len(labels) - x - 1]) for x in range(0, len(labels)))
|
|
1455
1428
|
end_of_jumps = len(code)
|
|
1456
1429
|
code.extend(Instr(nop) for x in range(0, N))
|
|
1457
1430
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
|
|
2
1
|
import pytest
|
|
3
2
|
from tests_python.debugger_unittest import IS_PY36_OR_GREATER, IS_CPYTHON
|
|
4
3
|
from tests_python.debug_constants import TEST_CYTHON
|
|
5
|
-
|
|
4
|
+
|
|
5
|
+
pytestmark = pytest.mark.skipif(not IS_PY36_OR_GREATER or not IS_CPYTHON or not TEST_CYTHON, reason="Requires CPython >= 3.6")
|
|
6
6
|
#!/usr/bin/env python3
|
|
7
7
|
import unittest
|
|
8
8
|
from _pydevd_frame_eval.vendored.bytecode import (
|
|
@@ -21,7 +21,6 @@ class FlagsTests(unittest.TestCase):
|
|
|
21
21
|
infer_flags(1)
|
|
22
22
|
|
|
23
23
|
def test_flag_inference(self):
|
|
24
|
-
|
|
25
24
|
# Check no loss of non-infered flags
|
|
26
25
|
code = ControlFlowGraph()
|
|
27
26
|
code.flags |= (
|
|
@@ -122,7 +121,6 @@ class FlagsTests(unittest.TestCase):
|
|
|
122
121
|
# Test inference in the presence of pre-existing flags
|
|
123
122
|
|
|
124
123
|
for is_async in (None, True):
|
|
125
|
-
|
|
126
124
|
# Infer generator
|
|
127
125
|
code = ConcreteBytecode()
|
|
128
126
|
code.append(ConcreteInstr("YIELD_VALUE"))
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
|
|
2
1
|
import pytest
|
|
3
2
|
from tests_python.debugger_unittest import IS_PY36_OR_GREATER, IS_CPYTHON
|
|
4
3
|
from tests_python.debug_constants import TEST_CYTHON
|
|
5
|
-
|
|
4
|
+
|
|
5
|
+
pytestmark = pytest.mark.skipif(not IS_PY36_OR_GREATER or not IS_CPYTHON or not TEST_CYTHON, reason="Requires CPython >= 3.6")
|
|
6
6
|
#!/usr/bin/env python3
|
|
7
7
|
import opcode
|
|
8
8
|
import unittest
|
|
@@ -78,7 +78,6 @@ class InstrTests(TestCase):
|
|
|
78
78
|
Instr("xxx")
|
|
79
79
|
|
|
80
80
|
def test_repr(self):
|
|
81
|
-
|
|
82
81
|
# No arg
|
|
83
82
|
r = repr(Instr("NOP", lineno=10))
|
|
84
83
|
self.assertIn("NOP", r)
|
|
@@ -253,9 +252,7 @@ class InstrTests(TestCase):
|
|
|
253
252
|
self.assertNotEqual(Instr("LOAD_CONST", 0), Instr("LOAD_CONST", 0.0))
|
|
254
253
|
|
|
255
254
|
# float: -0.0 == +0.0
|
|
256
|
-
self.assertNotEqual(
|
|
257
|
-
Instr("LOAD_CONST", neg_zero), Instr("LOAD_CONST", pos_zero)
|
|
258
|
-
)
|
|
255
|
+
self.assertNotEqual(Instr("LOAD_CONST", neg_zero), Instr("LOAD_CONST", pos_zero))
|
|
259
256
|
|
|
260
257
|
# complex
|
|
261
258
|
self.assertNotEqual(
|
|
@@ -273,14 +270,10 @@ class InstrTests(TestCase):
|
|
|
273
270
|
nested_tuple1 = (nested_tuple1,)
|
|
274
271
|
nested_tuple2 = (0.0,)
|
|
275
272
|
nested_tuple2 = (nested_tuple2,)
|
|
276
|
-
self.assertNotEqual(
|
|
277
|
-
Instr("LOAD_CONST", nested_tuple1), Instr("LOAD_CONST", nested_tuple2)
|
|
278
|
-
)
|
|
273
|
+
self.assertNotEqual(Instr("LOAD_CONST", nested_tuple1), Instr("LOAD_CONST", nested_tuple2))
|
|
279
274
|
|
|
280
275
|
# frozenset
|
|
281
|
-
self.assertNotEqual(
|
|
282
|
-
Instr("LOAD_CONST", frozenset({0})), Instr("LOAD_CONST", frozenset({0.0}))
|
|
283
|
-
)
|
|
276
|
+
self.assertNotEqual(Instr("LOAD_CONST", frozenset({0})), Instr("LOAD_CONST", frozenset({0.0})))
|
|
284
277
|
|
|
285
278
|
def test_stack_effects(self):
|
|
286
279
|
# Verify all opcodes are handled and that "jump=None" really returns
|
|
@@ -322,7 +315,7 @@ class InstrTests(TestCase):
|
|
|
322
315
|
# (As a result we can calculate stack_effect for
|
|
323
316
|
# any LOAD_CONST instructions, even for large integers)
|
|
324
317
|
|
|
325
|
-
for arg in 2
|
|
318
|
+
for arg in 2**31, 2**32, 2**63, 2**64, -1:
|
|
326
319
|
self.assertEqual(Instr("LOAD_CONST", arg).stack_effect(), 1)
|
|
327
320
|
|
|
328
321
|
def test_code_object_containing_mutable_data(self):
|
|
@@ -340,11 +333,7 @@ class InstrTests(TestCase):
|
|
|
340
333
|
mutable_datum = [4, 2]
|
|
341
334
|
|
|
342
335
|
for each in f_code:
|
|
343
|
-
if (
|
|
344
|
-
isinstance(each, Instr)
|
|
345
|
-
and each.name == "LOAD_CONST"
|
|
346
|
-
and isinstance(each.arg, CodeType)
|
|
347
|
-
):
|
|
336
|
+
if isinstance(each, Instr) and each.name == "LOAD_CONST" and isinstance(each.arg, CodeType):
|
|
348
337
|
instr_load_code = each
|
|
349
338
|
break
|
|
350
339
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
|
|
2
1
|
import pytest
|
|
3
2
|
from tests_python.debugger_unittest import IS_PY36_OR_GREATER, IS_CPYTHON
|
|
4
3
|
from tests_python.debug_constants import TEST_CYTHON
|
|
5
|
-
|
|
4
|
+
|
|
5
|
+
pytestmark = pytest.mark.skipif(not IS_PY36_OR_GREATER or not IS_CPYTHON or not TEST_CYTHON, reason="Requires CPython >= 3.6")
|
|
6
6
|
#!/usr/bin/env python3
|
|
7
7
|
import contextlib
|
|
8
8
|
import io
|
|
@@ -62,11 +62,7 @@ label_instr13:
|
|
|
62
62
|
LOAD_CONST 3
|
|
63
63
|
RETURN_VALUE
|
|
64
64
|
|
|
65
|
-
"""[
|
|
66
|
-
1:
|
|
67
|
-
].rstrip(
|
|
68
|
-
" "
|
|
69
|
-
)
|
|
65
|
+
"""[1:].rstrip(" ")
|
|
70
66
|
self.check_dump_bytecode(code, expected)
|
|
71
67
|
|
|
72
68
|
# with line numbers
|
|
@@ -90,11 +86,7 @@ label_instr13:
|
|
|
90
86
|
L. 6 14: LOAD_CONST 3
|
|
91
87
|
15: RETURN_VALUE
|
|
92
88
|
|
|
93
|
-
"""[
|
|
94
|
-
1:
|
|
95
|
-
].rstrip(
|
|
96
|
-
" "
|
|
97
|
-
)
|
|
89
|
+
"""[1:].rstrip(" ")
|
|
98
90
|
self.check_dump_bytecode(code, expected, lineno=True)
|
|
99
91
|
|
|
100
92
|
def test_bytecode_broken_label(self):
|
|
@@ -225,9 +217,7 @@ label_instr13:
|
|
|
225
217
|
22 RETURN_VALUE
|
|
226
218
|
24 LOAD_CONST 3
|
|
227
219
|
26 RETURN_VALUE
|
|
228
|
-
""".lstrip(
|
|
229
|
-
"\n"
|
|
230
|
-
)
|
|
220
|
+
""".lstrip("\n")
|
|
231
221
|
self.check_dump_bytecode(code, expected)
|
|
232
222
|
|
|
233
223
|
# with line numbers
|
|
@@ -246,9 +236,7 @@ L. 5 20: LOAD_CONST 2
|
|
|
246
236
|
22: RETURN_VALUE
|
|
247
237
|
L. 6 24: LOAD_CONST 3
|
|
248
238
|
26: RETURN_VALUE
|
|
249
|
-
""".lstrip(
|
|
250
|
-
"\n"
|
|
251
|
-
)
|
|
239
|
+
""".lstrip("\n")
|
|
252
240
|
self.check_dump_bytecode(code, expected, lineno=True)
|
|
253
241
|
|
|
254
242
|
def test_type_validation(self):
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
|
|
2
1
|
import pytest
|
|
3
2
|
from tests_python.debugger_unittest import IS_PY36_OR_GREATER, IS_CPYTHON
|
|
4
3
|
from tests_python.debug_constants import TEST_CYTHON
|
|
5
|
-
|
|
4
|
+
|
|
5
|
+
pytestmark = pytest.mark.skipif(not IS_PY36_OR_GREATER or not IS_CPYTHON or not TEST_CYTHON, reason="Requires CPython >= 3.6")
|
|
6
6
|
import sys
|
|
7
7
|
import unittest
|
|
8
8
|
from _pydevd_frame_eval.vendored.bytecode import Label, Instr, Compare, Bytecode, ControlFlowGraph
|
|
@@ -12,7 +12,6 @@ from unittest import mock
|
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
class Tests(TestCase):
|
|
15
|
-
|
|
16
15
|
maxDiff = 80 * 100
|
|
17
16
|
|
|
18
17
|
def optimize_blocks(self, code):
|
|
@@ -51,9 +50,7 @@ class Tests(TestCase):
|
|
|
51
50
|
|
|
52
51
|
def test_unary_op(self):
|
|
53
52
|
def check_unary_op(op, value, result):
|
|
54
|
-
code = Bytecode(
|
|
55
|
-
[Instr("LOAD_CONST", value), Instr(op), Instr("STORE_NAME", "x")]
|
|
56
|
-
)
|
|
53
|
+
code = Bytecode([Instr("LOAD_CONST", value), Instr(op), Instr("STORE_NAME", "x")])
|
|
57
54
|
self.check(code, Instr("LOAD_CONST", result), Instr("STORE_NAME", "x"))
|
|
58
55
|
|
|
59
56
|
check_unary_op("UNARY_POSITIVE", 2, 2)
|
|
@@ -520,9 +517,7 @@ class Tests(TestCase):
|
|
|
520
517
|
]
|
|
521
518
|
)
|
|
522
519
|
code = ControlFlowGraph.from_bytecode(code)
|
|
523
|
-
self.check(
|
|
524
|
-
code, Instr("LOAD_CONST", 4, lineno=2), Instr("RETURN_VALUE", lineno=2)
|
|
525
|
-
)
|
|
520
|
+
self.check(code, Instr("LOAD_CONST", 4, lineno=2), Instr("RETURN_VALUE", lineno=2))
|
|
526
521
|
|
|
527
522
|
# return+return + return+return: remove second and fourth return
|
|
528
523
|
#
|
|
@@ -544,9 +539,7 @@ class Tests(TestCase):
|
|
|
544
539
|
]
|
|
545
540
|
)
|
|
546
541
|
code = ControlFlowGraph.from_bytecode(code)
|
|
547
|
-
self.check(
|
|
548
|
-
code, Instr("LOAD_CONST", 4, lineno=2), Instr("RETURN_VALUE", lineno=2)
|
|
549
|
-
)
|
|
542
|
+
self.check(code, Instr("LOAD_CONST", 4, lineno=2), Instr("RETURN_VALUE", lineno=2))
|
|
550
543
|
|
|
551
544
|
# return + JUMP_ABSOLUTE: remove JUMP_ABSOLUTE
|
|
552
545
|
# while 1:
|
|
@@ -594,9 +587,7 @@ class Tests(TestCase):
|
|
|
594
587
|
)
|
|
595
588
|
code = ControlFlowGraph.from_bytecode(code)
|
|
596
589
|
|
|
597
|
-
self.check(
|
|
598
|
-
code, Instr("LOAD_CONST", 7, lineno=3), Instr("RETURN_VALUE", lineno=3)
|
|
599
|
-
)
|
|
590
|
+
self.check(code, Instr("LOAD_CONST", 7, lineno=3), Instr("RETURN_VALUE", lineno=3))
|
|
600
591
|
|
|
601
592
|
def test_not_jump_if_false(self):
|
|
602
593
|
# Replace UNARY_NOT+POP_JUMP_IF_FALSE with POP_JUMP_IF_TRUE
|
|
@@ -905,9 +896,7 @@ class Tests(TestCase):
|
|
|
905
896
|
)
|
|
906
897
|
|
|
907
898
|
def test_nop(self):
|
|
908
|
-
code = Bytecode(
|
|
909
|
-
[Instr("LOAD_NAME", "x"), Instr("NOP"), Instr("STORE_NAME", "test")]
|
|
910
|
-
)
|
|
899
|
+
code = Bytecode([Instr("LOAD_NAME", "x"), Instr("NOP"), Instr("STORE_NAME", "test")])
|
|
911
900
|
|
|
912
901
|
self.check(code, Instr("LOAD_NAME", "x"), Instr("STORE_NAME", "test"))
|
|
913
902
|
|
|
@@ -8,9 +8,7 @@ def get_code(source, *, filename="<string>", function=False):
|
|
|
8
8
|
source = textwrap.dedent(source).strip()
|
|
9
9
|
code = compile(source, filename, "exec")
|
|
10
10
|
if function:
|
|
11
|
-
sub_code = [
|
|
12
|
-
const for const in code.co_consts if isinstance(const, types.CodeType)
|
|
13
|
-
]
|
|
11
|
+
sub_code = [const for const in code.co_consts if isinstance(const, types.CodeType)]
|
|
14
12
|
if len(sub_code) != 1:
|
|
15
13
|
raise ValueError("unable to find function code")
|
|
16
14
|
code = sub_code[0]
|
|
@@ -1,27 +1,21 @@
|
|
|
1
1
|
def _fix_contents(filename, contents):
|
|
2
2
|
import re
|
|
3
3
|
|
|
4
|
-
contents = re.sub(
|
|
5
|
-
r"from bytecode", r'from _pydevd_frame_eval.vendored.bytecode', contents, flags=re.MULTILINE
|
|
6
|
-
)
|
|
4
|
+
contents = re.sub(r"from bytecode", r"from _pydevd_frame_eval.vendored.bytecode", contents, flags=re.MULTILINE)
|
|
7
5
|
|
|
8
|
-
contents = re.sub(
|
|
9
|
-
r"import bytecode", r'from _pydevd_frame_eval.vendored import bytecode', contents, flags=re.MULTILINE
|
|
10
|
-
)
|
|
6
|
+
contents = re.sub(r"import bytecode", r"from _pydevd_frame_eval.vendored import bytecode", contents, flags=re.MULTILINE)
|
|
11
7
|
|
|
12
8
|
# This test will import the wrong setup (we're not interested in it).
|
|
13
|
-
contents = re.sub(
|
|
14
|
-
r"def test_version\(self\):", r'def skip_test_version(self):', contents, flags=re.MULTILINE
|
|
15
|
-
)
|
|
9
|
+
contents = re.sub(r"def test_version\(self\):", r"def skip_test_version(self):", contents, flags=re.MULTILINE)
|
|
16
10
|
|
|
17
|
-
if filename.startswith(
|
|
18
|
-
if
|
|
19
|
-
pytest_mark =
|
|
11
|
+
if filename.startswith("test_"):
|
|
12
|
+
if "pytestmark" not in contents:
|
|
13
|
+
pytest_mark = """
|
|
20
14
|
import pytest
|
|
21
15
|
from tests_python.debugger_unittest import IS_PY36_OR_GREATER, IS_CPYTHON
|
|
22
16
|
from tests_python.debug_constants import TEST_CYTHON
|
|
23
17
|
pytestmark = pytest.mark.skipif(not IS_PY36_OR_GREATER or not IS_CPYTHON or not TEST_CYTHON, reason='Requires CPython >= 3.6')
|
|
24
|
-
|
|
18
|
+
"""
|
|
25
19
|
contents = pytest_mark + contents
|
|
26
20
|
return contents
|
|
27
21
|
|
|
@@ -33,18 +27,19 @@ def main():
|
|
|
33
27
|
for root, dirs, files in os.walk(os.path.dirname(__file__)):
|
|
34
28
|
path = root.split(os.sep)
|
|
35
29
|
for filename in files:
|
|
36
|
-
if filename.endswith(
|
|
37
|
-
with open(os.path.join(root, filename),
|
|
30
|
+
if filename.endswith(".py") and filename != "pydevd_fix_code.py":
|
|
31
|
+
with open(os.path.join(root, filename), "r") as stream:
|
|
38
32
|
contents = stream.read()
|
|
39
33
|
|
|
40
34
|
new_contents = _fix_contents(filename, contents)
|
|
41
35
|
if contents != new_contents:
|
|
42
|
-
print(
|
|
43
|
-
with open(os.path.join(root, filename),
|
|
36
|
+
print("fixed ", os.path.join(root, filename))
|
|
37
|
+
with open(os.path.join(root, filename), "w") as stream:
|
|
44
38
|
stream.write(new_contents)
|
|
45
39
|
|
|
40
|
+
|
|
46
41
|
# print(len(path) * '---', filename)
|
|
47
42
|
|
|
48
43
|
|
|
49
|
-
if __name__ ==
|
|
50
|
-
main()
|
|
44
|
+
if __name__ == "__main__":
|
|
45
|
+
main()
|