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
|
@@ -41,17 +41,17 @@ import ctypes
|
|
|
41
41
|
import functools
|
|
42
42
|
from winappdbg import compat
|
|
43
43
|
|
|
44
|
-
|
|
44
|
+
# ------------------------------------------------------------------------------
|
|
45
45
|
|
|
46
46
|
# Some stuff from ctypes we'll be using very frequently.
|
|
47
|
-
addressof
|
|
48
|
-
sizeof
|
|
49
|
-
SIZEOF
|
|
50
|
-
POINTER
|
|
51
|
-
Structure
|
|
52
|
-
Union
|
|
47
|
+
addressof = ctypes.addressof
|
|
48
|
+
sizeof = ctypes.sizeof
|
|
49
|
+
SIZEOF = ctypes.sizeof
|
|
50
|
+
POINTER = ctypes.POINTER
|
|
51
|
+
Structure = ctypes.Structure
|
|
52
|
+
Union = ctypes.Union
|
|
53
53
|
WINFUNCTYPE = ctypes.WINFUNCTYPE
|
|
54
|
-
windll
|
|
54
|
+
windll = ctypes.windll
|
|
55
55
|
|
|
56
56
|
# The IronPython implementation of byref() was giving me problems,
|
|
57
57
|
# so I'm replacing it with the slower pointer() function.
|
|
@@ -73,7 +73,7 @@ if WIN32_VERBOSE_MODE:
|
|
|
73
73
|
|
|
74
74
|
class WinDllHook(object):
|
|
75
75
|
def __getattr__(self, name):
|
|
76
|
-
if name.startswith(
|
|
76
|
+
if name.startswith("_"):
|
|
77
77
|
return object.__getattr__(self, name)
|
|
78
78
|
return WinFuncHook(name)
|
|
79
79
|
|
|
@@ -82,7 +82,7 @@ if WIN32_VERBOSE_MODE:
|
|
|
82
82
|
self.__name = name
|
|
83
83
|
|
|
84
84
|
def __getattr__(self, name):
|
|
85
|
-
if name.startswith(
|
|
85
|
+
if name.startswith("_"):
|
|
86
86
|
return object.__getattr__(self, name)
|
|
87
87
|
return WinCallHook(self.__name, name)
|
|
88
88
|
|
|
@@ -103,10 +103,10 @@ if WIN32_VERBOSE_MODE:
|
|
|
103
103
|
pass
|
|
104
104
|
|
|
105
105
|
def __call__(self, *argv):
|
|
106
|
-
self.__copy_attribute(
|
|
107
|
-
self.__copy_attribute(
|
|
108
|
-
self.__copy_attribute(
|
|
109
|
-
print("-"*10)
|
|
106
|
+
self.__copy_attribute("argtypes")
|
|
107
|
+
self.__copy_attribute("restype")
|
|
108
|
+
self.__copy_attribute("errcheck")
|
|
109
|
+
print("-" * 10)
|
|
110
110
|
print("%s ! %s %r" % (self.__dllname, self.__funcname, argv))
|
|
111
111
|
retval = self.__func(*argv)
|
|
112
112
|
print("== %r" % (retval,))
|
|
@@ -114,13 +114,14 @@ if WIN32_VERBOSE_MODE:
|
|
|
114
114
|
|
|
115
115
|
windll = WinDllHook()
|
|
116
116
|
|
|
117
|
-
|
|
117
|
+
# ==============================================================================
|
|
118
118
|
# This is used later on to calculate the list of exported symbols.
|
|
119
119
|
_all = None
|
|
120
120
|
_all = set(vars().keys())
|
|
121
|
-
|
|
121
|
+
# ==============================================================================
|
|
122
122
|
|
|
123
|
-
|
|
123
|
+
|
|
124
|
+
def RaiseIfZero(result, func=None, arguments=()):
|
|
124
125
|
"""
|
|
125
126
|
Error checking for most Win32 API calls.
|
|
126
127
|
|
|
@@ -131,7 +132,8 @@ def RaiseIfZero(result, func = None, arguments = ()):
|
|
|
131
132
|
raise ctypes.WinError()
|
|
132
133
|
return result
|
|
133
134
|
|
|
134
|
-
|
|
135
|
+
|
|
136
|
+
def RaiseIfNotZero(result, func=None, arguments=()):
|
|
135
137
|
"""
|
|
136
138
|
Error checking for some odd Win32 API calls.
|
|
137
139
|
|
|
@@ -145,7 +147,8 @@ def RaiseIfNotZero(result, func = None, arguments = ()):
|
|
|
145
147
|
raise ctypes.WinError()
|
|
146
148
|
return result
|
|
147
149
|
|
|
148
|
-
|
|
150
|
+
|
|
151
|
+
def RaiseIfNotErrorSuccess(result, func=None, arguments=()):
|
|
149
152
|
"""
|
|
150
153
|
Error checking for Win32 Registry API calls.
|
|
151
154
|
|
|
@@ -156,6 +159,7 @@ def RaiseIfNotErrorSuccess(result, func = None, arguments = ()):
|
|
|
156
159
|
raise ctypes.WinError(result)
|
|
157
160
|
return result
|
|
158
161
|
|
|
162
|
+
|
|
159
163
|
class GuessStringType(object):
|
|
160
164
|
"""
|
|
161
165
|
Decorator that guesses the correct version (A or W) to call
|
|
@@ -181,8 +185,8 @@ class GuessStringType(object):
|
|
|
181
185
|
"""
|
|
182
186
|
|
|
183
187
|
# ANSI and Unicode types
|
|
184
|
-
t_ansi
|
|
185
|
-
t_unicode = type(
|
|
188
|
+
t_ansi = type("")
|
|
189
|
+
t_unicode = type("")
|
|
186
190
|
|
|
187
191
|
# Default is ANSI for Python 2.x
|
|
188
192
|
t_default = t_ansi
|
|
@@ -194,7 +198,7 @@ class GuessStringType(object):
|
|
|
194
198
|
@type fn_unicode: function
|
|
195
199
|
@param fn_unicode: Unicode (wide) version of the API function to call.
|
|
196
200
|
"""
|
|
197
|
-
self.fn_ansi
|
|
201
|
+
self.fn_ansi = fn_ansi
|
|
198
202
|
self.fn_unicode = fn_unicode
|
|
199
203
|
|
|
200
204
|
# Copy the wrapped function attributes.
|
|
@@ -212,13 +216,12 @@ class GuessStringType(object):
|
|
|
212
216
|
pass
|
|
213
217
|
|
|
214
218
|
def __call__(self, *argv, **argd):
|
|
215
|
-
|
|
216
219
|
# Shortcut to self.t_ansi
|
|
217
|
-
t_ansi
|
|
220
|
+
t_ansi = self.t_ansi
|
|
218
221
|
|
|
219
222
|
# Get the types of all arguments for the function
|
|
220
|
-
v_types
|
|
221
|
-
v_types.extend(
|
|
223
|
+
v_types = [type(item) for item in argv]
|
|
224
|
+
v_types.extend([type(value) for (key, value) in compat.iteritems(argd)])
|
|
222
225
|
|
|
223
226
|
# Get the appropriate function for the default type
|
|
224
227
|
if self.t_default == t_ansi:
|
|
@@ -228,7 +231,6 @@ class GuessStringType(object):
|
|
|
228
231
|
|
|
229
232
|
# If at least one argument is a Unicode string...
|
|
230
233
|
if self.t_unicode in v_types:
|
|
231
|
-
|
|
232
234
|
# If al least one argument is an ANSI string,
|
|
233
235
|
# convert all ANSI strings to Unicode
|
|
234
236
|
if t_ansi in v_types:
|
|
@@ -236,7 +238,7 @@ class GuessStringType(object):
|
|
|
236
238
|
for index in compat.xrange(len(argv)):
|
|
237
239
|
if v_types[index] == t_ansi:
|
|
238
240
|
argv[index] = compat.unicode(argv[index])
|
|
239
|
-
for
|
|
241
|
+
for key, value in argd.items():
|
|
240
242
|
if type(value) == t_ansi:
|
|
241
243
|
argd[key] = compat.unicode(value)
|
|
242
244
|
|
|
@@ -246,13 +248,13 @@ class GuessStringType(object):
|
|
|
246
248
|
# If at least one argument is an ANSI string,
|
|
247
249
|
# but there are no Unicode strings...
|
|
248
250
|
elif t_ansi in v_types:
|
|
249
|
-
|
|
250
251
|
# Use the A version
|
|
251
252
|
fn = self.fn_ansi
|
|
252
253
|
|
|
253
254
|
# Call the function and return the result
|
|
254
255
|
return fn(*argv, **argd)
|
|
255
256
|
|
|
257
|
+
|
|
256
258
|
class DefaultStringType(object):
|
|
257
259
|
"""
|
|
258
260
|
Decorator that uses the default version (A or W) to call
|
|
@@ -273,7 +275,7 @@ class DefaultStringType(object):
|
|
|
273
275
|
@type fn_unicode: function
|
|
274
276
|
@param fn_unicode: Unicode (wide) version of the API function to call.
|
|
275
277
|
"""
|
|
276
|
-
self.fn_ansi
|
|
278
|
+
self.fn_ansi = fn_ansi
|
|
277
279
|
self.fn_unicode = fn_unicode
|
|
278
280
|
|
|
279
281
|
# Copy the wrapped function attributes.
|
|
@@ -291,7 +293,6 @@ class DefaultStringType(object):
|
|
|
291
293
|
pass
|
|
292
294
|
|
|
293
295
|
def __call__(self, *argv, **argd):
|
|
294
|
-
|
|
295
296
|
# Get the appropriate function based on the default.
|
|
296
297
|
if GuessStringType.t_default == GuessStringType.t_ansi:
|
|
297
298
|
fn = self.fn_ansi
|
|
@@ -301,6 +302,7 @@ class DefaultStringType(object):
|
|
|
301
302
|
# Call the function and return the result
|
|
302
303
|
return fn(*argv, **argd)
|
|
303
304
|
|
|
305
|
+
|
|
304
306
|
def MakeANSIVersion(fn):
|
|
305
307
|
"""
|
|
306
308
|
Decorator that generates an ANSI version of a Unicode (wide) only API call.
|
|
@@ -308,12 +310,13 @@ def MakeANSIVersion(fn):
|
|
|
308
310
|
@type fn: callable
|
|
309
311
|
@param fn: Unicode (wide) version of the API function to call.
|
|
310
312
|
"""
|
|
313
|
+
|
|
311
314
|
@functools.wraps(fn)
|
|
312
315
|
def wrapper(*argv, **argd):
|
|
313
|
-
t_ansi
|
|
316
|
+
t_ansi = GuessStringType.t_ansi
|
|
314
317
|
t_unicode = GuessStringType.t_unicode
|
|
315
|
-
v_types
|
|
316
|
-
v_types.extend(
|
|
318
|
+
v_types = [type(item) for item in argv]
|
|
319
|
+
v_types.extend([type(value) for (key, value) in compat.iteritems(argd)])
|
|
317
320
|
if t_ansi in v_types:
|
|
318
321
|
argv = list(argv)
|
|
319
322
|
for index in compat.xrange(len(argv)):
|
|
@@ -323,8 +326,10 @@ def MakeANSIVersion(fn):
|
|
|
323
326
|
if type(value) == t_ansi:
|
|
324
327
|
argd[key] = t_unicode(value)
|
|
325
328
|
return fn(*argv, **argd)
|
|
329
|
+
|
|
326
330
|
return wrapper
|
|
327
331
|
|
|
332
|
+
|
|
328
333
|
def MakeWideVersion(fn):
|
|
329
334
|
"""
|
|
330
335
|
Decorator that generates a Unicode (wide) version of an ANSI only API call.
|
|
@@ -332,12 +337,13 @@ def MakeWideVersion(fn):
|
|
|
332
337
|
@type fn: callable
|
|
333
338
|
@param fn: ANSI version of the API function to call.
|
|
334
339
|
"""
|
|
340
|
+
|
|
335
341
|
@functools.wraps(fn)
|
|
336
342
|
def wrapper(*argv, **argd):
|
|
337
|
-
t_ansi
|
|
343
|
+
t_ansi = GuessStringType.t_ansi
|
|
338
344
|
t_unicode = GuessStringType.t_unicode
|
|
339
|
-
v_types
|
|
340
|
-
v_types.extend(
|
|
345
|
+
v_types = [type(item) for item in argv]
|
|
346
|
+
v_types.extend([type(value) for (key, value) in compat.iteritems(argd)])
|
|
341
347
|
if t_unicode in v_types:
|
|
342
348
|
argv = list(argv)
|
|
343
349
|
for index in compat.xrange(len(argv)):
|
|
@@ -347,143 +353,145 @@ def MakeWideVersion(fn):
|
|
|
347
353
|
if type(value) == t_unicode:
|
|
348
354
|
argd[key] = t_ansi(value)
|
|
349
355
|
return fn(*argv, **argd)
|
|
356
|
+
|
|
350
357
|
return wrapper
|
|
351
358
|
|
|
352
|
-
|
|
359
|
+
|
|
360
|
+
# --- Types --------------------------------------------------------------------
|
|
353
361
|
# http://msdn.microsoft.com/en-us/library/aa383751(v=vs.85).aspx
|
|
354
362
|
|
|
355
363
|
# Map of basic C types to Win32 types
|
|
356
|
-
LPVOID
|
|
357
|
-
CHAR
|
|
358
|
-
WCHAR
|
|
359
|
-
BYTE
|
|
360
|
-
SBYTE
|
|
361
|
-
WORD
|
|
362
|
-
SWORD
|
|
363
|
-
DWORD
|
|
364
|
-
SDWORD
|
|
365
|
-
QWORD
|
|
366
|
-
SQWORD
|
|
367
|
-
SHORT
|
|
368
|
-
USHORT
|
|
369
|
-
INT
|
|
370
|
-
UINT
|
|
371
|
-
LONG
|
|
372
|
-
ULONG
|
|
373
|
-
LONGLONG
|
|
374
|
-
ULONGLONG
|
|
375
|
-
LPSTR
|
|
376
|
-
LPWSTR
|
|
377
|
-
INT8
|
|
378
|
-
INT16
|
|
379
|
-
INT32
|
|
380
|
-
INT64
|
|
381
|
-
UINT8
|
|
382
|
-
UINT16
|
|
383
|
-
UINT32
|
|
384
|
-
UINT64
|
|
385
|
-
LONG32
|
|
386
|
-
LONG64
|
|
387
|
-
ULONG32
|
|
388
|
-
ULONG64
|
|
389
|
-
DWORD32
|
|
390
|
-
DWORD64
|
|
391
|
-
BOOL
|
|
392
|
-
FLOAT
|
|
364
|
+
LPVOID = ctypes.c_void_p
|
|
365
|
+
CHAR = ctypes.c_char
|
|
366
|
+
WCHAR = ctypes.c_wchar
|
|
367
|
+
BYTE = ctypes.c_ubyte
|
|
368
|
+
SBYTE = ctypes.c_byte
|
|
369
|
+
WORD = ctypes.c_uint16
|
|
370
|
+
SWORD = ctypes.c_int16
|
|
371
|
+
DWORD = ctypes.c_uint32
|
|
372
|
+
SDWORD = ctypes.c_int32
|
|
373
|
+
QWORD = ctypes.c_uint64
|
|
374
|
+
SQWORD = ctypes.c_int64
|
|
375
|
+
SHORT = ctypes.c_short
|
|
376
|
+
USHORT = ctypes.c_ushort
|
|
377
|
+
INT = ctypes.c_int
|
|
378
|
+
UINT = ctypes.c_uint
|
|
379
|
+
LONG = ctypes.c_long
|
|
380
|
+
ULONG = ctypes.c_ulong
|
|
381
|
+
LONGLONG = ctypes.c_int64 # c_longlong
|
|
382
|
+
ULONGLONG = ctypes.c_uint64 # c_ulonglong
|
|
383
|
+
LPSTR = ctypes.c_char_p
|
|
384
|
+
LPWSTR = ctypes.c_wchar_p
|
|
385
|
+
INT8 = ctypes.c_int8
|
|
386
|
+
INT16 = ctypes.c_int16
|
|
387
|
+
INT32 = ctypes.c_int32
|
|
388
|
+
INT64 = ctypes.c_int64
|
|
389
|
+
UINT8 = ctypes.c_uint8
|
|
390
|
+
UINT16 = ctypes.c_uint16
|
|
391
|
+
UINT32 = ctypes.c_uint32
|
|
392
|
+
UINT64 = ctypes.c_uint64
|
|
393
|
+
LONG32 = ctypes.c_int32
|
|
394
|
+
LONG64 = ctypes.c_int64
|
|
395
|
+
ULONG32 = ctypes.c_uint32
|
|
396
|
+
ULONG64 = ctypes.c_uint64
|
|
397
|
+
DWORD32 = ctypes.c_uint32
|
|
398
|
+
DWORD64 = ctypes.c_uint64
|
|
399
|
+
BOOL = ctypes.c_int
|
|
400
|
+
FLOAT = ctypes.c_float
|
|
393
401
|
|
|
394
402
|
# Map size_t to SIZE_T
|
|
395
403
|
try:
|
|
396
|
-
SIZE_T
|
|
404
|
+
SIZE_T = ctypes.c_size_t
|
|
397
405
|
SSIZE_T = ctypes.c_ssize_t
|
|
398
406
|
except AttributeError:
|
|
399
407
|
# Size of a pointer
|
|
400
|
-
SIZE_T
|
|
401
|
-
SSIZE_T = {1:SBYTE, 2:SWORD, 4:SDWORD, 8:SQWORD}[sizeof(LPVOID)]
|
|
402
|
-
PSIZE_T
|
|
408
|
+
SIZE_T = {1: BYTE, 2: WORD, 4: DWORD, 8: QWORD}[sizeof(LPVOID)]
|
|
409
|
+
SSIZE_T = {1: SBYTE, 2: SWORD, 4: SDWORD, 8: SQWORD}[sizeof(LPVOID)]
|
|
410
|
+
PSIZE_T = POINTER(SIZE_T)
|
|
403
411
|
|
|
404
412
|
# Not really pointers but pointer-sized integers
|
|
405
|
-
DWORD_PTR
|
|
406
|
-
ULONG_PTR
|
|
407
|
-
LONG_PTR
|
|
413
|
+
DWORD_PTR = SIZE_T
|
|
414
|
+
ULONG_PTR = SIZE_T
|
|
415
|
+
LONG_PTR = SIZE_T
|
|
408
416
|
|
|
409
417
|
# Other Win32 types, more may be added as needed
|
|
410
|
-
PVOID
|
|
411
|
-
PPVOID
|
|
412
|
-
PSTR
|
|
413
|
-
PWSTR
|
|
414
|
-
PCHAR
|
|
415
|
-
PWCHAR
|
|
416
|
-
LPBYTE
|
|
417
|
-
LPSBYTE
|
|
418
|
-
LPWORD
|
|
419
|
-
LPSWORD
|
|
420
|
-
LPDWORD
|
|
421
|
-
LPSDWORD
|
|
422
|
-
LPULONG
|
|
423
|
-
LPLONG
|
|
424
|
-
PDWORD
|
|
425
|
-
PDWORD_PTR
|
|
426
|
-
PULONG
|
|
427
|
-
PLONG
|
|
428
|
-
CCHAR
|
|
429
|
-
BOOLEAN
|
|
430
|
-
PBOOL
|
|
431
|
-
LPBOOL
|
|
432
|
-
TCHAR
|
|
433
|
-
UCHAR
|
|
434
|
-
DWORDLONG
|
|
435
|
-
LPDWORD32
|
|
436
|
-
LPULONG32
|
|
437
|
-
LPDWORD64
|
|
438
|
-
LPULONG64
|
|
439
|
-
PDWORD32
|
|
440
|
-
PULONG32
|
|
441
|
-
PDWORD64
|
|
442
|
-
PULONG64
|
|
443
|
-
ATOM
|
|
444
|
-
HANDLE
|
|
445
|
-
PHANDLE
|
|
446
|
-
LPHANDLE
|
|
447
|
-
HMODULE
|
|
448
|
-
HINSTANCE
|
|
449
|
-
HTASK
|
|
450
|
-
HKEY
|
|
451
|
-
PHKEY
|
|
452
|
-
HDESK
|
|
453
|
-
HRSRC
|
|
454
|
-
HSTR
|
|
455
|
-
HWINSTA
|
|
456
|
-
HKL
|
|
457
|
-
HDWP
|
|
458
|
-
HFILE
|
|
459
|
-
HRESULT
|
|
460
|
-
HGLOBAL
|
|
461
|
-
HLOCAL
|
|
462
|
-
HGDIOBJ
|
|
463
|
-
HDC
|
|
464
|
-
HRGN
|
|
465
|
-
HBITMAP
|
|
466
|
-
HPALETTE
|
|
467
|
-
HPEN
|
|
468
|
-
HBRUSH
|
|
469
|
-
HMF
|
|
470
|
-
HEMF
|
|
418
|
+
PVOID = LPVOID
|
|
419
|
+
PPVOID = POINTER(PVOID)
|
|
420
|
+
PSTR = LPSTR
|
|
421
|
+
PWSTR = LPWSTR
|
|
422
|
+
PCHAR = LPSTR
|
|
423
|
+
PWCHAR = LPWSTR
|
|
424
|
+
LPBYTE = POINTER(BYTE)
|
|
425
|
+
LPSBYTE = POINTER(SBYTE)
|
|
426
|
+
LPWORD = POINTER(WORD)
|
|
427
|
+
LPSWORD = POINTER(SWORD)
|
|
428
|
+
LPDWORD = POINTER(DWORD)
|
|
429
|
+
LPSDWORD = POINTER(SDWORD)
|
|
430
|
+
LPULONG = POINTER(ULONG)
|
|
431
|
+
LPLONG = POINTER(LONG)
|
|
432
|
+
PDWORD = LPDWORD
|
|
433
|
+
PDWORD_PTR = POINTER(DWORD_PTR)
|
|
434
|
+
PULONG = LPULONG
|
|
435
|
+
PLONG = LPLONG
|
|
436
|
+
CCHAR = CHAR
|
|
437
|
+
BOOLEAN = BYTE
|
|
438
|
+
PBOOL = POINTER(BOOL)
|
|
439
|
+
LPBOOL = PBOOL
|
|
440
|
+
TCHAR = CHAR # XXX ANSI by default?
|
|
441
|
+
UCHAR = BYTE
|
|
442
|
+
DWORDLONG = ULONGLONG
|
|
443
|
+
LPDWORD32 = POINTER(DWORD32)
|
|
444
|
+
LPULONG32 = POINTER(ULONG32)
|
|
445
|
+
LPDWORD64 = POINTER(DWORD64)
|
|
446
|
+
LPULONG64 = POINTER(ULONG64)
|
|
447
|
+
PDWORD32 = LPDWORD32
|
|
448
|
+
PULONG32 = LPULONG32
|
|
449
|
+
PDWORD64 = LPDWORD64
|
|
450
|
+
PULONG64 = LPULONG64
|
|
451
|
+
ATOM = WORD
|
|
452
|
+
HANDLE = LPVOID
|
|
453
|
+
PHANDLE = POINTER(HANDLE)
|
|
454
|
+
LPHANDLE = PHANDLE
|
|
455
|
+
HMODULE = HANDLE
|
|
456
|
+
HINSTANCE = HANDLE
|
|
457
|
+
HTASK = HANDLE
|
|
458
|
+
HKEY = HANDLE
|
|
459
|
+
PHKEY = POINTER(HKEY)
|
|
460
|
+
HDESK = HANDLE
|
|
461
|
+
HRSRC = HANDLE
|
|
462
|
+
HSTR = HANDLE
|
|
463
|
+
HWINSTA = HANDLE
|
|
464
|
+
HKL = HANDLE
|
|
465
|
+
HDWP = HANDLE
|
|
466
|
+
HFILE = HANDLE
|
|
467
|
+
HRESULT = LONG
|
|
468
|
+
HGLOBAL = HANDLE
|
|
469
|
+
HLOCAL = HANDLE
|
|
470
|
+
HGDIOBJ = HANDLE
|
|
471
|
+
HDC = HGDIOBJ
|
|
472
|
+
HRGN = HGDIOBJ
|
|
473
|
+
HBITMAP = HGDIOBJ
|
|
474
|
+
HPALETTE = HGDIOBJ
|
|
475
|
+
HPEN = HGDIOBJ
|
|
476
|
+
HBRUSH = HGDIOBJ
|
|
477
|
+
HMF = HGDIOBJ
|
|
478
|
+
HEMF = HGDIOBJ
|
|
471
479
|
HENHMETAFILE = HGDIOBJ
|
|
472
|
-
HMETAFILE
|
|
480
|
+
HMETAFILE = HGDIOBJ
|
|
473
481
|
HMETAFILEPICT = HGDIOBJ
|
|
474
|
-
HWND
|
|
475
|
-
NTSTATUS
|
|
476
|
-
PNTSTATUS
|
|
477
|
-
KAFFINITY
|
|
478
|
-
RVA
|
|
479
|
-
RVA64
|
|
480
|
-
WPARAM
|
|
481
|
-
LPARAM
|
|
482
|
-
LRESULT
|
|
482
|
+
HWND = HANDLE
|
|
483
|
+
NTSTATUS = LONG
|
|
484
|
+
PNTSTATUS = POINTER(NTSTATUS)
|
|
485
|
+
KAFFINITY = ULONG_PTR
|
|
486
|
+
RVA = DWORD
|
|
487
|
+
RVA64 = QWORD
|
|
488
|
+
WPARAM = DWORD
|
|
489
|
+
LPARAM = LPVOID
|
|
490
|
+
LRESULT = LPVOID
|
|
483
491
|
ACCESS_MASK = DWORD
|
|
484
|
-
REGSAM
|
|
492
|
+
REGSAM = ACCESS_MASK
|
|
485
493
|
PACCESS_MASK = POINTER(ACCESS_MASK)
|
|
486
|
-
PREGSAM
|
|
494
|
+
PREGSAM = POINTER(REGSAM)
|
|
487
495
|
|
|
488
496
|
# Since the SID is an opaque structure, let's treat its pointers as void*
|
|
489
497
|
PSID = PVOID
|
|
@@ -503,41 +511,47 @@ PSID = PVOID
|
|
|
503
511
|
|
|
504
512
|
# XXX TODO
|
|
505
513
|
|
|
514
|
+
|
|
506
515
|
# typedef struct _FLOAT128 {
|
|
507
516
|
# __int64 LowPart;
|
|
508
517
|
# __int64 HighPart;
|
|
509
518
|
# } FLOAT128;
|
|
510
|
-
class FLOAT128
|
|
519
|
+
class FLOAT128(Structure):
|
|
511
520
|
_fields_ = [
|
|
512
|
-
("LowPart",
|
|
513
|
-
("HighPart",
|
|
521
|
+
("LowPart", QWORD),
|
|
522
|
+
("HighPart", QWORD),
|
|
514
523
|
]
|
|
524
|
+
|
|
525
|
+
|
|
515
526
|
PFLOAT128 = POINTER(FLOAT128)
|
|
516
527
|
|
|
528
|
+
|
|
517
529
|
# typedef struct DECLSPEC_ALIGN(16) _M128A {
|
|
518
530
|
# ULONGLONG Low;
|
|
519
531
|
# LONGLONG High;
|
|
520
532
|
# } M128A, *PM128A;
|
|
521
533
|
class M128A(Structure):
|
|
522
534
|
_fields_ = [
|
|
523
|
-
("Low",
|
|
524
|
-
("High",
|
|
535
|
+
("Low", ULONGLONG),
|
|
536
|
+
("High", LONGLONG),
|
|
525
537
|
]
|
|
538
|
+
|
|
539
|
+
|
|
526
540
|
PM128A = POINTER(M128A)
|
|
527
541
|
|
|
528
|
-
|
|
542
|
+
# --- Constants ----------------------------------------------------------------
|
|
529
543
|
|
|
530
|
-
NULL
|
|
531
|
-
INFINITE
|
|
532
|
-
TRUE
|
|
533
|
-
FALSE
|
|
544
|
+
NULL = None
|
|
545
|
+
INFINITE = -1
|
|
546
|
+
TRUE = 1
|
|
547
|
+
FALSE = 0
|
|
534
548
|
|
|
535
549
|
# http://blogs.msdn.com/oldnewthing/archive/2004/08/26/220873.aspx
|
|
536
550
|
ANYSIZE_ARRAY = 1
|
|
537
551
|
|
|
538
552
|
# Invalid handle value is -1 casted to void pointer.
|
|
539
553
|
try:
|
|
540
|
-
INVALID_HANDLE_VALUE = ctypes.c_void_p(-1).value
|
|
554
|
+
INVALID_HANDLE_VALUE = ctypes.c_void_p(-1).value # -1 #0xFFFFFFFF
|
|
541
555
|
except TypeError:
|
|
542
556
|
if sizeof(ctypes.c_void_p) == 4:
|
|
543
557
|
INVALID_HANDLE_VALUE = 0xFFFFFFFF
|
|
@@ -546,126 +560,128 @@ except TypeError:
|
|
|
546
560
|
else:
|
|
547
561
|
raise
|
|
548
562
|
|
|
549
|
-
MAX_MODULE_NAME32
|
|
550
|
-
MAX_PATH
|
|
563
|
+
MAX_MODULE_NAME32 = 255
|
|
564
|
+
MAX_PATH = 260
|
|
551
565
|
|
|
552
566
|
# Error codes
|
|
553
567
|
# TODO maybe add more error codes?
|
|
554
568
|
# if they're too many they could be pickled instead,
|
|
555
569
|
# or at the very least put in a new file
|
|
556
|
-
ERROR_SUCCESS
|
|
557
|
-
ERROR_INVALID_FUNCTION
|
|
558
|
-
ERROR_FILE_NOT_FOUND
|
|
559
|
-
ERROR_PATH_NOT_FOUND
|
|
560
|
-
ERROR_ACCESS_DENIED
|
|
561
|
-
ERROR_INVALID_HANDLE
|
|
562
|
-
ERROR_NOT_ENOUGH_MEMORY
|
|
563
|
-
ERROR_INVALID_DRIVE
|
|
564
|
-
ERROR_NO_MORE_FILES
|
|
565
|
-
ERROR_BAD_LENGTH
|
|
566
|
-
ERROR_HANDLE_EOF
|
|
567
|
-
ERROR_HANDLE_DISK_FULL
|
|
568
|
-
ERROR_NOT_SUPPORTED
|
|
569
|
-
ERROR_FILE_EXISTS
|
|
570
|
-
ERROR_INVALID_PARAMETER
|
|
571
|
-
ERROR_BUFFER_OVERFLOW
|
|
572
|
-
ERROR_DISK_FULL
|
|
573
|
-
ERROR_CALL_NOT_IMPLEMENTED
|
|
574
|
-
ERROR_SEM_TIMEOUT
|
|
575
|
-
ERROR_INSUFFICIENT_BUFFER
|
|
576
|
-
ERROR_INVALID_NAME
|
|
577
|
-
ERROR_MOD_NOT_FOUND
|
|
578
|
-
ERROR_PROC_NOT_FOUND
|
|
579
|
-
ERROR_DIR_NOT_EMPTY
|
|
580
|
-
ERROR_BAD_THREADID_ADDR
|
|
581
|
-
ERROR_BAD_ARGUMENTS
|
|
582
|
-
ERROR_BAD_PATHNAME
|
|
583
|
-
ERROR_ALREADY_EXISTS
|
|
584
|
-
ERROR_INVALID_FLAG_NUMBER
|
|
585
|
-
ERROR_ENVVAR_NOT_FOUND
|
|
586
|
-
ERROR_FILENAME_EXCED_RANGE
|
|
587
|
-
ERROR_MORE_DATA
|
|
588
|
-
|
|
589
|
-
WAIT_TIMEOUT
|
|
590
|
-
|
|
591
|
-
ERROR_NO_MORE_ITEMS
|
|
592
|
-
ERROR_PARTIAL_COPY
|
|
593
|
-
ERROR_INVALID_ADDRESS
|
|
594
|
-
ERROR_THREAD_NOT_IN_PROCESS
|
|
595
|
-
ERROR_CONTROL_C_EXIT
|
|
596
|
-
ERROR_UNHANDLED_EXCEPTION
|
|
597
|
-
ERROR_ASSERTION_FAILURE
|
|
598
|
-
ERROR_WOW_ASSERTION
|
|
599
|
-
|
|
600
|
-
ERROR_DBG_EXCEPTION_NOT_HANDLED
|
|
601
|
-
ERROR_DBG_REPLY_LATER
|
|
602
|
-
ERROR_DBG_UNABLE_TO_PROVIDE_HANDLE
|
|
603
|
-
ERROR_DBG_TERMINATE_THREAD
|
|
604
|
-
ERROR_DBG_TERMINATE_PROCESS
|
|
605
|
-
ERROR_DBG_CONTROL_C
|
|
606
|
-
ERROR_DBG_PRINTEXCEPTION_C
|
|
607
|
-
ERROR_DBG_RIPEXCEPTION
|
|
608
|
-
ERROR_DBG_CONTROL_BREAK
|
|
609
|
-
ERROR_DBG_COMMAND_EXCEPTION
|
|
610
|
-
ERROR_DBG_EXCEPTION_HANDLED
|
|
611
|
-
ERROR_DBG_CONTINUE
|
|
612
|
-
|
|
613
|
-
ERROR_ELEVATION_REQUIRED
|
|
614
|
-
ERROR_NOACCESS
|
|
615
|
-
|
|
616
|
-
ERROR_CIRCULAR_DEPENDENCY
|
|
617
|
-
ERROR_SERVICE_DOES_NOT_EXIST
|
|
618
|
-
ERROR_SERVICE_CANNOT_ACCEPT_CTRL
|
|
619
|
-
ERROR_SERVICE_NOT_ACTIVE
|
|
570
|
+
ERROR_SUCCESS = 0
|
|
571
|
+
ERROR_INVALID_FUNCTION = 1
|
|
572
|
+
ERROR_FILE_NOT_FOUND = 2
|
|
573
|
+
ERROR_PATH_NOT_FOUND = 3
|
|
574
|
+
ERROR_ACCESS_DENIED = 5
|
|
575
|
+
ERROR_INVALID_HANDLE = 6
|
|
576
|
+
ERROR_NOT_ENOUGH_MEMORY = 8
|
|
577
|
+
ERROR_INVALID_DRIVE = 15
|
|
578
|
+
ERROR_NO_MORE_FILES = 18
|
|
579
|
+
ERROR_BAD_LENGTH = 24
|
|
580
|
+
ERROR_HANDLE_EOF = 38
|
|
581
|
+
ERROR_HANDLE_DISK_FULL = 39
|
|
582
|
+
ERROR_NOT_SUPPORTED = 50
|
|
583
|
+
ERROR_FILE_EXISTS = 80
|
|
584
|
+
ERROR_INVALID_PARAMETER = 87
|
|
585
|
+
ERROR_BUFFER_OVERFLOW = 111
|
|
586
|
+
ERROR_DISK_FULL = 112
|
|
587
|
+
ERROR_CALL_NOT_IMPLEMENTED = 120
|
|
588
|
+
ERROR_SEM_TIMEOUT = 121
|
|
589
|
+
ERROR_INSUFFICIENT_BUFFER = 122
|
|
590
|
+
ERROR_INVALID_NAME = 123
|
|
591
|
+
ERROR_MOD_NOT_FOUND = 126
|
|
592
|
+
ERROR_PROC_NOT_FOUND = 127
|
|
593
|
+
ERROR_DIR_NOT_EMPTY = 145
|
|
594
|
+
ERROR_BAD_THREADID_ADDR = 159
|
|
595
|
+
ERROR_BAD_ARGUMENTS = 160
|
|
596
|
+
ERROR_BAD_PATHNAME = 161
|
|
597
|
+
ERROR_ALREADY_EXISTS = 183
|
|
598
|
+
ERROR_INVALID_FLAG_NUMBER = 186
|
|
599
|
+
ERROR_ENVVAR_NOT_FOUND = 203
|
|
600
|
+
ERROR_FILENAME_EXCED_RANGE = 206
|
|
601
|
+
ERROR_MORE_DATA = 234
|
|
602
|
+
|
|
603
|
+
WAIT_TIMEOUT = 258
|
|
604
|
+
|
|
605
|
+
ERROR_NO_MORE_ITEMS = 259
|
|
606
|
+
ERROR_PARTIAL_COPY = 299
|
|
607
|
+
ERROR_INVALID_ADDRESS = 487
|
|
608
|
+
ERROR_THREAD_NOT_IN_PROCESS = 566
|
|
609
|
+
ERROR_CONTROL_C_EXIT = 572
|
|
610
|
+
ERROR_UNHANDLED_EXCEPTION = 574
|
|
611
|
+
ERROR_ASSERTION_FAILURE = 668
|
|
612
|
+
ERROR_WOW_ASSERTION = 670
|
|
613
|
+
|
|
614
|
+
ERROR_DBG_EXCEPTION_NOT_HANDLED = 688
|
|
615
|
+
ERROR_DBG_REPLY_LATER = 689
|
|
616
|
+
ERROR_DBG_UNABLE_TO_PROVIDE_HANDLE = 690
|
|
617
|
+
ERROR_DBG_TERMINATE_THREAD = 691
|
|
618
|
+
ERROR_DBG_TERMINATE_PROCESS = 692
|
|
619
|
+
ERROR_DBG_CONTROL_C = 693
|
|
620
|
+
ERROR_DBG_PRINTEXCEPTION_C = 694
|
|
621
|
+
ERROR_DBG_RIPEXCEPTION = 695
|
|
622
|
+
ERROR_DBG_CONTROL_BREAK = 696
|
|
623
|
+
ERROR_DBG_COMMAND_EXCEPTION = 697
|
|
624
|
+
ERROR_DBG_EXCEPTION_HANDLED = 766
|
|
625
|
+
ERROR_DBG_CONTINUE = 767
|
|
626
|
+
|
|
627
|
+
ERROR_ELEVATION_REQUIRED = 740
|
|
628
|
+
ERROR_NOACCESS = 998
|
|
629
|
+
|
|
630
|
+
ERROR_CIRCULAR_DEPENDENCY = 1059
|
|
631
|
+
ERROR_SERVICE_DOES_NOT_EXIST = 1060
|
|
632
|
+
ERROR_SERVICE_CANNOT_ACCEPT_CTRL = 1061
|
|
633
|
+
ERROR_SERVICE_NOT_ACTIVE = 1062
|
|
620
634
|
ERROR_FAILED_SERVICE_CONTROLLER_CONNECT = 1063
|
|
621
|
-
ERROR_EXCEPTION_IN_SERVICE
|
|
622
|
-
ERROR_DATABASE_DOES_NOT_EXIST
|
|
623
|
-
ERROR_SERVICE_SPECIFIC_ERROR
|
|
624
|
-
ERROR_PROCESS_ABORTED
|
|
625
|
-
ERROR_SERVICE_DEPENDENCY_FAIL
|
|
626
|
-
ERROR_SERVICE_LOGON_FAILED
|
|
627
|
-
ERROR_SERVICE_START_HANG
|
|
628
|
-
ERROR_INVALID_SERVICE_LOCK
|
|
629
|
-
ERROR_SERVICE_MARKED_FOR_DELETE
|
|
630
|
-
ERROR_SERVICE_EXISTS
|
|
631
|
-
ERROR_ALREADY_RUNNING_LKG
|
|
632
|
-
ERROR_SERVICE_DEPENDENCY_DELETED
|
|
633
|
-
ERROR_BOOT_ALREADY_ACCEPTED
|
|
634
|
-
ERROR_SERVICE_NEVER_STARTED
|
|
635
|
-
ERROR_DUPLICATE_SERVICE_NAME
|
|
636
|
-
ERROR_DIFFERENT_SERVICE_ACCOUNT
|
|
637
|
-
ERROR_CANNOT_DETECT_DRIVER_FAILURE
|
|
638
|
-
ERROR_CANNOT_DETECT_PROCESS_ABORT
|
|
639
|
-
ERROR_NO_RECOVERY_PROGRAM
|
|
640
|
-
ERROR_SERVICE_NOT_IN_EXE
|
|
641
|
-
ERROR_NOT_SAFEBOOT_SERVICE
|
|
642
|
-
|
|
643
|
-
ERROR_DEBUGGER_INACTIVE
|
|
644
|
-
|
|
645
|
-
ERROR_PRIVILEGE_NOT_HELD
|
|
646
|
-
|
|
647
|
-
ERROR_NONE_MAPPED
|
|
648
|
-
|
|
649
|
-
RPC_S_SERVER_UNAVAILABLE
|
|
635
|
+
ERROR_EXCEPTION_IN_SERVICE = 1064
|
|
636
|
+
ERROR_DATABASE_DOES_NOT_EXIST = 1065
|
|
637
|
+
ERROR_SERVICE_SPECIFIC_ERROR = 1066
|
|
638
|
+
ERROR_PROCESS_ABORTED = 1067
|
|
639
|
+
ERROR_SERVICE_DEPENDENCY_FAIL = 1068
|
|
640
|
+
ERROR_SERVICE_LOGON_FAILED = 1069
|
|
641
|
+
ERROR_SERVICE_START_HANG = 1070
|
|
642
|
+
ERROR_INVALID_SERVICE_LOCK = 1071
|
|
643
|
+
ERROR_SERVICE_MARKED_FOR_DELETE = 1072
|
|
644
|
+
ERROR_SERVICE_EXISTS = 1073
|
|
645
|
+
ERROR_ALREADY_RUNNING_LKG = 1074
|
|
646
|
+
ERROR_SERVICE_DEPENDENCY_DELETED = 1075
|
|
647
|
+
ERROR_BOOT_ALREADY_ACCEPTED = 1076
|
|
648
|
+
ERROR_SERVICE_NEVER_STARTED = 1077
|
|
649
|
+
ERROR_DUPLICATE_SERVICE_NAME = 1078
|
|
650
|
+
ERROR_DIFFERENT_SERVICE_ACCOUNT = 1079
|
|
651
|
+
ERROR_CANNOT_DETECT_DRIVER_FAILURE = 1080
|
|
652
|
+
ERROR_CANNOT_DETECT_PROCESS_ABORT = 1081
|
|
653
|
+
ERROR_NO_RECOVERY_PROGRAM = 1082
|
|
654
|
+
ERROR_SERVICE_NOT_IN_EXE = 1083
|
|
655
|
+
ERROR_NOT_SAFEBOOT_SERVICE = 1084
|
|
656
|
+
|
|
657
|
+
ERROR_DEBUGGER_INACTIVE = 1284
|
|
658
|
+
|
|
659
|
+
ERROR_PRIVILEGE_NOT_HELD = 1314
|
|
660
|
+
|
|
661
|
+
ERROR_NONE_MAPPED = 1332
|
|
662
|
+
|
|
663
|
+
RPC_S_SERVER_UNAVAILABLE = 1722
|
|
650
664
|
|
|
651
665
|
# Standard access rights
|
|
652
666
|
import sys
|
|
667
|
+
|
|
653
668
|
if sys.version_info[0] >= 3:
|
|
654
669
|
long = int
|
|
655
670
|
|
|
656
|
-
DELETE
|
|
657
|
-
READ_CONTROL
|
|
658
|
-
WRITE_DAC
|
|
659
|
-
WRITE_OWNER
|
|
660
|
-
SYNCHRONIZE
|
|
661
|
-
STANDARD_RIGHTS_REQUIRED
|
|
662
|
-
STANDARD_RIGHTS_READ
|
|
663
|
-
STANDARD_RIGHTS_WRITE
|
|
664
|
-
STANDARD_RIGHTS_EXECUTE
|
|
665
|
-
STANDARD_RIGHTS_ALL
|
|
666
|
-
SPECIFIC_RIGHTS_ALL
|
|
671
|
+
DELETE = long(0x00010000)
|
|
672
|
+
READ_CONTROL = long(0x00020000)
|
|
673
|
+
WRITE_DAC = long(0x00040000)
|
|
674
|
+
WRITE_OWNER = long(0x00080000)
|
|
675
|
+
SYNCHRONIZE = long(0x00100000)
|
|
676
|
+
STANDARD_RIGHTS_REQUIRED = long(0x000F0000)
|
|
677
|
+
STANDARD_RIGHTS_READ = READ_CONTROL
|
|
678
|
+
STANDARD_RIGHTS_WRITE = READ_CONTROL
|
|
679
|
+
STANDARD_RIGHTS_EXECUTE = READ_CONTROL
|
|
680
|
+
STANDARD_RIGHTS_ALL = long(0x001F0000)
|
|
681
|
+
SPECIFIC_RIGHTS_ALL = long(0x0000FFFF)
|
|
682
|
+
|
|
683
|
+
# --- Structures ---------------------------------------------------------------
|
|
667
684
|
|
|
668
|
-
#--- Structures ---------------------------------------------------------------
|
|
669
685
|
|
|
670
686
|
# typedef struct _LSA_UNICODE_STRING {
|
|
671
687
|
# USHORT Length;
|
|
@@ -677,11 +693,12 @@ SPECIFIC_RIGHTS_ALL = long(0x0000FFFF)
|
|
|
677
693
|
# *PUNICODE_STRING;
|
|
678
694
|
class UNICODE_STRING(Structure):
|
|
679
695
|
_fields_ = [
|
|
680
|
-
("Length",
|
|
681
|
-
("MaximumLength",
|
|
682
|
-
("Buffer",
|
|
696
|
+
("Length", USHORT),
|
|
697
|
+
("MaximumLength", USHORT),
|
|
698
|
+
("Buffer", PVOID),
|
|
683
699
|
]
|
|
684
700
|
|
|
701
|
+
|
|
685
702
|
# From MSDN:
|
|
686
703
|
#
|
|
687
704
|
# typedef struct _GUID {
|
|
@@ -692,11 +709,12 @@ class UNICODE_STRING(Structure):
|
|
|
692
709
|
# } GUID;
|
|
693
710
|
class GUID(Structure):
|
|
694
711
|
_fields_ = [
|
|
695
|
-
("Data1",
|
|
696
|
-
("Data2",
|
|
697
|
-
("Data3",
|
|
698
|
-
("Data4",
|
|
699
|
-
]
|
|
712
|
+
("Data1", DWORD),
|
|
713
|
+
("Data2", WORD),
|
|
714
|
+
("Data3", WORD),
|
|
715
|
+
("Data4", BYTE * 8),
|
|
716
|
+
]
|
|
717
|
+
|
|
700
718
|
|
|
701
719
|
# From MSDN:
|
|
702
720
|
#
|
|
@@ -706,13 +724,14 @@ class GUID(Structure):
|
|
|
706
724
|
# } LIST_ENTRY, *PLIST_ENTRY, *RESTRICTED_POINTER PRLIST_ENTRY;
|
|
707
725
|
class LIST_ENTRY(Structure):
|
|
708
726
|
_fields_ = [
|
|
709
|
-
("Flink",
|
|
710
|
-
("Blink",
|
|
711
|
-
]
|
|
727
|
+
("Flink", PVOID), # POINTER(LIST_ENTRY)
|
|
728
|
+
("Blink", PVOID), # POINTER(LIST_ENTRY)
|
|
729
|
+
]
|
|
730
|
+
|
|
712
731
|
|
|
713
|
-
|
|
732
|
+
# ==============================================================================
|
|
714
733
|
# This calculates the list of exported symbols.
|
|
715
734
|
_all = set(vars().keys()).difference(_all)
|
|
716
735
|
##__all__ = [_x for _x in _all if not _x.startswith('_')]
|
|
717
736
|
##__all__.sort()
|
|
718
|
-
|
|
737
|
+
# ==============================================================================
|