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
|
@@ -9,8 +9,12 @@ from _pydevd_bundle import pydevd_traceproperty, pydevd_dont_trace, pydevd_utils
|
|
|
9
9
|
from _pydevd_bundle.pydevd_additional_thread_info import set_additional_thread_info
|
|
10
10
|
from _pydevd_bundle.pydevd_breakpoints import get_exception_class
|
|
11
11
|
from _pydevd_bundle.pydevd_comm import (
|
|
12
|
-
InternalEvaluateConsoleExpression,
|
|
13
|
-
|
|
12
|
+
InternalEvaluateConsoleExpression,
|
|
13
|
+
InternalConsoleGetCompletions,
|
|
14
|
+
InternalRunCustomOperation,
|
|
15
|
+
internal_get_next_statement_targets,
|
|
16
|
+
internal_get_smart_step_into_variants,
|
|
17
|
+
)
|
|
14
18
|
from _pydevd_bundle.pydevd_constants import NEXT_VALUE_SEPARATOR, IS_WINDOWS, NULL
|
|
15
19
|
from _pydevd_bundle.pydevd_comm_constants import ID_TO_MEANING, CMD_EXEC_EXPRESSION, CMD_AUTHENTICATE
|
|
16
20
|
from _pydevd_bundle.pydevd_api import PyDevdAPI
|
|
@@ -21,22 +25,21 @@ import pydevd_file_utils
|
|
|
21
25
|
|
|
22
26
|
|
|
23
27
|
class _PyDevCommandProcessor(object):
|
|
24
|
-
|
|
25
28
|
def __init__(self):
|
|
26
29
|
self.api = PyDevdAPI()
|
|
27
30
|
|
|
28
31
|
def process_net_command(self, py_db, cmd_id, seq, text):
|
|
29
|
-
|
|
32
|
+
"""Processes a command received from the Java side
|
|
30
33
|
|
|
31
34
|
@param cmd_id: the id of the command
|
|
32
35
|
@param seq: the sequence of the command
|
|
33
36
|
@param text: the text received in the command
|
|
34
|
-
|
|
37
|
+
"""
|
|
35
38
|
|
|
36
39
|
# We can only proceed if the client is already authenticated or if it's the
|
|
37
40
|
# command to authenticate.
|
|
38
41
|
if cmd_id != CMD_AUTHENTICATE and not py_db.authentication.is_authenticated():
|
|
39
|
-
cmd = py_db.cmd_factory.make_error_message(seq,
|
|
42
|
+
cmd = py_db.cmd_factory.make_error_message(seq, "Client not authenticated.")
|
|
40
43
|
py_db.writer.add_command(cmd)
|
|
41
44
|
return
|
|
42
45
|
|
|
@@ -54,7 +57,7 @@ class _PyDevCommandProcessor(object):
|
|
|
54
57
|
return
|
|
55
58
|
|
|
56
59
|
lock = py_db._main_lock
|
|
57
|
-
if method_name ==
|
|
60
|
+
if method_name == "cmd_thread_dump_to_stderr":
|
|
58
61
|
# We can skip the main debugger locks for cases where we know it's not needed.
|
|
59
62
|
lock = NULL
|
|
60
63
|
|
|
@@ -71,9 +74,8 @@ class _PyDevCommandProcessor(object):
|
|
|
71
74
|
traceback.print_exc(file=stream)
|
|
72
75
|
cmd = py_db.cmd_factory.make_error_message(
|
|
73
76
|
seq,
|
|
74
|
-
"Unexpected exception in process_net_command.\nInitial params: %s. Exception: %s"
|
|
75
|
-
|
|
76
|
-
)
|
|
77
|
+
"Unexpected exception in process_net_command.\nInitial params: %s. Exception: %s"
|
|
78
|
+
% (((cmd_id, seq, text), stream.getvalue())),
|
|
77
79
|
)
|
|
78
80
|
if cmd is not None:
|
|
79
81
|
py_db.writer.add_command(cmd)
|
|
@@ -84,7 +86,7 @@ class _PyDevCommandProcessor(object):
|
|
|
84
86
|
if py_db.authentication.is_authenticated():
|
|
85
87
|
return NetCommand(cmd_id, seq, py_db.authentication.client_access_token)
|
|
86
88
|
|
|
87
|
-
return py_db.cmd_factory.make_error_message(seq,
|
|
89
|
+
return py_db.cmd_factory.make_error_message(seq, "Client not authenticated.")
|
|
88
90
|
|
|
89
91
|
def cmd_run(self, py_db, cmd_id, seq, text):
|
|
90
92
|
return self.api.run(py_db)
|
|
@@ -95,19 +97,19 @@ class _PyDevCommandProcessor(object):
|
|
|
95
97
|
def cmd_get_completions(self, py_db, cmd_id, seq, text):
|
|
96
98
|
# we received some command to get a variable
|
|
97
99
|
# the text is: thread_id\tframe_id\tactivation token
|
|
98
|
-
thread_id, frame_id, _scope, act_tok = text.split(
|
|
100
|
+
thread_id, frame_id, _scope, act_tok = text.split("\t", 3)
|
|
99
101
|
|
|
100
102
|
return self.api.request_completions(py_db, seq, thread_id, frame_id, act_tok)
|
|
101
103
|
|
|
102
104
|
def cmd_get_thread_stack(self, py_db, cmd_id, seq, text):
|
|
103
105
|
# Receives a thread_id and a given timeout, which is the time we should
|
|
104
106
|
# wait to the provide the stack if a given thread is still not suspended.
|
|
105
|
-
if
|
|
106
|
-
thread_id, timeout = text.split(
|
|
107
|
+
if "\t" in text:
|
|
108
|
+
thread_id, timeout = text.split("\t")
|
|
107
109
|
timeout = float(timeout)
|
|
108
110
|
else:
|
|
109
111
|
thread_id = text
|
|
110
|
-
timeout = .5 # Default timeout is .5 seconds
|
|
112
|
+
timeout = 0.5 # Default timeout is .5 seconds
|
|
111
113
|
|
|
112
114
|
return self.api.request_stack(py_db, seq, thread_id, fmt={}, timeout=timeout)
|
|
113
115
|
|
|
@@ -121,14 +123,14 @@ class _PyDevCommandProcessor(object):
|
|
|
121
123
|
# Default based on server process (although ideally the IDE should
|
|
122
124
|
# provide it).
|
|
123
125
|
if IS_WINDOWS:
|
|
124
|
-
ide_os =
|
|
126
|
+
ide_os = "WINDOWS"
|
|
125
127
|
else:
|
|
126
|
-
ide_os =
|
|
128
|
+
ide_os = "UNIX"
|
|
127
129
|
|
|
128
130
|
# Breakpoints can be grouped by 'LINE' or by 'ID'.
|
|
129
|
-
breakpoints_by =
|
|
131
|
+
breakpoints_by = "LINE"
|
|
130
132
|
|
|
131
|
-
splitted = text.split(
|
|
133
|
+
splitted = text.split("\t")
|
|
132
134
|
if len(splitted) == 1:
|
|
133
135
|
_local_version = splitted
|
|
134
136
|
|
|
@@ -159,23 +161,23 @@ class _PyDevCommandProcessor(object):
|
|
|
159
161
|
cmd_step_return_my_code = _cmd_step
|
|
160
162
|
|
|
161
163
|
def _cmd_set_next(self, py_db, cmd_id, seq, text):
|
|
162
|
-
thread_id, line, func_name = text.split(
|
|
164
|
+
thread_id, line, func_name = text.split("\t", 2)
|
|
163
165
|
return self.api.request_set_next(py_db, seq, thread_id, cmd_id, None, line, func_name)
|
|
164
166
|
|
|
165
167
|
cmd_run_to_line = _cmd_set_next
|
|
166
168
|
cmd_set_next_statement = _cmd_set_next
|
|
167
169
|
|
|
168
170
|
def cmd_smart_step_into(self, py_db, cmd_id, seq, text):
|
|
169
|
-
thread_id, line_or_bytecode_offset, func_name = text.split(
|
|
170
|
-
if line_or_bytecode_offset.startswith(
|
|
171
|
+
thread_id, line_or_bytecode_offset, func_name = text.split("\t", 2)
|
|
172
|
+
if line_or_bytecode_offset.startswith("offset="):
|
|
171
173
|
# In this case we request the smart step into to stop given the parent frame
|
|
172
174
|
# and the location of the parent frame bytecode offset and not just the func_name
|
|
173
175
|
# (this implies that `CMD_GET_SMART_STEP_INTO_VARIANTS` was previously used
|
|
174
176
|
# to know what are the valid stop points).
|
|
175
177
|
|
|
176
|
-
temp = line_or_bytecode_offset[len(
|
|
177
|
-
if
|
|
178
|
-
offset, child_offset = temp.split(
|
|
178
|
+
temp = line_or_bytecode_offset[len("offset=") :]
|
|
179
|
+
if ";" in temp:
|
|
180
|
+
offset, child_offset = temp.split(";")
|
|
179
181
|
offset = int(offset)
|
|
180
182
|
child_offset = int(child_offset)
|
|
181
183
|
else:
|
|
@@ -188,29 +190,29 @@ class _PyDevCommandProcessor(object):
|
|
|
188
190
|
|
|
189
191
|
def cmd_reload_code(self, py_db, cmd_id, seq, text):
|
|
190
192
|
text = text.strip()
|
|
191
|
-
if
|
|
193
|
+
if "\t" not in text:
|
|
192
194
|
module_name = text.strip()
|
|
193
195
|
filename = None
|
|
194
196
|
else:
|
|
195
|
-
module_name, filename = text.split(
|
|
197
|
+
module_name, filename = text.split("\t", 1)
|
|
196
198
|
self.api.request_reload_code(py_db, seq, module_name, filename)
|
|
197
199
|
|
|
198
200
|
def cmd_change_variable(self, py_db, cmd_id, seq, text):
|
|
199
201
|
# the text is: thread\tstackframe\tFRAME|GLOBAL\tattribute_to_change\tvalue_to_change
|
|
200
|
-
thread_id, frame_id, scope, attr_and_value = text.split(
|
|
202
|
+
thread_id, frame_id, scope, attr_and_value = text.split("\t", 3)
|
|
201
203
|
|
|
202
|
-
tab_index = attr_and_value.rindex(
|
|
203
|
-
attr = attr_and_value[0:tab_index].replace(
|
|
204
|
-
value = attr_and_value[tab_index + 1:]
|
|
204
|
+
tab_index = attr_and_value.rindex("\t")
|
|
205
|
+
attr = attr_and_value[0:tab_index].replace("\t", ".")
|
|
206
|
+
value = attr_and_value[tab_index + 1 :]
|
|
205
207
|
self.api.request_change_variable(py_db, seq, thread_id, frame_id, scope, attr, value)
|
|
206
208
|
|
|
207
209
|
def cmd_get_variable(self, py_db, cmd_id, seq, text):
|
|
208
210
|
# we received some command to get a variable
|
|
209
211
|
# the text is: thread_id\tframe_id\tFRAME|GLOBAL\tattributes*
|
|
210
|
-
thread_id, frame_id, scopeattrs = text.split(
|
|
212
|
+
thread_id, frame_id, scopeattrs = text.split("\t", 2)
|
|
211
213
|
|
|
212
|
-
if scopeattrs.find(
|
|
213
|
-
scope, attrs = scopeattrs.split(
|
|
214
|
+
if scopeattrs.find("\t") != -1: # there are attributes beyond scope
|
|
215
|
+
scope, attrs = scopeattrs.split("\t", 1)
|
|
214
216
|
else:
|
|
215
217
|
scope, attrs = (scopeattrs, None)
|
|
216
218
|
|
|
@@ -220,84 +222,91 @@ class _PyDevCommandProcessor(object):
|
|
|
220
222
|
# Note: untested and unused in pydev
|
|
221
223
|
# we received some command to get an array variable
|
|
222
224
|
# the text is: thread_id\tframe_id\tFRAME|GLOBAL\tname\ttemp\troffs\tcoffs\trows\tcols\tformat
|
|
223
|
-
roffset, coffset, rows, cols, format, thread_id, frame_id, scopeattrs = text.split(
|
|
225
|
+
roffset, coffset, rows, cols, format, thread_id, frame_id, scopeattrs = text.split("\t", 7)
|
|
224
226
|
|
|
225
|
-
if scopeattrs.find(
|
|
226
|
-
scope, attrs = scopeattrs.split(
|
|
227
|
+
if scopeattrs.find("\t") != -1: # there are attributes beyond scope
|
|
228
|
+
scope, attrs = scopeattrs.split("\t", 1)
|
|
227
229
|
else:
|
|
228
230
|
scope, attrs = (scopeattrs, None)
|
|
229
231
|
|
|
230
232
|
self.api.request_get_array(py_db, seq, roffset, coffset, rows, cols, format, thread_id, frame_id, scope, attrs)
|
|
231
233
|
|
|
232
234
|
def cmd_show_return_values(self, py_db, cmd_id, seq, text):
|
|
233
|
-
show_return_values = text.split(
|
|
235
|
+
show_return_values = text.split("\t")[1]
|
|
234
236
|
self.api.set_show_return_values(py_db, int(show_return_values) == 1)
|
|
235
237
|
|
|
236
238
|
def cmd_load_full_value(self, py_db, cmd_id, seq, text):
|
|
237
239
|
# Note: untested and unused in pydev
|
|
238
|
-
thread_id, frame_id, scopeattrs = text.split(
|
|
240
|
+
thread_id, frame_id, scopeattrs = text.split("\t", 2)
|
|
239
241
|
vars = scopeattrs.split(NEXT_VALUE_SEPARATOR)
|
|
240
242
|
|
|
241
243
|
self.api.request_load_full_value(py_db, seq, thread_id, frame_id, vars)
|
|
242
244
|
|
|
243
245
|
def cmd_get_description(self, py_db, cmd_id, seq, text):
|
|
244
246
|
# Note: untested and unused in pydev
|
|
245
|
-
thread_id, frame_id, expression = text.split(
|
|
247
|
+
thread_id, frame_id, expression = text.split("\t", 2)
|
|
246
248
|
self.api.request_get_description(py_db, seq, thread_id, frame_id, expression)
|
|
247
249
|
|
|
248
250
|
def cmd_get_frame(self, py_db, cmd_id, seq, text):
|
|
249
|
-
thread_id, frame_id, scope = text.split(
|
|
251
|
+
thread_id, frame_id, scope = text.split("\t", 2)
|
|
250
252
|
self.api.request_get_frame(py_db, seq, thread_id, frame_id)
|
|
251
253
|
|
|
252
254
|
def cmd_set_break(self, py_db, cmd_id, seq, text):
|
|
253
255
|
# func name: 'None': match anything. Empty: match global, specified: only method context.
|
|
254
256
|
# command to add some breakpoint.
|
|
255
257
|
# text is filename\tline. Add to breakpoints dictionary
|
|
256
|
-
suspend_policy =
|
|
258
|
+
suspend_policy = "NONE" # Can be 'NONE' or 'ALL'
|
|
257
259
|
is_logpoint = False
|
|
258
260
|
hit_condition = None
|
|
259
261
|
if py_db._set_breakpoints_with_id:
|
|
260
262
|
try:
|
|
261
263
|
try:
|
|
262
|
-
|
|
264
|
+
(
|
|
265
|
+
breakpoint_id,
|
|
266
|
+
btype,
|
|
267
|
+
filename,
|
|
268
|
+
line,
|
|
269
|
+
func_name,
|
|
270
|
+
condition,
|
|
271
|
+
expression,
|
|
272
|
+
hit_condition,
|
|
273
|
+
is_logpoint,
|
|
274
|
+
suspend_policy,
|
|
275
|
+
) = text.split("\t", 9)
|
|
263
276
|
except ValueError: # not enough values to unpack
|
|
264
277
|
# No suspend_policy passed (use default).
|
|
265
|
-
breakpoint_id, btype, filename, line, func_name, condition, expression, hit_condition, is_logpoint = text.split(
|
|
266
|
-
is_logpoint = is_logpoint ==
|
|
278
|
+
breakpoint_id, btype, filename, line, func_name, condition, expression, hit_condition, is_logpoint = text.split("\t", 8)
|
|
279
|
+
is_logpoint = is_logpoint == "True"
|
|
267
280
|
except ValueError: # not enough values to unpack
|
|
268
|
-
breakpoint_id, btype, filename, line, func_name, condition, expression = text.split(
|
|
281
|
+
breakpoint_id, btype, filename, line, func_name, condition, expression = text.split("\t", 6)
|
|
269
282
|
|
|
270
283
|
breakpoint_id = int(breakpoint_id)
|
|
271
284
|
line = int(line)
|
|
272
285
|
|
|
273
286
|
# We must restore new lines and tabs as done in
|
|
274
287
|
# AbstractDebugTarget.breakpointAdded
|
|
275
|
-
condition = condition.replace(
|
|
276
|
-
replace(u"@_@TAB_CHAR@_@", u'\t').strip()
|
|
288
|
+
condition = condition.replace("@_@NEW_LINE_CHAR@_@", "\n").replace("@_@TAB_CHAR@_@", "\t").strip()
|
|
277
289
|
|
|
278
|
-
expression = expression.replace(
|
|
279
|
-
replace(u"@_@TAB_CHAR@_@", u'\t').strip()
|
|
290
|
+
expression = expression.replace("@_@NEW_LINE_CHAR@_@", "\n").replace("@_@TAB_CHAR@_@", "\t").strip()
|
|
280
291
|
else:
|
|
281
292
|
# Note: this else should be removed after PyCharm migrates to setting
|
|
282
293
|
# breakpoints by id (and ideally also provides func_name).
|
|
283
|
-
btype, filename, line, func_name, suspend_policy, condition, expression = text.split(
|
|
294
|
+
btype, filename, line, func_name, suspend_policy, condition, expression = text.split("\t", 6)
|
|
284
295
|
# If we don't have an id given for each breakpoint, consider
|
|
285
296
|
# the id to be the line.
|
|
286
297
|
breakpoint_id = line = int(line)
|
|
287
298
|
|
|
288
|
-
condition = condition.replace(
|
|
289
|
-
replace(u"@_@TAB_CHAR@_@", u'\t').strip()
|
|
299
|
+
condition = condition.replace("@_@NEW_LINE_CHAR@_@", "\n").replace("@_@TAB_CHAR@_@", "\t").strip()
|
|
290
300
|
|
|
291
|
-
expression = expression.replace(
|
|
292
|
-
replace(u"@_@TAB_CHAR@_@", u'\t').strip()
|
|
301
|
+
expression = expression.replace("@_@NEW_LINE_CHAR@_@", "\n").replace("@_@TAB_CHAR@_@", "\t").strip()
|
|
293
302
|
|
|
294
|
-
if condition is not None and (len(condition) <= 0 or condition ==
|
|
303
|
+
if condition is not None and (len(condition) <= 0 or condition == "None"):
|
|
295
304
|
condition = None
|
|
296
305
|
|
|
297
|
-
if expression is not None and (len(expression) <= 0 or expression ==
|
|
306
|
+
if expression is not None and (len(expression) <= 0 or expression == "None"):
|
|
298
307
|
expression = None
|
|
299
308
|
|
|
300
|
-
if hit_condition is not None and (len(hit_condition) <= 0 or hit_condition ==
|
|
309
|
+
if hit_condition is not None and (len(hit_condition) <= 0 or hit_condition == "None"):
|
|
301
310
|
hit_condition = None
|
|
302
311
|
|
|
303
312
|
def on_changed_breakpoint_state(breakpoint_id, add_breakpoint_result):
|
|
@@ -305,49 +314,73 @@ class _PyDevCommandProcessor(object):
|
|
|
305
314
|
|
|
306
315
|
translated_line = add_breakpoint_result.translated_line
|
|
307
316
|
translated_filename = add_breakpoint_result.translated_filename
|
|
308
|
-
msg =
|
|
317
|
+
msg = ""
|
|
309
318
|
if error_code:
|
|
310
|
-
|
|
311
319
|
if error_code == self.api.ADD_BREAKPOINT_FILE_NOT_FOUND:
|
|
312
|
-
msg =
|
|
320
|
+
msg = "pydev debugger: Trying to add breakpoint to file that does not exist: %s (will have no effect).\n" % (
|
|
321
|
+
translated_filename,
|
|
322
|
+
)
|
|
313
323
|
|
|
314
324
|
elif error_code == self.api.ADD_BREAKPOINT_FILE_EXCLUDED_BY_FILTERS:
|
|
315
|
-
msg =
|
|
325
|
+
msg = "pydev debugger: Trying to add breakpoint to file that is excluded by filters: %s (will have no effect).\n" % (
|
|
326
|
+
translated_filename,
|
|
327
|
+
)
|
|
316
328
|
|
|
317
329
|
elif error_code == self.api.ADD_BREAKPOINT_LAZY_VALIDATION:
|
|
318
|
-
msg =
|
|
330
|
+
msg = "" # Ignore this here (if/when loaded, it'll call on_changed_breakpoint_state again accordingly).
|
|
319
331
|
|
|
320
332
|
elif error_code == self.api.ADD_BREAKPOINT_INVALID_LINE:
|
|
321
|
-
msg =
|
|
333
|
+
msg = "pydev debugger: Trying to add breakpoint to line (%s) that is not valid in: %s.\n" % (
|
|
334
|
+
translated_line,
|
|
335
|
+
translated_filename,
|
|
336
|
+
)
|
|
322
337
|
|
|
323
338
|
else:
|
|
324
339
|
# Shouldn't get here.
|
|
325
|
-
msg =
|
|
340
|
+
msg = "pydev debugger: Breakpoint not validated (reason unknown -- please report as error): %s (%s).\n" % (
|
|
341
|
+
translated_filename,
|
|
342
|
+
translated_line,
|
|
343
|
+
)
|
|
326
344
|
|
|
327
345
|
else:
|
|
328
346
|
if add_breakpoint_result.original_line != translated_line:
|
|
329
|
-
msg =
|
|
347
|
+
msg = "pydev debugger (info): Breakpoint in line: %s moved to line: %s (in %s).\n" % (
|
|
348
|
+
add_breakpoint_result.original_line,
|
|
349
|
+
translated_line,
|
|
350
|
+
translated_filename,
|
|
351
|
+
)
|
|
330
352
|
|
|
331
353
|
if msg:
|
|
332
354
|
py_db.writer.add_command(py_db.cmd_factory.make_warning_message(msg))
|
|
333
355
|
|
|
334
356
|
result = self.api.add_breakpoint(
|
|
335
|
-
py_db,
|
|
336
|
-
|
|
357
|
+
py_db,
|
|
358
|
+
self.api.filename_to_str(filename),
|
|
359
|
+
btype,
|
|
360
|
+
breakpoint_id,
|
|
361
|
+
line,
|
|
362
|
+
condition,
|
|
363
|
+
func_name,
|
|
364
|
+
expression,
|
|
365
|
+
suspend_policy,
|
|
366
|
+
hit_condition,
|
|
367
|
+
is_logpoint,
|
|
368
|
+
on_changed_breakpoint_state=on_changed_breakpoint_state,
|
|
369
|
+
)
|
|
337
370
|
|
|
338
371
|
on_changed_breakpoint_state(breakpoint_id, result)
|
|
339
372
|
|
|
340
373
|
def cmd_remove_break(self, py_db, cmd_id, seq, text):
|
|
341
374
|
# command to remove some breakpoint
|
|
342
375
|
# text is type\file\tid. Remove from breakpoints dictionary
|
|
343
|
-
breakpoint_type, filename, breakpoint_id = text.split(
|
|
376
|
+
breakpoint_type, filename, breakpoint_id = text.split("\t", 2)
|
|
344
377
|
|
|
345
378
|
filename = self.api.filename_to_str(filename)
|
|
346
379
|
|
|
347
380
|
try:
|
|
348
381
|
breakpoint_id = int(breakpoint_id)
|
|
349
382
|
except ValueError:
|
|
350
|
-
pydev_log.critical(
|
|
383
|
+
pydev_log.critical("Error removing breakpoint. Expected breakpoint_id to be an int. Found: %s", breakpoint_id)
|
|
351
384
|
|
|
352
385
|
else:
|
|
353
386
|
self.api.remove_breakpoint(py_db, filename, breakpoint_type, breakpoint_id)
|
|
@@ -357,14 +390,13 @@ class _PyDevCommandProcessor(object):
|
|
|
357
390
|
# text is: thread\tstackframe\tLOCAL\texpression
|
|
358
391
|
attr_to_set_result = ""
|
|
359
392
|
try:
|
|
360
|
-
thread_id, frame_id, scope, expression, trim, attr_to_set_result = text.split(
|
|
393
|
+
thread_id, frame_id, scope, expression, trim, attr_to_set_result = text.split("\t", 5)
|
|
361
394
|
except ValueError:
|
|
362
|
-
thread_id, frame_id, scope, expression, trim = text.split(
|
|
395
|
+
thread_id, frame_id, scope, expression, trim = text.split("\t", 4)
|
|
363
396
|
is_exec = cmd_id == CMD_EXEC_EXPRESSION
|
|
364
397
|
trim_if_too_big = int(trim) == 1
|
|
365
398
|
|
|
366
|
-
self.api.request_exec_or_evaluate(
|
|
367
|
-
py_db, seq, thread_id, frame_id, expression, is_exec, trim_if_too_big, attr_to_set_result)
|
|
399
|
+
self.api.request_exec_or_evaluate(py_db, seq, thread_id, frame_id, expression, is_exec, trim_if_too_big, attr_to_set_result)
|
|
368
400
|
|
|
369
401
|
cmd_evaluate_expression = _cmd_exec_or_evaluate_expression
|
|
370
402
|
cmd_exec_expression = _cmd_exec_or_evaluate_expression
|
|
@@ -373,11 +405,11 @@ class _PyDevCommandProcessor(object):
|
|
|
373
405
|
# command to exec expression in console, in case expression is only partially valid 'False' is returned
|
|
374
406
|
# text is: thread\tstackframe\tLOCAL\texpression
|
|
375
407
|
|
|
376
|
-
thread_id, frame_id, scope, expression = text.split(
|
|
408
|
+
thread_id, frame_id, scope, expression = text.split("\t", 3)
|
|
377
409
|
self.api.request_console_exec(py_db, seq, thread_id, frame_id, expression)
|
|
378
410
|
|
|
379
411
|
def cmd_set_path_mapping_json(self, py_db, cmd_id, seq, text):
|
|
380
|
-
|
|
412
|
+
"""
|
|
381
413
|
:param text:
|
|
382
414
|
Json text. Something as:
|
|
383
415
|
|
|
@@ -391,21 +423,21 @@ class _PyDevCommandProcessor(object):
|
|
|
391
423
|
"debug": true,
|
|
392
424
|
"force": false
|
|
393
425
|
}
|
|
394
|
-
|
|
426
|
+
"""
|
|
395
427
|
as_json = json.loads(text)
|
|
396
|
-
force = as_json.get(
|
|
428
|
+
force = as_json.get("force", False)
|
|
397
429
|
|
|
398
430
|
path_mappings = []
|
|
399
|
-
for pathMapping in as_json.get(
|
|
400
|
-
localRoot = pathMapping.get(
|
|
401
|
-
remoteRoot = pathMapping.get(
|
|
402
|
-
if (localRoot !=
|
|
431
|
+
for pathMapping in as_json.get("pathMappings", []):
|
|
432
|
+
localRoot = pathMapping.get("localRoot", "")
|
|
433
|
+
remoteRoot = pathMapping.get("remoteRoot", "")
|
|
434
|
+
if (localRoot != "") and (remoteRoot != ""):
|
|
403
435
|
path_mappings.append((localRoot, remoteRoot))
|
|
404
436
|
|
|
405
437
|
if bool(path_mappings) or force:
|
|
406
438
|
pydevd_file_utils.setup_client_server_paths(path_mappings)
|
|
407
439
|
|
|
408
|
-
debug = as_json.get(
|
|
440
|
+
debug = as_json.get("debug", False)
|
|
409
441
|
if debug or force:
|
|
410
442
|
pydevd_file_utils.DEBUG_CLIENT_SERVER_TRANSLATION = debug
|
|
411
443
|
|
|
@@ -423,13 +455,15 @@ class _PyDevCommandProcessor(object):
|
|
|
423
455
|
py_db.break_on_user_uncaught_exceptions = {}
|
|
424
456
|
|
|
425
457
|
as_json = json.loads(text)
|
|
426
|
-
break_on_uncaught = as_json.get(
|
|
427
|
-
break_on_caught = as_json.get(
|
|
428
|
-
break_on_user_caught = as_json.get(
|
|
429
|
-
py_db.skip_on_exceptions_thrown_in_same_context = as_json.get(
|
|
430
|
-
py_db.ignore_exceptions_thrown_in_lines_with_ignore_exception = as_json.get(
|
|
431
|
-
|
|
432
|
-
|
|
458
|
+
break_on_uncaught = as_json.get("break_on_uncaught", False)
|
|
459
|
+
break_on_caught = as_json.get("break_on_caught", False)
|
|
460
|
+
break_on_user_caught = as_json.get("break_on_user_caught", False)
|
|
461
|
+
py_db.skip_on_exceptions_thrown_in_same_context = as_json.get("skip_on_exceptions_thrown_in_same_context", False)
|
|
462
|
+
py_db.ignore_exceptions_thrown_in_lines_with_ignore_exception = as_json.get(
|
|
463
|
+
"ignore_exceptions_thrown_in_lines_with_ignore_exception", False
|
|
464
|
+
)
|
|
465
|
+
ignore_libraries = as_json.get("ignore_libraries", False)
|
|
466
|
+
exception_types = as_json.get("exception_types", [])
|
|
433
467
|
|
|
434
468
|
for exception_type in exception_types:
|
|
435
469
|
if not exception_type:
|
|
@@ -453,32 +487,32 @@ class _PyDevCommandProcessor(object):
|
|
|
453
487
|
def cmd_set_py_exception(self, py_db, cmd_id, seq, text):
|
|
454
488
|
# DEPRECATED. Use cmd_set_py_exception_json instead.
|
|
455
489
|
try:
|
|
456
|
-
splitted = text.split(
|
|
490
|
+
splitted = text.split(";")
|
|
457
491
|
py_db.break_on_uncaught_exceptions = {}
|
|
458
492
|
py_db.break_on_caught_exceptions = {}
|
|
459
493
|
py_db.break_on_user_uncaught_exceptions = {}
|
|
460
494
|
if len(splitted) >= 5:
|
|
461
|
-
if splitted[0] ==
|
|
495
|
+
if splitted[0] == "true":
|
|
462
496
|
break_on_uncaught = True
|
|
463
497
|
else:
|
|
464
498
|
break_on_uncaught = False
|
|
465
499
|
|
|
466
|
-
if splitted[1] ==
|
|
500
|
+
if splitted[1] == "true":
|
|
467
501
|
break_on_caught = True
|
|
468
502
|
else:
|
|
469
503
|
break_on_caught = False
|
|
470
504
|
|
|
471
|
-
if splitted[2] ==
|
|
505
|
+
if splitted[2] == "true":
|
|
472
506
|
py_db.skip_on_exceptions_thrown_in_same_context = True
|
|
473
507
|
else:
|
|
474
508
|
py_db.skip_on_exceptions_thrown_in_same_context = False
|
|
475
509
|
|
|
476
|
-
if splitted[3] ==
|
|
510
|
+
if splitted[3] == "true":
|
|
477
511
|
py_db.ignore_exceptions_thrown_in_lines_with_ignore_exception = True
|
|
478
512
|
else:
|
|
479
513
|
py_db.ignore_exceptions_thrown_in_lines_with_ignore_exception = False
|
|
480
514
|
|
|
481
|
-
if splitted[4] ==
|
|
515
|
+
if splitted[4] == "true":
|
|
482
516
|
ignore_libraries = True
|
|
483
517
|
else:
|
|
484
518
|
ignore_libraries = False
|
|
@@ -520,24 +554,24 @@ class _PyDevCommandProcessor(object):
|
|
|
520
554
|
# Command which receives whether to trace property getter/setter/deleter
|
|
521
555
|
# text is feature_state(true/false);disable_getter/disable_setter/disable_deleter
|
|
522
556
|
if text:
|
|
523
|
-
splitted = text.split(
|
|
557
|
+
splitted = text.split(";")
|
|
524
558
|
if len(splitted) >= 3:
|
|
525
|
-
if not py_db.disable_property_trace and splitted[0] ==
|
|
559
|
+
if not py_db.disable_property_trace and splitted[0] == "true":
|
|
526
560
|
# Replacing property by custom property only when the debugger starts
|
|
527
561
|
pydevd_traceproperty.replace_builtin_property()
|
|
528
562
|
py_db.disable_property_trace = True
|
|
529
563
|
# Enable/Disable tracing of the property getter
|
|
530
|
-
if splitted[1] ==
|
|
564
|
+
if splitted[1] == "true":
|
|
531
565
|
py_db.disable_property_getter_trace = True
|
|
532
566
|
else:
|
|
533
567
|
py_db.disable_property_getter_trace = False
|
|
534
568
|
# Enable/Disable tracing of the property setter
|
|
535
|
-
if splitted[2] ==
|
|
569
|
+
if splitted[2] == "true":
|
|
536
570
|
py_db.disable_property_setter_trace = True
|
|
537
571
|
else:
|
|
538
572
|
py_db.disable_property_setter_trace = False
|
|
539
573
|
# Enable/Disable tracing of the property deleter
|
|
540
|
-
if splitted[3] ==
|
|
574
|
+
if splitted[3] == "true":
|
|
541
575
|
py_db.disable_property_deleter_trace = True
|
|
542
576
|
else:
|
|
543
577
|
py_db.disable_property_deleter_trace = False
|
|
@@ -565,32 +599,42 @@ class _PyDevCommandProcessor(object):
|
|
|
565
599
|
|
|
566
600
|
condition = ""
|
|
567
601
|
expression = ""
|
|
568
|
-
if text.find(
|
|
602
|
+
if text.find("\t") != -1:
|
|
569
603
|
try:
|
|
570
|
-
|
|
604
|
+
(
|
|
605
|
+
exception,
|
|
606
|
+
condition,
|
|
607
|
+
expression,
|
|
608
|
+
notify_on_handled_exceptions,
|
|
609
|
+
notify_on_unhandled_exceptions,
|
|
610
|
+
ignore_libraries,
|
|
611
|
+
) = text.split("\t", 5)
|
|
571
612
|
except:
|
|
572
|
-
exception, notify_on_handled_exceptions, notify_on_unhandled_exceptions, ignore_libraries = text.split(
|
|
613
|
+
exception, notify_on_handled_exceptions, notify_on_unhandled_exceptions, ignore_libraries = text.split("\t", 3)
|
|
573
614
|
else:
|
|
574
615
|
exception, notify_on_handled_exceptions, notify_on_unhandled_exceptions, ignore_libraries = text, 0, 0, 0
|
|
575
616
|
|
|
576
|
-
condition = condition.replace("@_@NEW_LINE_CHAR@_@",
|
|
617
|
+
condition = condition.replace("@_@NEW_LINE_CHAR@_@", "\n").replace("@_@TAB_CHAR@_@", "\t").strip()
|
|
577
618
|
|
|
578
619
|
if condition is not None and (len(condition) == 0 or condition == "None"):
|
|
579
620
|
condition = None
|
|
580
621
|
|
|
581
|
-
expression = expression.replace("@_@NEW_LINE_CHAR@_@",
|
|
622
|
+
expression = expression.replace("@_@NEW_LINE_CHAR@_@", "\n").replace("@_@TAB_CHAR@_@", "\t").strip()
|
|
582
623
|
|
|
583
624
|
if expression is not None and (len(expression) == 0 or expression == "None"):
|
|
584
625
|
expression = None
|
|
585
626
|
|
|
586
|
-
if exception.find(
|
|
587
|
-
breakpoint_type, exception = exception.split(
|
|
627
|
+
if exception.find("-") != -1:
|
|
628
|
+
breakpoint_type, exception = exception.split("-")
|
|
588
629
|
else:
|
|
589
|
-
breakpoint_type =
|
|
630
|
+
breakpoint_type = "python"
|
|
590
631
|
|
|
591
|
-
if breakpoint_type ==
|
|
632
|
+
if breakpoint_type == "python":
|
|
592
633
|
self.api.add_python_exception_breakpoint(
|
|
593
|
-
py_db,
|
|
634
|
+
py_db,
|
|
635
|
+
exception,
|
|
636
|
+
condition,
|
|
637
|
+
expression,
|
|
594
638
|
notify_on_handled_exceptions=int(notify_on_handled_exceptions) > 0,
|
|
595
639
|
notify_on_unhandled_exceptions=int(notify_on_unhandled_exceptions) == 1,
|
|
596
640
|
notify_on_user_unhandled_exceptions=0, # TODO (not currently supported in this API).
|
|
@@ -602,41 +646,39 @@ class _PyDevCommandProcessor(object):
|
|
|
602
646
|
|
|
603
647
|
def cmd_remove_exception_break(self, py_db, cmd_id, seq, text):
|
|
604
648
|
exception = text
|
|
605
|
-
if exception.find(
|
|
606
|
-
exception_type, exception = exception.split(
|
|
649
|
+
if exception.find("-") != -1:
|
|
650
|
+
exception_type, exception = exception.split("-")
|
|
607
651
|
else:
|
|
608
|
-
exception_type =
|
|
652
|
+
exception_type = "python"
|
|
609
653
|
|
|
610
|
-
if exception_type ==
|
|
654
|
+
if exception_type == "python":
|
|
611
655
|
self.api.remove_python_exception_breakpoint(py_db, exception)
|
|
612
656
|
else:
|
|
613
657
|
self.api.remove_plugins_exception_breakpoint(py_db, exception_type, exception)
|
|
614
658
|
|
|
615
659
|
def cmd_add_django_exception_break(self, py_db, cmd_id, seq, text):
|
|
616
|
-
self.api.add_plugins_exception_breakpoint(py_db, breakpoint_type=
|
|
660
|
+
self.api.add_plugins_exception_breakpoint(py_db, breakpoint_type="django", exception=text)
|
|
617
661
|
|
|
618
662
|
def cmd_remove_django_exception_break(self, py_db, cmd_id, seq, text):
|
|
619
|
-
self.api.remove_plugins_exception_breakpoint(py_db, exception_type=
|
|
663
|
+
self.api.remove_plugins_exception_breakpoint(py_db, exception_type="django", exception=text)
|
|
620
664
|
|
|
621
665
|
def cmd_evaluate_console_expression(self, py_db, cmd_id, seq, text):
|
|
622
666
|
# Command which takes care for the debug console communication
|
|
623
667
|
if text != "":
|
|
624
|
-
thread_id, frame_id, console_command = text.split(
|
|
625
|
-
console_command, line = console_command.split(
|
|
668
|
+
thread_id, frame_id, console_command = text.split("\t", 2)
|
|
669
|
+
console_command, line = console_command.split("\t")
|
|
626
670
|
|
|
627
|
-
if console_command ==
|
|
628
|
-
int_cmd = InternalEvaluateConsoleExpression(
|
|
629
|
-
seq, thread_id, frame_id, line, buffer_output=True)
|
|
671
|
+
if console_command == "EVALUATE":
|
|
672
|
+
int_cmd = InternalEvaluateConsoleExpression(seq, thread_id, frame_id, line, buffer_output=True)
|
|
630
673
|
|
|
631
|
-
elif console_command ==
|
|
632
|
-
int_cmd = InternalEvaluateConsoleExpression(
|
|
633
|
-
seq, thread_id, frame_id, line, buffer_output=False)
|
|
674
|
+
elif console_command == "EVALUATE_UNBUFFERED":
|
|
675
|
+
int_cmd = InternalEvaluateConsoleExpression(seq, thread_id, frame_id, line, buffer_output=False)
|
|
634
676
|
|
|
635
|
-
elif console_command ==
|
|
677
|
+
elif console_command == "GET_COMPLETIONS":
|
|
636
678
|
int_cmd = InternalConsoleGetCompletions(seq, thread_id, frame_id, line)
|
|
637
679
|
|
|
638
680
|
else:
|
|
639
|
-
raise ValueError(
|
|
681
|
+
raise ValueError("Unrecognized command: %s" % (console_command,))
|
|
640
682
|
|
|
641
683
|
py_db.post_internal_command(int_cmd, thread_id)
|
|
642
684
|
|
|
@@ -644,36 +686,35 @@ class _PyDevCommandProcessor(object):
|
|
|
644
686
|
# Command which runs a custom operation
|
|
645
687
|
if text != "":
|
|
646
688
|
try:
|
|
647
|
-
location, custom = text.split(
|
|
689
|
+
location, custom = text.split("||", 1)
|
|
648
690
|
except:
|
|
649
|
-
sys.stderr.write(
|
|
691
|
+
sys.stderr.write("Custom operation now needs a || separator. Found: %s\n" % (text,))
|
|
650
692
|
raise
|
|
651
693
|
|
|
652
|
-
thread_id, frame_id, scopeattrs = location.split(
|
|
694
|
+
thread_id, frame_id, scopeattrs = location.split("\t", 2)
|
|
653
695
|
|
|
654
|
-
if scopeattrs.find(
|
|
655
|
-
scope, attrs = scopeattrs.split(
|
|
696
|
+
if scopeattrs.find("\t") != -1: # there are attributes beyond scope
|
|
697
|
+
scope, attrs = scopeattrs.split("\t", 1)
|
|
656
698
|
else:
|
|
657
699
|
scope, attrs = (scopeattrs, None)
|
|
658
700
|
|
|
659
701
|
# : style: EXECFILE or EXEC
|
|
660
702
|
# : encoded_code_or_file: file to execute or code
|
|
661
703
|
# : fname: name of function to be executed in the resulting namespace
|
|
662
|
-
style, encoded_code_or_file, fnname = custom.split(
|
|
663
|
-
int_cmd = InternalRunCustomOperation(seq, thread_id, frame_id, scope, attrs,
|
|
664
|
-
style, encoded_code_or_file, fnname)
|
|
704
|
+
style, encoded_code_or_file, fnname = custom.split("\t", 3)
|
|
705
|
+
int_cmd = InternalRunCustomOperation(seq, thread_id, frame_id, scope, attrs, style, encoded_code_or_file, fnname)
|
|
665
706
|
py_db.post_internal_command(int_cmd, thread_id)
|
|
666
707
|
|
|
667
708
|
def cmd_ignore_thrown_exception_at(self, py_db, cmd_id, seq, text):
|
|
668
709
|
if text:
|
|
669
|
-
replace =
|
|
710
|
+
replace = "REPLACE:" # Not all 3.x versions support u'REPLACE:', so, doing workaround.
|
|
670
711
|
if text.startswith(replace):
|
|
671
712
|
text = text[8:]
|
|
672
713
|
py_db.filename_to_lines_where_exceptions_are_ignored.clear()
|
|
673
714
|
|
|
674
715
|
if text:
|
|
675
|
-
for line in text.split(
|
|
676
|
-
original_filename, line_number = line.split(
|
|
716
|
+
for line in text.split("||"): # Can be bulk-created (one in each line)
|
|
717
|
+
original_filename, line_number = line.split("|")
|
|
677
718
|
original_filename = self.api.filename_to_server(original_filename)
|
|
678
719
|
|
|
679
720
|
canonical_normalized_filename = pydevd_file_utils.canonical_normalized_path(original_filename)
|
|
@@ -685,39 +726,48 @@ class _PyDevCommandProcessor(object):
|
|
|
685
726
|
lines_ignored = py_db.filename_to_lines_where_exceptions_are_ignored[canonical_normalized_filename] = {}
|
|
686
727
|
lines_ignored[int(line_number)] = 1
|
|
687
728
|
else:
|
|
688
|
-
sys.stderr.write(
|
|
689
|
-
|
|
729
|
+
sys.stderr.write(
|
|
730
|
+
"pydev debugger: warning: trying to ignore exception thrown"
|
|
731
|
+
" on file that does not exist: %s (will have no effect)\n" % (absolute_filename,)
|
|
732
|
+
)
|
|
690
733
|
|
|
691
734
|
def cmd_enable_dont_trace(self, py_db, cmd_id, seq, text):
|
|
692
735
|
if text:
|
|
693
|
-
true_str =
|
|
736
|
+
true_str = "true" # Not all 3.x versions support u'str', so, doing workaround.
|
|
694
737
|
mode = text.strip() == true_str
|
|
695
738
|
pydevd_dont_trace.trace_filter(mode)
|
|
696
739
|
|
|
697
740
|
def cmd_redirect_output(self, py_db, cmd_id, seq, text):
|
|
698
741
|
if text:
|
|
699
|
-
py_db.enable_output_redirection(
|
|
742
|
+
py_db.enable_output_redirection("STDOUT" in text, "STDERR" in text)
|
|
700
743
|
|
|
701
744
|
def cmd_get_next_statement_targets(self, py_db, cmd_id, seq, text):
|
|
702
|
-
thread_id, frame_id = text.split(
|
|
745
|
+
thread_id, frame_id = text.split("\t", 1)
|
|
703
746
|
|
|
704
|
-
py_db.post_method_as_internal_command(
|
|
705
|
-
thread_id, internal_get_next_statement_targets, seq, thread_id, frame_id)
|
|
747
|
+
py_db.post_method_as_internal_command(thread_id, internal_get_next_statement_targets, seq, thread_id, frame_id)
|
|
706
748
|
|
|
707
749
|
def cmd_get_smart_step_into_variants(self, py_db, cmd_id, seq, text):
|
|
708
|
-
thread_id, frame_id, start_line, end_line = text.split(
|
|
750
|
+
thread_id, frame_id, start_line, end_line = text.split("\t", 3)
|
|
709
751
|
|
|
710
752
|
py_db.post_method_as_internal_command(
|
|
711
|
-
thread_id,
|
|
753
|
+
thread_id,
|
|
754
|
+
internal_get_smart_step_into_variants,
|
|
755
|
+
seq,
|
|
756
|
+
thread_id,
|
|
757
|
+
frame_id,
|
|
758
|
+
start_line,
|
|
759
|
+
end_line,
|
|
760
|
+
set_additional_thread_info=set_additional_thread_info,
|
|
761
|
+
)
|
|
712
762
|
|
|
713
763
|
def cmd_set_project_roots(self, py_db, cmd_id, seq, text):
|
|
714
|
-
self.api.set_project_roots(py_db, text.split(
|
|
764
|
+
self.api.set_project_roots(py_db, text.split("\t"))
|
|
715
765
|
|
|
716
766
|
def cmd_thread_dump_to_stderr(self, py_db, cmd_id, seq, text):
|
|
717
767
|
pydevd_utils.dump_threads()
|
|
718
768
|
|
|
719
769
|
def cmd_stop_on_start(self, py_db, cmd_id, seq, text):
|
|
720
|
-
if text.strip() in (
|
|
770
|
+
if text.strip() in ("True", "true", "1"):
|
|
721
771
|
self.api.stop_on_entry()
|
|
722
772
|
|
|
723
773
|
def cmd_pydevd_json_config(self, py_db, cmd_id, seq, text):
|
|
@@ -728,22 +778,20 @@ class _PyDevCommandProcessor(object):
|
|
|
728
778
|
# 'multi_threads_single_notification': bool,
|
|
729
779
|
# }
|
|
730
780
|
msg = json.loads(text.strip())
|
|
731
|
-
if
|
|
732
|
-
py_db.skip_suspend_on_breakpoint_exception = tuple(
|
|
733
|
-
get_exception_class(x) for x in msg['skip_suspend_on_breakpoint_exception'])
|
|
781
|
+
if "skip_suspend_on_breakpoint_exception" in msg:
|
|
782
|
+
py_db.skip_suspend_on_breakpoint_exception = tuple(get_exception_class(x) for x in msg["skip_suspend_on_breakpoint_exception"])
|
|
734
783
|
|
|
735
|
-
if
|
|
736
|
-
py_db.skip_print_breakpoint_exception = tuple(
|
|
737
|
-
get_exception_class(x) for x in msg['skip_print_breakpoint_exception'])
|
|
784
|
+
if "skip_print_breakpoint_exception" in msg:
|
|
785
|
+
py_db.skip_print_breakpoint_exception = tuple(get_exception_class(x) for x in msg["skip_print_breakpoint_exception"])
|
|
738
786
|
|
|
739
|
-
if
|
|
740
|
-
py_db.multi_threads_single_notification = msg[
|
|
787
|
+
if "multi_threads_single_notification" in msg:
|
|
788
|
+
py_db.multi_threads_single_notification = msg["multi_threads_single_notification"]
|
|
741
789
|
|
|
742
790
|
def cmd_get_exception_details(self, py_db, cmd_id, seq, text):
|
|
743
791
|
thread_id = text
|
|
744
792
|
t = pydevd_find_thread_by_id(thread_id)
|
|
745
793
|
frame = None
|
|
746
|
-
if t is not None and not getattr(t,
|
|
794
|
+
if t is not None and not getattr(t, "pydev_do_not_trace", None):
|
|
747
795
|
additional_info = set_additional_thread_info(t)
|
|
748
796
|
frame = additional_info.get_topmost_frame(t)
|
|
749
797
|
try:
|
|
@@ -755,4 +803,3 @@ class _PyDevCommandProcessor(object):
|
|
|
755
803
|
|
|
756
804
|
|
|
757
805
|
process_net_command = _PyDevCommandProcessor().process_net_command
|
|
758
|
-
|