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
|
@@ -39,13 +39,12 @@ from __future__ import with_statement
|
|
|
39
39
|
|
|
40
40
|
__revision__ = "$Id$"
|
|
41
41
|
|
|
42
|
-
__all__ = [
|
|
42
|
+
__all__ = ["System"]
|
|
43
43
|
|
|
44
44
|
from winappdbg import win32
|
|
45
45
|
from winappdbg.registry import Registry
|
|
46
46
|
from winappdbg.textio import HexInput, HexDump
|
|
47
|
-
from winappdbg.util import Regenerator, PathOperations, MemoryAddresses, DebugRegister,
|
|
48
|
-
classproperty
|
|
47
|
+
from winappdbg.util import Regenerator, PathOperations, MemoryAddresses, DebugRegister, classproperty
|
|
49
48
|
from winappdbg.process import _ProcessContainer
|
|
50
49
|
from winappdbg.window import Window
|
|
51
50
|
|
|
@@ -56,9 +55,10 @@ import warnings
|
|
|
56
55
|
|
|
57
56
|
from os import path, getenv
|
|
58
57
|
|
|
59
|
-
|
|
58
|
+
# ==============================================================================
|
|
60
59
|
|
|
61
|
-
|
|
60
|
+
|
|
61
|
+
class System(_ProcessContainer):
|
|
62
62
|
"""
|
|
63
63
|
Interface to a batch of processes, plus some system wide settings.
|
|
64
64
|
Contains a snapshot of processes.
|
|
@@ -116,9 +116,9 @@ class System (_ProcessContainer):
|
|
|
116
116
|
@cvar registry: Windows Registry for this machine.
|
|
117
117
|
"""
|
|
118
118
|
|
|
119
|
-
arch
|
|
120
|
-
bits
|
|
121
|
-
os
|
|
119
|
+
arch = win32.arch
|
|
120
|
+
bits = win32.bits
|
|
121
|
+
os = win32.os
|
|
122
122
|
wow64 = win32.wow64
|
|
123
123
|
|
|
124
124
|
@classproperty
|
|
@@ -129,10 +129,10 @@ class System (_ProcessContainer):
|
|
|
129
129
|
|
|
130
130
|
registry = Registry()
|
|
131
131
|
|
|
132
|
-
|
|
132
|
+
# ------------------------------------------------------------------------------
|
|
133
133
|
|
|
134
134
|
@staticmethod
|
|
135
|
-
def find_window(className
|
|
135
|
+
def find_window(className=None, windowName=None):
|
|
136
136
|
"""
|
|
137
137
|
Find the first top-level window in the current desktop to match the
|
|
138
138
|
given class name and/or window name. If neither are provided any
|
|
@@ -180,7 +180,7 @@ class System (_ProcessContainer):
|
|
|
180
180
|
|
|
181
181
|
@raise WindowsError: An error occured while processing this request.
|
|
182
182
|
"""
|
|
183
|
-
return Window(
|
|
183
|
+
return Window(win32.WindowFromPoint((x, y)))
|
|
184
184
|
|
|
185
185
|
@staticmethod
|
|
186
186
|
def get_foreground_window():
|
|
@@ -189,7 +189,7 @@ class System (_ProcessContainer):
|
|
|
189
189
|
@return: Returns the foreground window.
|
|
190
190
|
@raise WindowsError: An error occured while processing this request.
|
|
191
191
|
"""
|
|
192
|
-
return Window(
|
|
192
|
+
return Window(win32.GetForegroundWindow())
|
|
193
193
|
|
|
194
194
|
@staticmethod
|
|
195
195
|
def get_desktop_window():
|
|
@@ -198,7 +198,7 @@ class System (_ProcessContainer):
|
|
|
198
198
|
@return: Returns the desktop window.
|
|
199
199
|
@raise WindowsError: An error occured while processing this request.
|
|
200
200
|
"""
|
|
201
|
-
return Window(
|
|
201
|
+
return Window(win32.GetDesktopWindow())
|
|
202
202
|
|
|
203
203
|
@staticmethod
|
|
204
204
|
def get_shell_window():
|
|
@@ -207,12 +207,12 @@ class System (_ProcessContainer):
|
|
|
207
207
|
@return: Returns the shell window.
|
|
208
208
|
@raise WindowsError: An error occured while processing this request.
|
|
209
209
|
"""
|
|
210
|
-
return Window(
|
|
210
|
+
return Window(win32.GetShellWindow())
|
|
211
211
|
|
|
212
|
-
|
|
212
|
+
# ------------------------------------------------------------------------------
|
|
213
213
|
|
|
214
214
|
@classmethod
|
|
215
|
-
def request_debug_privileges(cls, bIgnoreExceptions
|
|
215
|
+
def request_debug_privileges(cls, bIgnoreExceptions=False):
|
|
216
216
|
"""
|
|
217
217
|
Requests debug privileges.
|
|
218
218
|
|
|
@@ -238,7 +238,7 @@ class System (_ProcessContainer):
|
|
|
238
238
|
return False
|
|
239
239
|
|
|
240
240
|
@classmethod
|
|
241
|
-
def drop_debug_privileges(cls, bIgnoreExceptions
|
|
241
|
+
def drop_debug_privileges(cls, bIgnoreExceptions=False):
|
|
242
242
|
"""
|
|
243
243
|
Drops debug privileges.
|
|
244
244
|
|
|
@@ -300,9 +300,8 @@ class System (_ProcessContainer):
|
|
|
300
300
|
|
|
301
301
|
@raise WindowsError: Raises an exception on error.
|
|
302
302
|
"""
|
|
303
|
-
with win32.OpenProcessToken(win32.GetCurrentProcess(),
|
|
304
|
-
|
|
305
|
-
NewState = ( (priv, state) for priv in privileges )
|
|
303
|
+
with win32.OpenProcessToken(win32.GetCurrentProcess(), win32.TOKEN_ADJUST_PRIVILEGES) as hToken:
|
|
304
|
+
NewState = ((priv, state) for priv in privileges)
|
|
306
305
|
win32.AdjustTokenPrivileges(hToken, NewState)
|
|
307
306
|
|
|
308
307
|
@staticmethod
|
|
@@ -315,35 +314,35 @@ class System (_ProcessContainer):
|
|
|
315
314
|
"""
|
|
316
315
|
return win32.IsUserAnAdmin()
|
|
317
316
|
|
|
318
|
-
|
|
317
|
+
# ------------------------------------------------------------------------------
|
|
319
318
|
|
|
320
319
|
__binary_types = {
|
|
321
|
-
win32.VFT_APP:
|
|
322
|
-
win32.VFT_DLL:
|
|
320
|
+
win32.VFT_APP: "application",
|
|
321
|
+
win32.VFT_DLL: "dynamic link library",
|
|
323
322
|
win32.VFT_STATIC_LIB: "static link library",
|
|
324
|
-
win32.VFT_FONT:
|
|
325
|
-
win32.VFT_DRV:
|
|
326
|
-
win32.VFT_VXD:
|
|
323
|
+
win32.VFT_FONT: "font",
|
|
324
|
+
win32.VFT_DRV: "driver",
|
|
325
|
+
win32.VFT_VXD: "legacy driver",
|
|
327
326
|
}
|
|
328
327
|
|
|
329
328
|
__driver_types = {
|
|
330
|
-
win32.VFT2_DRV_COMM:
|
|
331
|
-
win32.VFT2_DRV_DISPLAY:
|
|
332
|
-
win32.VFT2_DRV_INSTALLABLE:
|
|
333
|
-
win32.VFT2_DRV_KEYBOARD:
|
|
334
|
-
win32.VFT2_DRV_LANGUAGE:
|
|
335
|
-
win32.VFT2_DRV_MOUSE:
|
|
336
|
-
win32.VFT2_DRV_NETWORK:
|
|
337
|
-
win32.VFT2_DRV_PRINTER:
|
|
338
|
-
win32.VFT2_DRV_SOUND:
|
|
339
|
-
win32.VFT2_DRV_SYSTEM:
|
|
340
|
-
win32.VFT2_DRV_VERSIONED_PRINTER:
|
|
329
|
+
win32.VFT2_DRV_COMM: "communications driver",
|
|
330
|
+
win32.VFT2_DRV_DISPLAY: "display driver",
|
|
331
|
+
win32.VFT2_DRV_INSTALLABLE: "installable driver",
|
|
332
|
+
win32.VFT2_DRV_KEYBOARD: "keyboard driver",
|
|
333
|
+
win32.VFT2_DRV_LANGUAGE: "language driver",
|
|
334
|
+
win32.VFT2_DRV_MOUSE: "mouse driver",
|
|
335
|
+
win32.VFT2_DRV_NETWORK: "network driver",
|
|
336
|
+
win32.VFT2_DRV_PRINTER: "printer driver",
|
|
337
|
+
win32.VFT2_DRV_SOUND: "sound driver",
|
|
338
|
+
win32.VFT2_DRV_SYSTEM: "system driver",
|
|
339
|
+
win32.VFT2_DRV_VERSIONED_PRINTER: "versioned printer driver",
|
|
341
340
|
}
|
|
342
341
|
|
|
343
342
|
__font_types = {
|
|
344
|
-
win32.VFT2_FONT_RASTER:
|
|
343
|
+
win32.VFT2_FONT_RASTER: "raster font",
|
|
345
344
|
win32.VFT2_FONT_TRUETYPE: "TrueType font",
|
|
346
|
-
win32.VFT2_FONT_VECTOR:
|
|
345
|
+
win32.VFT2_FONT_VECTOR: "vector font",
|
|
347
346
|
}
|
|
348
347
|
|
|
349
348
|
__months = (
|
|
@@ -420,17 +419,14 @@ class System (_ProcessContainer):
|
|
|
420
419
|
pBuffer, dwLen = win32.VerQueryValue(pBlock, "\\")
|
|
421
420
|
if dwLen != ctypes.sizeof(win32.VS_FIXEDFILEINFO):
|
|
422
421
|
raise ctypes.WinError(win32.ERROR_BAD_LENGTH)
|
|
423
|
-
pVersionInfo = ctypes.cast(pBuffer,
|
|
424
|
-
ctypes.POINTER(win32.VS_FIXEDFILEINFO))
|
|
422
|
+
pVersionInfo = ctypes.cast(pBuffer, ctypes.POINTER(win32.VS_FIXEDFILEINFO))
|
|
425
423
|
VersionInfo = pVersionInfo.contents
|
|
426
424
|
if VersionInfo.dwSignature != 0xFEEF04BD:
|
|
427
425
|
raise ctypes.WinError(win32.ERROR_BAD_ARGUMENTS)
|
|
428
426
|
|
|
429
427
|
# File and product versions.
|
|
430
|
-
FileVersion = "%d.%d" % (VersionInfo.dwFileVersionMS,
|
|
431
|
-
|
|
432
|
-
ProductVersion = "%d.%d" % (VersionInfo.dwProductVersionMS,
|
|
433
|
-
VersionInfo.dwProductVersionLS)
|
|
428
|
+
FileVersion = "%d.%d" % (VersionInfo.dwFileVersionMS, VersionInfo.dwFileVersionLS)
|
|
429
|
+
ProductVersion = "%d.%d" % (VersionInfo.dwProductVersionMS, VersionInfo.dwProductVersionLS)
|
|
434
430
|
|
|
435
431
|
# Debug build?
|
|
436
432
|
if VersionInfo.dwFileFlagsMask & win32.VS_FF_DEBUG:
|
|
@@ -439,7 +435,7 @@ class System (_ProcessContainer):
|
|
|
439
435
|
DebugBuild = None
|
|
440
436
|
|
|
441
437
|
# Legacy OS build?
|
|
442
|
-
LegacyBuild =
|
|
438
|
+
LegacyBuild = VersionInfo.dwFileOS != win32.VOS_NT_WINDOWS32
|
|
443
439
|
|
|
444
440
|
# File type.
|
|
445
441
|
FileType = cls.__binary_types.get(VersionInfo.dwFileType)
|
|
@@ -476,77 +472,53 @@ class System (_ProcessContainer):
|
|
|
476
472
|
CreationTimestamp,
|
|
477
473
|
)
|
|
478
474
|
|
|
479
|
-
|
|
475
|
+
# ------------------------------------------------------------------------------
|
|
480
476
|
|
|
481
477
|
# Locations for dbghelp.dll.
|
|
482
478
|
# Unfortunately, Microsoft started bundling WinDbg with the
|
|
483
479
|
# platform SDK, so the install directories may vary across
|
|
484
480
|
# versions and platforms.
|
|
485
481
|
__dbghelp_locations = {
|
|
486
|
-
|
|
487
482
|
# Intel 64 bits.
|
|
488
|
-
win32.ARCH_AMD64: set(
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
"Windows
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
"x64",
|
|
505
|
-
"dbghelp.dll"),
|
|
506
|
-
|
|
507
|
-
# Old standalone versions of WinDbg.
|
|
508
|
-
path.join(
|
|
509
|
-
getenv("ProgramFiles", "C:\\Program Files"),
|
|
510
|
-
"Debugging Tools for Windows (x64)",
|
|
511
|
-
"dbghelp.dll"),
|
|
512
|
-
]),
|
|
513
|
-
|
|
483
|
+
win32.ARCH_AMD64: set(
|
|
484
|
+
[
|
|
485
|
+
# WinDbg bundled with the SDK, version 8.0.
|
|
486
|
+
path.join(getenv("ProgramFiles", "C:\\Program Files"), "Windows Kits", "8.0", "Debuggers", "x64", "dbghelp.dll"),
|
|
487
|
+
path.join(
|
|
488
|
+
getenv("ProgramW6432", getenv("ProgramFiles", "C:\\Program Files")),
|
|
489
|
+
"Windows Kits",
|
|
490
|
+
"8.0",
|
|
491
|
+
"Debuggers",
|
|
492
|
+
"x64",
|
|
493
|
+
"dbghelp.dll",
|
|
494
|
+
),
|
|
495
|
+
# Old standalone versions of WinDbg.
|
|
496
|
+
path.join(getenv("ProgramFiles", "C:\\Program Files"), "Debugging Tools for Windows (x64)", "dbghelp.dll"),
|
|
497
|
+
]
|
|
498
|
+
),
|
|
514
499
|
# Intel 32 bits.
|
|
515
|
-
win32.ARCH_I386
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
"Windows
|
|
529
|
-
|
|
530
|
-
"
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
# Old standalone versions of WinDbg.
|
|
535
|
-
path.join(
|
|
536
|
-
getenv("ProgramFiles", "C:\\Program Files"),
|
|
537
|
-
"Debugging Tools for Windows (x86)",
|
|
538
|
-
"dbghelp.dll"),
|
|
539
|
-
|
|
540
|
-
# Version shipped with Windows.
|
|
541
|
-
path.join(
|
|
542
|
-
getenv("ProgramFiles", "C:\\Program Files"),
|
|
543
|
-
"Debugging Tools for Windows (x86)",
|
|
544
|
-
"dbghelp.dll"),
|
|
545
|
-
]),
|
|
500
|
+
win32.ARCH_I386: set(
|
|
501
|
+
[
|
|
502
|
+
# WinDbg bundled with the SDK, version 8.0.
|
|
503
|
+
path.join(getenv("ProgramFiles", "C:\\Program Files"), "Windows Kits", "8.0", "Debuggers", "x86", "dbghelp.dll"),
|
|
504
|
+
path.join(
|
|
505
|
+
getenv("ProgramW6432", getenv("ProgramFiles", "C:\\Program Files")),
|
|
506
|
+
"Windows Kits",
|
|
507
|
+
"8.0",
|
|
508
|
+
"Debuggers",
|
|
509
|
+
"x86",
|
|
510
|
+
"dbghelp.dll",
|
|
511
|
+
),
|
|
512
|
+
# Old standalone versions of WinDbg.
|
|
513
|
+
path.join(getenv("ProgramFiles", "C:\\Program Files"), "Debugging Tools for Windows (x86)", "dbghelp.dll"),
|
|
514
|
+
# Version shipped with Windows.
|
|
515
|
+
path.join(getenv("ProgramFiles", "C:\\Program Files"), "Debugging Tools for Windows (x86)", "dbghelp.dll"),
|
|
516
|
+
]
|
|
517
|
+
),
|
|
546
518
|
}
|
|
547
519
|
|
|
548
520
|
@classmethod
|
|
549
|
-
def load_dbghelp(cls, pathname
|
|
521
|
+
def load_dbghelp(cls, pathname=None):
|
|
550
522
|
"""
|
|
551
523
|
Load the specified version of the C{dbghelp.dll} library.
|
|
552
524
|
|
|
@@ -597,7 +569,6 @@ class System (_ProcessContainer):
|
|
|
597
569
|
|
|
598
570
|
# If an explicit pathname was not given, search for the library.
|
|
599
571
|
if not pathname:
|
|
600
|
-
|
|
601
572
|
# Under WOW64 we'll treat AMD64 as I386.
|
|
602
573
|
arch = win32.arch
|
|
603
574
|
if arch == win32.ARCH_AMD64 and win32.bits == 32:
|
|
@@ -606,7 +577,7 @@ class System (_ProcessContainer):
|
|
|
606
577
|
# Check if the architecture is supported.
|
|
607
578
|
if not arch in cls.__dbghelp_locations:
|
|
608
579
|
msg = "Architecture %s is not currently supported."
|
|
609
|
-
raise NotImplementedError(msg
|
|
580
|
+
raise NotImplementedError(msg % arch)
|
|
610
581
|
|
|
611
582
|
# Grab all versions of the library we can find.
|
|
612
583
|
found = []
|
|
@@ -621,7 +592,7 @@ class System (_ProcessContainer):
|
|
|
621
592
|
f_ver = p_ver
|
|
622
593
|
elif p_ver and p_ver > f_ver:
|
|
623
594
|
f_ver = p_ver
|
|
624
|
-
found.append(
|
|
595
|
+
found.append((f_ver, pathname))
|
|
625
596
|
|
|
626
597
|
# If we found any, use the newest version.
|
|
627
598
|
if found:
|
|
@@ -642,9 +613,7 @@ class System (_ProcessContainer):
|
|
|
642
613
|
return dbghelp
|
|
643
614
|
|
|
644
615
|
@staticmethod
|
|
645
|
-
def fix_symbol_store_path(symbol_store_path =
|
|
646
|
-
remote = True,
|
|
647
|
-
force = False):
|
|
616
|
+
def fix_symbol_store_path(symbol_store_path=None, remote=True, force=False):
|
|
648
617
|
"""
|
|
649
618
|
Fix the symbol store path. Equivalent to the C{.symfix} command in
|
|
650
619
|
Microsoft WinDbg.
|
|
@@ -716,12 +685,7 @@ class System (_ProcessContainer):
|
|
|
716
685
|
if not path.isdir(local_path):
|
|
717
686
|
local_path = path.abspath(".")
|
|
718
687
|
if remote:
|
|
719
|
-
symbol_store_path =
|
|
720
|
-
"cache*;SRV*"
|
|
721
|
-
+ local_path +
|
|
722
|
-
"*"
|
|
723
|
-
"http://msdl.microsoft.com/download/symbols"
|
|
724
|
-
)
|
|
688
|
+
symbol_store_path = "cache*;SRV*" + local_path + "*" "http://msdl.microsoft.com/download/symbols"
|
|
725
689
|
else:
|
|
726
690
|
symbol_store_path = "cache*;SRV*" + local_path
|
|
727
691
|
previous = os.environ.get("_NT_SYMBOL_PATH", None)
|
|
@@ -730,13 +694,12 @@ class System (_ProcessContainer):
|
|
|
730
694
|
return previous
|
|
731
695
|
except Exception:
|
|
732
696
|
e = sys.exc_info()[1]
|
|
733
|
-
warnings.warn("Cannot fix symbol path, reason: %s" % str(e),
|
|
734
|
-
RuntimeWarning)
|
|
697
|
+
warnings.warn("Cannot fix symbol path, reason: %s" % str(e), RuntimeWarning)
|
|
735
698
|
|
|
736
|
-
|
|
699
|
+
# ------------------------------------------------------------------------------
|
|
737
700
|
|
|
738
701
|
@staticmethod
|
|
739
|
-
def set_kill_on_exit_mode(bKillOnExit
|
|
702
|
+
def set_kill_on_exit_mode(bKillOnExit=False):
|
|
740
703
|
"""
|
|
741
704
|
Defines the behavior of the debugged processes when the debugging
|
|
742
705
|
thread dies. This method only affects the calling thread.
|
|
@@ -793,14 +756,11 @@ class System (_ProcessContainer):
|
|
|
793
756
|
It works on my machine, but your mileage may vary.
|
|
794
757
|
"""
|
|
795
758
|
if win32.arch not in (win32.ARCH_I386, win32.ARCH_AMD64):
|
|
796
|
-
raise NotImplementedError(
|
|
797
|
-
|
|
798
|
-
msr = win32.SYSDBG_MSR()
|
|
759
|
+
raise NotImplementedError("MSR reading is only supported on i386 or amd64 processors.")
|
|
760
|
+
msr = win32.SYSDBG_MSR()
|
|
799
761
|
msr.Address = address
|
|
800
|
-
msr.Data
|
|
801
|
-
win32.NtSystemDebugControl(win32.SysDbgReadMsr,
|
|
802
|
-
InputBuffer = msr,
|
|
803
|
-
OutputBuffer = msr)
|
|
762
|
+
msr.Data = 0
|
|
763
|
+
win32.NtSystemDebugControl(win32.SysDbgReadMsr, InputBuffer=msr, OutputBuffer=msr)
|
|
804
764
|
return msr.Data
|
|
805
765
|
|
|
806
766
|
@staticmethod
|
|
@@ -825,12 +785,11 @@ class System (_ProcessContainer):
|
|
|
825
785
|
It works on my machine, but your mileage may vary.
|
|
826
786
|
"""
|
|
827
787
|
if win32.arch not in (win32.ARCH_I386, win32.ARCH_AMD64):
|
|
828
|
-
raise NotImplementedError(
|
|
829
|
-
|
|
830
|
-
msr = win32.SYSDBG_MSR()
|
|
788
|
+
raise NotImplementedError("MSR writing is only supported on i386 or amd64 processors.")
|
|
789
|
+
msr = win32.SYSDBG_MSR()
|
|
831
790
|
msr.Address = address
|
|
832
|
-
msr.Data
|
|
833
|
-
win32.NtSystemDebugControl(win32.SysDbgWriteMsr, InputBuffer
|
|
791
|
+
msr.Data = value
|
|
792
|
+
win32.NtSystemDebugControl(win32.SysDbgWriteMsr, InputBuffer=msr)
|
|
834
793
|
|
|
835
794
|
@classmethod
|
|
836
795
|
def enable_step_on_branch_mode(cls):
|
|
@@ -855,8 +814,7 @@ class System (_ProcessContainer):
|
|
|
855
814
|
Maybe it fails in other virtualization/emulation environments,
|
|
856
815
|
no extensive testing was made so far.
|
|
857
816
|
"""
|
|
858
|
-
cls.write_msr(DebugRegister.DebugCtlMSR,
|
|
859
|
-
DebugRegister.BranchTrapFlag | DebugRegister.LastBranchRecord)
|
|
817
|
+
cls.write_msr(DebugRegister.DebugCtlMSR, DebugRegister.BranchTrapFlag | DebugRegister.LastBranchRecord)
|
|
860
818
|
|
|
861
819
|
@classmethod
|
|
862
820
|
def get_last_branch_location(cls):
|
|
@@ -883,13 +841,13 @@ class System (_ProcessContainer):
|
|
|
883
841
|
no extensive testing was made so far.
|
|
884
842
|
"""
|
|
885
843
|
LastBranchFromIP = cls.read_msr(DebugRegister.LastBranchFromIP)
|
|
886
|
-
LastBranchToIP
|
|
887
|
-
return (
|
|
844
|
+
LastBranchToIP = cls.read_msr(DebugRegister.LastBranchToIP)
|
|
845
|
+
return (LastBranchFromIP, LastBranchToIP)
|
|
888
846
|
|
|
889
|
-
|
|
847
|
+
# ------------------------------------------------------------------------------
|
|
890
848
|
|
|
891
849
|
@classmethod
|
|
892
|
-
def get_postmortem_debugger(cls, bits
|
|
850
|
+
def get_postmortem_debugger(cls, bits=None):
|
|
893
851
|
"""
|
|
894
852
|
Returns the postmortem debugging settings from the Registry.
|
|
895
853
|
|
|
@@ -915,15 +873,15 @@ class System (_ProcessContainer):
|
|
|
915
873
|
raise NotImplementedError("Unknown architecture (%r bits)" % bits)
|
|
916
874
|
|
|
917
875
|
if bits == 32 and cls.bits == 64:
|
|
918
|
-
keyname =
|
|
876
|
+
keyname = "HKLM\\SOFTWARE\\Wow6432Node\\Microsoft\\Windows NT\\CurrentVersion\\AeDebug"
|
|
919
877
|
else:
|
|
920
|
-
keyname =
|
|
878
|
+
keyname = "HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AeDebug"
|
|
921
879
|
|
|
922
880
|
key = cls.registry[keyname]
|
|
923
881
|
|
|
924
|
-
debugger = key.get(
|
|
925
|
-
auto
|
|
926
|
-
hotkey
|
|
882
|
+
debugger = key.get("Debugger")
|
|
883
|
+
auto = key.get("Auto")
|
|
884
|
+
hotkey = key.get("UserDebuggerHotkey")
|
|
927
885
|
|
|
928
886
|
if auto is not None:
|
|
929
887
|
auto = bool(auto)
|
|
@@ -931,7 +889,7 @@ class System (_ProcessContainer):
|
|
|
931
889
|
return (debugger, auto, hotkey)
|
|
932
890
|
|
|
933
891
|
@classmethod
|
|
934
|
-
def get_postmortem_exclusion_list(cls, bits
|
|
892
|
+
def get_postmortem_exclusion_list(cls, bits=None):
|
|
935
893
|
"""
|
|
936
894
|
Returns the exclusion list for the postmortem debugger.
|
|
937
895
|
|
|
@@ -953,9 +911,9 @@ class System (_ProcessContainer):
|
|
|
953
911
|
raise NotImplementedError("Unknown architecture (%r bits)" % bits)
|
|
954
912
|
|
|
955
913
|
if bits == 32 and cls.bits == 64:
|
|
956
|
-
keyname =
|
|
914
|
+
keyname = "HKLM\\SOFTWARE\\Wow6432Node\\Microsoft\\Windows NT\\CurrentVersion\\AeDebug\\AutoExclusionList"
|
|
957
915
|
else:
|
|
958
|
-
keyname =
|
|
916
|
+
keyname = "HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AeDebug\\AutoExclusionList"
|
|
959
917
|
|
|
960
918
|
try:
|
|
961
919
|
key = cls.registry[keyname]
|
|
@@ -965,8 +923,7 @@ class System (_ProcessContainer):
|
|
|
965
923
|
return [name for (name, enabled) in key.items() if enabled]
|
|
966
924
|
|
|
967
925
|
@classmethod
|
|
968
|
-
def set_postmortem_debugger(cls, cmdline,
|
|
969
|
-
auto = None, hotkey = None, bits = None):
|
|
926
|
+
def set_postmortem_debugger(cls, cmdline, auto=None, hotkey=None, bits=None):
|
|
970
927
|
"""
|
|
971
928
|
Sets the postmortem debugging settings in the Registry.
|
|
972
929
|
|
|
@@ -1007,21 +964,21 @@ class System (_ProcessContainer):
|
|
|
1007
964
|
raise NotImplementedError("Unknown architecture (%r bits)" % bits)
|
|
1008
965
|
|
|
1009
966
|
if bits == 32 and cls.bits == 64:
|
|
1010
|
-
keyname =
|
|
967
|
+
keyname = "HKLM\\SOFTWARE\\Wow6432Node\\Microsoft\\Windows NT\\CurrentVersion\\AeDebug"
|
|
1011
968
|
else:
|
|
1012
|
-
keyname =
|
|
969
|
+
keyname = "HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AeDebug"
|
|
1013
970
|
|
|
1014
971
|
key = cls.registry[keyname]
|
|
1015
972
|
|
|
1016
973
|
if cmdline is not None:
|
|
1017
|
-
key[
|
|
974
|
+
key["Debugger"] = cmdline
|
|
1018
975
|
if auto is not None:
|
|
1019
|
-
key[
|
|
976
|
+
key["Auto"] = int(bool(auto))
|
|
1020
977
|
if hotkey is not None:
|
|
1021
|
-
key[
|
|
978
|
+
key["UserDebuggerHotkey"] = int(hotkey)
|
|
1022
979
|
|
|
1023
980
|
@classmethod
|
|
1024
|
-
def add_to_postmortem_exclusion_list(cls, pathname, bits
|
|
981
|
+
def add_to_postmortem_exclusion_list(cls, pathname, bits=None):
|
|
1025
982
|
"""
|
|
1026
983
|
Adds the given filename to the exclusion list for postmortem debugging.
|
|
1027
984
|
|
|
@@ -1046,9 +1003,9 @@ class System (_ProcessContainer):
|
|
|
1046
1003
|
raise NotImplementedError("Unknown architecture (%r bits)" % bits)
|
|
1047
1004
|
|
|
1048
1005
|
if bits == 32 and cls.bits == 64:
|
|
1049
|
-
keyname =
|
|
1006
|
+
keyname = "HKLM\\SOFTWARE\\Wow6432Node\\Microsoft\\Windows NT\\CurrentVersion\\AeDebug\\AutoExclusionList"
|
|
1050
1007
|
else:
|
|
1051
|
-
keyname =
|
|
1008
|
+
keyname = "HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AeDebug\\AutoExclusionList"
|
|
1052
1009
|
|
|
1053
1010
|
try:
|
|
1054
1011
|
key = cls.registry[keyname]
|
|
@@ -1058,7 +1015,7 @@ class System (_ProcessContainer):
|
|
|
1058
1015
|
key[pathname] = 1
|
|
1059
1016
|
|
|
1060
1017
|
@classmethod
|
|
1061
|
-
def remove_from_postmortem_exclusion_list(cls, pathname, bits
|
|
1018
|
+
def remove_from_postmortem_exclusion_list(cls, pathname, bits=None):
|
|
1062
1019
|
"""
|
|
1063
1020
|
Removes the given filename to the exclusion list for postmortem
|
|
1064
1021
|
debugging from the Registry.
|
|
@@ -1091,9 +1048,9 @@ class System (_ProcessContainer):
|
|
|
1091
1048
|
raise NotImplementedError("Unknown architecture (%r bits)" % bits)
|
|
1092
1049
|
|
|
1093
1050
|
if bits == 32 and cls.bits == 64:
|
|
1094
|
-
keyname =
|
|
1051
|
+
keyname = "HKLM\\SOFTWARE\\Wow6432Node\\Microsoft\\Windows NT\\CurrentVersion\\AeDebug\\AutoExclusionList"
|
|
1095
1052
|
else:
|
|
1096
|
-
keyname =
|
|
1053
|
+
keyname = "HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AeDebug\\AutoExclusionList"
|
|
1097
1054
|
|
|
1098
1055
|
try:
|
|
1099
1056
|
key = cls.registry[keyname]
|
|
@@ -1105,7 +1062,7 @@ class System (_ProcessContainer):
|
|
|
1105
1062
|
except KeyError:
|
|
1106
1063
|
return
|
|
1107
1064
|
|
|
1108
|
-
|
|
1065
|
+
# ------------------------------------------------------------------------------
|
|
1109
1066
|
|
|
1110
1067
|
@staticmethod
|
|
1111
1068
|
def get_services():
|
|
@@ -1119,13 +1076,11 @@ class System (_ProcessContainer):
|
|
|
1119
1076
|
@rtype: list( L{win32.ServiceStatusProcessEntry} )
|
|
1120
1077
|
@return: List of service status descriptors.
|
|
1121
1078
|
"""
|
|
1122
|
-
with win32.OpenSCManager(
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
except AttributeError:
|
|
1128
|
-
return win32.EnumServicesStatus(hSCManager)
|
|
1079
|
+
with win32.OpenSCManager(dwDesiredAccess=win32.SC_MANAGER_ENUMERATE_SERVICE) as hSCManager:
|
|
1080
|
+
try:
|
|
1081
|
+
return win32.EnumServicesStatusEx(hSCManager)
|
|
1082
|
+
except AttributeError:
|
|
1083
|
+
return win32.EnumServicesStatus(hSCManager)
|
|
1129
1084
|
|
|
1130
1085
|
@staticmethod
|
|
1131
1086
|
def get_active_services():
|
|
@@ -1139,13 +1094,12 @@ class System (_ProcessContainer):
|
|
|
1139
1094
|
@rtype: list( L{win32.ServiceStatusProcessEntry} )
|
|
1140
1095
|
@return: List of service status descriptors.
|
|
1141
1096
|
"""
|
|
1142
|
-
with win32.OpenSCManager(
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
if entry.ProcessId ]
|
|
1097
|
+
with win32.OpenSCManager(dwDesiredAccess=win32.SC_MANAGER_ENUMERATE_SERVICE) as hSCManager:
|
|
1098
|
+
return [
|
|
1099
|
+
entry
|
|
1100
|
+
for entry in win32.EnumServicesStatusEx(hSCManager, dwServiceType=win32.SERVICE_WIN32, dwServiceState=win32.SERVICE_ACTIVE)
|
|
1101
|
+
if entry.ProcessId
|
|
1102
|
+
]
|
|
1149
1103
|
|
|
1150
1104
|
@staticmethod
|
|
1151
1105
|
def get_service(name):
|
|
@@ -1163,12 +1117,8 @@ class System (_ProcessContainer):
|
|
|
1163
1117
|
@rtype: L{win32.ServiceStatusProcess}
|
|
1164
1118
|
@return: Service status descriptor.
|
|
1165
1119
|
"""
|
|
1166
|
-
with win32.OpenSCManager(
|
|
1167
|
-
dwDesiredAccess
|
|
1168
|
-
) as hSCManager:
|
|
1169
|
-
with win32.OpenService(hSCManager, name,
|
|
1170
|
-
dwDesiredAccess = win32.SERVICE_QUERY_STATUS
|
|
1171
|
-
) as hService:
|
|
1120
|
+
with win32.OpenSCManager(dwDesiredAccess=win32.SC_MANAGER_ENUMERATE_SERVICE) as hSCManager:
|
|
1121
|
+
with win32.OpenService(hSCManager, name, dwDesiredAccess=win32.SERVICE_QUERY_STATUS) as hService:
|
|
1172
1122
|
try:
|
|
1173
1123
|
return win32.QueryServiceStatusEx(hService)
|
|
1174
1124
|
except AttributeError:
|
|
@@ -1189,9 +1139,7 @@ class System (_ProcessContainer):
|
|
|
1189
1139
|
@rtype: str
|
|
1190
1140
|
@return: Service display name.
|
|
1191
1141
|
"""
|
|
1192
|
-
with win32.OpenSCManager(
|
|
1193
|
-
dwDesiredAccess = win32.SC_MANAGER_ENUMERATE_SERVICE
|
|
1194
|
-
) as hSCManager:
|
|
1142
|
+
with win32.OpenSCManager(dwDesiredAccess=win32.SC_MANAGER_ENUMERATE_SERVICE) as hSCManager:
|
|
1195
1143
|
return win32.GetServiceDisplayName(hSCManager, name)
|
|
1196
1144
|
|
|
1197
1145
|
@staticmethod
|
|
@@ -1209,13 +1157,11 @@ class System (_ProcessContainer):
|
|
|
1209
1157
|
@rtype: str
|
|
1210
1158
|
@return: Service unique name.
|
|
1211
1159
|
"""
|
|
1212
|
-
with win32.OpenSCManager(
|
|
1213
|
-
dwDesiredAccess = win32.SC_MANAGER_ENUMERATE_SERVICE
|
|
1214
|
-
) as hSCManager:
|
|
1160
|
+
with win32.OpenSCManager(dwDesiredAccess=win32.SC_MANAGER_ENUMERATE_SERVICE) as hSCManager:
|
|
1215
1161
|
return win32.GetServiceKeyName(hSCManager, displayName)
|
|
1216
1162
|
|
|
1217
1163
|
@staticmethod
|
|
1218
|
-
def start_service(name, argv
|
|
1164
|
+
def start_service(name, argv=None):
|
|
1219
1165
|
"""
|
|
1220
1166
|
Start the service given by name.
|
|
1221
1167
|
|
|
@@ -1228,12 +1174,8 @@ class System (_ProcessContainer):
|
|
|
1228
1174
|
C{ServiceName} member of the service descriptors returned by
|
|
1229
1175
|
L{get_services} or L{get_active_services}.
|
|
1230
1176
|
"""
|
|
1231
|
-
with win32.OpenSCManager(
|
|
1232
|
-
dwDesiredAccess
|
|
1233
|
-
) as hSCManager:
|
|
1234
|
-
with win32.OpenService(hSCManager, name,
|
|
1235
|
-
dwDesiredAccess = win32.SERVICE_START
|
|
1236
|
-
) as hService:
|
|
1177
|
+
with win32.OpenSCManager(dwDesiredAccess=win32.SC_MANAGER_CONNECT) as hSCManager:
|
|
1178
|
+
with win32.OpenService(hSCManager, name, dwDesiredAccess=win32.SERVICE_START) as hService:
|
|
1237
1179
|
win32.StartService(hService)
|
|
1238
1180
|
|
|
1239
1181
|
@staticmethod
|
|
@@ -1246,12 +1188,8 @@ class System (_ProcessContainer):
|
|
|
1246
1188
|
@see: L{get_services}, L{get_active_services},
|
|
1247
1189
|
L{start_service}, L{pause_service}, L{resume_service}
|
|
1248
1190
|
"""
|
|
1249
|
-
with win32.OpenSCManager(
|
|
1250
|
-
dwDesiredAccess
|
|
1251
|
-
) as hSCManager:
|
|
1252
|
-
with win32.OpenService(hSCManager, name,
|
|
1253
|
-
dwDesiredAccess = win32.SERVICE_STOP
|
|
1254
|
-
) as hService:
|
|
1191
|
+
with win32.OpenSCManager(dwDesiredAccess=win32.SC_MANAGER_CONNECT) as hSCManager:
|
|
1192
|
+
with win32.OpenService(hSCManager, name, dwDesiredAccess=win32.SERVICE_STOP) as hService:
|
|
1255
1193
|
win32.ControlService(hService, win32.SERVICE_CONTROL_STOP)
|
|
1256
1194
|
|
|
1257
1195
|
@staticmethod
|
|
@@ -1266,12 +1204,8 @@ class System (_ProcessContainer):
|
|
|
1266
1204
|
@see: L{get_services}, L{get_active_services},
|
|
1267
1205
|
L{start_service}, L{stop_service}, L{resume_service}
|
|
1268
1206
|
"""
|
|
1269
|
-
with win32.OpenSCManager(
|
|
1270
|
-
dwDesiredAccess
|
|
1271
|
-
) as hSCManager:
|
|
1272
|
-
with win32.OpenService(hSCManager, name,
|
|
1273
|
-
dwDesiredAccess = win32.SERVICE_PAUSE_CONTINUE
|
|
1274
|
-
) as hService:
|
|
1207
|
+
with win32.OpenSCManager(dwDesiredAccess=win32.SC_MANAGER_CONNECT) as hSCManager:
|
|
1208
|
+
with win32.OpenService(hSCManager, name, dwDesiredAccess=win32.SERVICE_PAUSE_CONTINUE) as hService:
|
|
1275
1209
|
win32.ControlService(hService, win32.SERVICE_CONTROL_PAUSE)
|
|
1276
1210
|
|
|
1277
1211
|
@staticmethod
|
|
@@ -1286,12 +1220,8 @@ class System (_ProcessContainer):
|
|
|
1286
1220
|
@see: L{get_services}, L{get_active_services},
|
|
1287
1221
|
L{start_service}, L{stop_service}, L{pause_service}
|
|
1288
1222
|
"""
|
|
1289
|
-
with win32.OpenSCManager(
|
|
1290
|
-
dwDesiredAccess
|
|
1291
|
-
) as hSCManager:
|
|
1292
|
-
with win32.OpenService(hSCManager, name,
|
|
1293
|
-
dwDesiredAccess = win32.SERVICE_PAUSE_CONTINUE
|
|
1294
|
-
) as hService:
|
|
1223
|
+
with win32.OpenSCManager(dwDesiredAccess=win32.SC_MANAGER_CONNECT) as hSCManager:
|
|
1224
|
+
with win32.OpenService(hSCManager, name, dwDesiredAccess=win32.SERVICE_PAUSE_CONTINUE) as hService:
|
|
1295
1225
|
win32.ControlService(hService, win32.SERVICE_CONTROL_CONTINUE)
|
|
1296
1226
|
|
|
1297
1227
|
# TODO: create_service, delete_service
|