debugpy 1.8.5__zip → 1.8.6__zip

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (339) hide show
  1. {debugpy-1.8.5/src/debugpy.egg-info → debugpy-1.8.6}/PKG-INFO +1 -1
  2. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_calltip_util.py +19 -21
  3. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_completer.py +30 -30
  4. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_execfile.py +3 -1
  5. debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_filesystem_encoding.py +43 -0
  6. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_getopt.py +35 -32
  7. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_imports_tipper.py +83 -84
  8. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_jy_imports_tipper.py +92 -99
  9. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_log.py +2 -3
  10. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_saved_modules.py +51 -27
  11. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_sys_patch.py +11 -7
  12. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_tipper_common.py +6 -5
  13. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/fsnotify/__init__.py +34 -38
  14. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_console_utils.py +71 -69
  15. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_import_hook.py +1 -3
  16. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_imports.py +0 -1
  17. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_ipython_console.py +14 -16
  18. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_ipython_console_011.py +81 -93
  19. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_is_thread_alive.py +3 -3
  20. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_localhost.py +9 -8
  21. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_log.py +33 -25
  22. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_monkey.py +183 -170
  23. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_monkey_qt.py +33 -29
  24. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_override.py +6 -4
  25. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_umd.py +19 -18
  26. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_versioncheck.py +3 -3
  27. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles.py +165 -138
  28. debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_coverage.py +77 -0
  29. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_nose.py +35 -36
  30. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_parallel.py +22 -23
  31. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_parallel_client.py +37 -57
  32. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_pytest2.py +54 -52
  33. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_unittest.py +28 -37
  34. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_xml_rpc.py +56 -53
  35. debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/__main__pydevd_gen_debug_adapter_protocol.py +604 -0
  36. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/debugProtocol.json +551 -445
  37. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_base_schema.py +25 -29
  38. debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_schema.py +17458 -0
  39. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_schema_log.py +11 -12
  40. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevconsole_code.py +18 -19
  41. debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_additional_thread_info.py +41 -0
  42. debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_additional_thread_info_regular.py +327 -0
  43. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_api.py +263 -214
  44. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_breakpoints.py +7 -10
  45. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_bytecode_utils.py +187 -92
  46. debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_bytecode_utils_py311.py +105 -0
  47. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_code_to_source.py +46 -51
  48. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_collect_bytecode_info.py +239 -176
  49. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_comm.py +370 -297
  50. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_comm_constants.py +78 -86
  51. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_command_line_handling.py +55 -59
  52. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_concurrency_analyser/pydevd_concurrency_logger.py +194 -58
  53. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_concurrency_analyser/pydevd_thread_wrappers.py +2 -3
  54. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_console.py +18 -23
  55. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_constants.py +157 -127
  56. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_custom_frames.py +10 -12
  57. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython.c +35217 -23106
  58. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython.pxd +15 -0
  59. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython.pyx +802 -511
  60. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython_wrapper.py +18 -7
  61. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_daemon_thread.py +32 -24
  62. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_defaults.py +11 -13
  63. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_dont_trace.py +16 -16
  64. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_dont_trace_files.py +27 -2
  65. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_exec2.py +1 -1
  66. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_extension_api.py +4 -5
  67. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_extension_utils.py +8 -10
  68. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_filtering.py +50 -45
  69. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_frame.py +462 -407
  70. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_frame_utils.py +63 -61
  71. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_gevent_integration.py +14 -16
  72. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_import_class.py +27 -25
  73. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_io.py +40 -42
  74. debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_json_debug_options.py +200 -0
  75. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_net_command.py +20 -19
  76. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_net_command_factory_json.py +199 -108
  77. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_net_command_factory_xml.py +121 -73
  78. debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_plugin_utils.py +208 -0
  79. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_process_net_command.py +206 -159
  80. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_process_net_command_json.py +346 -334
  81. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_referrers.py +75 -80
  82. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_reload.py +35 -35
  83. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_resolver.py +116 -124
  84. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_runpy.py +44 -58
  85. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_safe_repr.py +51 -55
  86. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_save_locals.py +4 -2
  87. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_signature.py +24 -24
  88. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_source_mapping.py +19 -20
  89. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_stackless.py +45 -49
  90. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_suspended_frames.py +61 -58
  91. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_thread_lifecycle.py +23 -13
  92. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_timeout.py +29 -31
  93. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_trace_dispatch.py +41 -11
  94. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_trace_dispatch_regular.py +117 -55
  95. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_traceproperty.py +11 -14
  96. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_utils.py +90 -89
  97. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_vars.py +106 -97
  98. debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_vm_type.py +40 -0
  99. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_xml.py +56 -46
  100. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_eval_cython_wrapper.py +5 -5
  101. debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_eval_main.py +71 -0
  102. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.c +11165 -5326
  103. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_tracing.py +5 -6
  104. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_modify_bytecode.py +53 -56
  105. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/__init__.py +1 -0
  106. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/bytecode.py +4 -6
  107. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/cfg.py +6 -26
  108. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/concrete.py +7 -21
  109. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/flags.py +5 -24
  110. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/instr.py +10 -34
  111. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/peephole_opt.py +1 -4
  112. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/__init__.py +2 -6
  113. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_bytecode.py +3 -5
  114. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_cfg.py +11 -31
  115. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_code.py +2 -2
  116. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_concrete.py +14 -41
  117. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_flags.py +2 -4
  118. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_instr.py +7 -18
  119. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_misc.py +6 -18
  120. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_peephole_opt.py +7 -18
  121. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/util_annotation.py +1 -3
  122. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/pydevd_fix_code.py +14 -19
  123. debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring.py +1927 -0
  124. debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring_cython.c +43058 -0
  125. debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring_cython.pxd +46 -0
  126. debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring_cython.pyx +1934 -0
  127. debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/pydevd_sys_monitoring.py +16 -0
  128. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_app_engine_debug_startup.py +12 -11
  129. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_coverage.py +30 -32
  130. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhook.py +58 -54
  131. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookglut.py +20 -24
  132. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookgtk.py +8 -7
  133. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookgtk3.py +8 -6
  134. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookpyglet.py +11 -8
  135. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookqt4.py +21 -18
  136. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookqt5.py +17 -15
  137. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookqt6.py +17 -15
  138. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhooktk.py +6 -4
  139. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookwx.py +14 -10
  140. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/matplotlibtools.py +30 -26
  141. debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydev_ipython/qt.py +24 -0
  142. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/qt_for_kernel.py +37 -34
  143. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/qt_loaders.py +86 -73
  144. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/version.py +7 -7
  145. debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydev_pysrc.py +1 -0
  146. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_run_in_console.py +23 -24
  147. debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydev_sitecustomize/sitecustomize.py +267 -0
  148. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevconsole.py +55 -47
  149. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd.py +732 -508
  150. debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_always_live_program.py +40 -0
  151. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_check.py +1 -0
  152. debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_test_attach_to_process.py +11 -0
  153. debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_test_attach_to_process_linux.py +75 -0
  154. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/add_code_to_python_process.py +130 -125
  155. debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_amd64.dll +0 -0
  156. debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_amd64.pdb +0 -0
  157. debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_pydevd.py +89 -0
  158. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_script.py +41 -32
  159. debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_x86.dll +0 -0
  160. debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_x86.pdb +0 -0
  161. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_utils.hpp +1 -0
  162. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_version.hpp +9 -1
  163. debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_amd64.exe +0 -0
  164. debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_amd64.pdb +0 -0
  165. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_x86.exe +0 -0
  166. debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_x86.pdb +0 -0
  167. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/lldb_prepare.py +10 -9
  168. debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_amd64.dll +0 -0
  169. debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_amd64.pdb +0 -0
  170. debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_x86.dll +0 -0
  171. debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_x86.pdb +0 -0
  172. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/__init__.py +103 -119
  173. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/breakpoint.py +457 -516
  174. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/compat.py +33 -15
  175. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/crash.py +336 -281
  176. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/debug.py +101 -131
  177. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/disasm.py +148 -153
  178. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/event.py +310 -302
  179. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/interactive.py +235 -208
  180. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/module.py +185 -218
  181. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/process.py +428 -564
  182. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/registry.py +54 -53
  183. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/search.py +69 -73
  184. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/sql.py +158 -170
  185. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/system.py +143 -213
  186. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/textio.py +302 -333
  187. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/thread.py +220 -239
  188. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/util.py +198 -177
  189. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/__init__.py +11 -11
  190. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/advapi32.py +1191 -713
  191. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/context_amd64.py +248 -194
  192. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/context_i386.py +132 -120
  193. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/dbghelp.py +450 -346
  194. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/defines.py +305 -286
  195. debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/gdi32.py +526 -0
  196. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/kernel32.py +1479 -1097
  197. debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/ntdll.py +579 -0
  198. debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/peb_teb.py +3517 -0
  199. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/psapi.py +54 -31
  200. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/shell32.py +170 -149
  201. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/shlwapi.py +190 -108
  202. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/user32.py +542 -437
  203. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/version.py +489 -442
  204. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/wtsapi32.py +83 -65
  205. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/window.py +70 -76
  206. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/attach.cpp +17 -9
  207. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/compile_windows.bat +1 -1
  208. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_file_utils.py +141 -120
  209. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_plugins/__init__.py +1 -0
  210. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_plugins/django_debug.py +175 -149
  211. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/__init__.py +1 -0
  212. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/__init__.py +1 -0
  213. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_helpers.py +5 -5
  214. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_plugin_numpy_types.py +28 -28
  215. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_plugin_pandas_types.py +22 -30
  216. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_plugins_django_form_str.py +3 -2
  217. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_plugins/jinja2_debug.py +130 -108
  218. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_plugins/pydevd_line_validation.py +27 -14
  219. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_tracing.py +85 -66
  220. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/setup_pydevd_cython.py +96 -59
  221. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_version.py +3 -3
  222. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/common/messaging.py +2 -1
  223. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/server/cli.py +32 -17
  224. {debugpy-1.8.5 → debugpy-1.8.6/src/debugpy.egg-info}/PKG-INFO +1 -1
  225. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy.egg-info/SOURCES.txt +6 -1
  226. debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_filesystem_encoding.py +0 -41
  227. debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_coverage.py +0 -76
  228. debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/__main__pydevd_gen_debug_adapter_protocol.py +0 -592
  229. debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_schema.py +0 -19514
  230. debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_additional_thread_info.py +0 -19
  231. debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_additional_thread_info_regular.py +0 -153
  232. debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_json_debug_options.py +0 -204
  233. debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_plugin_utils.py +0 -91
  234. debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_trace_api.py +0 -62
  235. debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_vm_type.py +0 -41
  236. debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_eval_main.py +0 -48
  237. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydev_ipython/qt.py +0 -23
  238. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydev_pysrc.py +0 -1
  239. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydev_sitecustomize/sitecustomize.py +0 -237
  240. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_always_live_program.py +0 -32
  241. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_test_attach_to_process.py +0 -9
  242. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_test_attach_to_process_linux.py +0 -74
  243. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_amd64.dll +0 -0
  244. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_amd64.pdb +0 -0
  245. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_pydevd.py +0 -79
  246. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_x86.dll +0 -0
  247. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_x86.pdb +0 -0
  248. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_amd64.exe +0 -0
  249. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_amd64.pdb +0 -0
  250. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_x86.pdb +0 -0
  251. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_amd64.dll +0 -0
  252. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_amd64.pdb +0 -0
  253. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_x86.dll +0 -0
  254. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_x86.pdb +0 -0
  255. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/gdi32.py +0 -507
  256. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/ntdll.py +0 -539
  257. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/peb_teb.py +0 -3435
  258. {debugpy-1.8.5 → debugpy-1.8.6}/DESCRIPTION.md +0 -0
  259. {debugpy-1.8.5 → debugpy-1.8.6}/LICENSE +0 -0
  260. {debugpy-1.8.5 → debugpy-1.8.6}/MANIFEST.in +0 -0
  261. {debugpy-1.8.5 → debugpy-1.8.6}/README.md +0 -0
  262. {debugpy-1.8.5 → debugpy-1.8.6}/pyproject.toml +0 -0
  263. {debugpy-1.8.5 → debugpy-1.8.6}/setup.cfg +0 -0
  264. {debugpy-1.8.5 → debugpy-1.8.6}/setup.py +0 -0
  265. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/ThirdPartyNotices.txt +0 -0
  266. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/__init__.py +0 -0
  267. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/__main__.py +0 -0
  268. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/__init__.py +0 -0
  269. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/_pydevd_packaging.py +0 -0
  270. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/_util.py +0 -0
  271. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/force_pydevd.py +0 -0
  272. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/__init__.py +0 -0
  273. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_runfiles/__init__.py +0 -0
  274. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/__init__.py +0 -0
  275. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/__init__.py +0 -0
  276. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/debugProtocolCustom.json +0 -0
  277. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_concurrency_analyser/__init__.py +0 -0
  278. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/.gitignore +0 -0
  279. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/__init__.py +0 -0
  280. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.pxd +0 -0
  281. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.pyx +0 -0
  282. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.template.pyx +0 -0
  283. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/release_mem.h +0 -0
  284. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/README.txt +0 -0
  285. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/__init__.py +0 -0
  286. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/README +0 -0
  287. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/__init__.py +0 -0
  288. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_sitecustomize/__not_in_default_pythonpath.txt +0 -0
  289. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/README.txt +0 -0
  290. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_custom_pyeval_settrace.hpp +0 -0
  291. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_custom_pyeval_settrace_310.hpp +0 -0
  292. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_custom_pyeval_settrace_311.hpp +0 -0
  293. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_custom_pyeval_settrace_common.hpp +0 -0
  294. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_settrace.hpp +0 -0
  295. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/python.h +0 -0
  296. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/ref_utils.hpp +0 -0
  297. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/.gitignore +0 -0
  298. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/attach.cpp +0 -0
  299. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/compile_linux.sh +0 -0
  300. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/compile_mac.sh +0 -0
  301. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/compile_manylinux.cmd +0 -0
  302. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/attach.h +0 -0
  303. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/inject_dll.cpp +0 -0
  304. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/py_win_helpers.hpp +0 -0
  305. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/run_code_in_memory.hpp +0 -0
  306. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/run_code_on_dllmain.cpp +0 -0
  307. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/stdafx.cpp +0 -0
  308. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/stdafx.h +0 -0
  309. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/targetver.h +0 -0
  310. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/README.md +0 -0
  311. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/adapter/__init__.py +0 -0
  312. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/adapter/__main__.py +0 -0
  313. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/adapter/clients.py +0 -0
  314. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/adapter/components.py +0 -0
  315. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/adapter/launchers.py +0 -0
  316. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/adapter/servers.py +0 -0
  317. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/adapter/sessions.py +0 -0
  318. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/common/__init__.py +0 -0
  319. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/common/json.py +0 -0
  320. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/common/log.py +0 -0
  321. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/common/singleton.py +0 -0
  322. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/common/sockets.py +0 -0
  323. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/common/stacks.py +0 -0
  324. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/common/timestamp.py +0 -0
  325. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/common/util.py +0 -0
  326. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/launcher/__init__.py +0 -0
  327. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/launcher/__main__.py +0 -0
  328. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/launcher/debuggee.py +0 -0
  329. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/launcher/handlers.py +0 -0
  330. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/launcher/output.py +0 -0
  331. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/launcher/winapi.py +0 -0
  332. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/public_api.py +0 -0
  333. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/server/__init__.py +0 -0
  334. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/server/api.py +0 -0
  335. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/server/attach_pid_injected.py +0 -0
  336. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy.egg-info/dependency_links.txt +0 -0
  337. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy.egg-info/entry_points.txt +0 -0
  338. {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy.egg-info/top_level.txt +0 -0
  339. {debugpy-1.8.5 → debugpy-1.8.6}/versioneer.py +0 -0
@@ -58,38 +58,32 @@ Event handling module.
58
58
  __revision__ = "$Id$"
59
59
 
60
60
  __all__ = [
61
- # Factory of Event objects and all of it's subclasses.
62
- # Users should not need to instance Event objects directly.
63
- 'EventFactory',
64
-
65
- # Event dispatcher used internally by the Debug class.
66
- 'EventDispatcher',
67
-
68
- # Base classes for user-defined event handlers.
69
- 'EventHandler',
70
- 'EventSift',
71
-
72
- # Warning for uncaught exceptions on event callbacks.
73
- 'EventCallbackWarning',
74
-
75
- # Dummy event object that can be used as a placeholder.
76
- # It's never returned by the EventFactory.
77
- 'NoEvent',
78
-
79
- # Base class for event objects.
80
- 'Event',
81
-
82
- # Event objects.
83
- 'CreateProcessEvent',
84
- 'CreateThreadEvent',
85
- 'ExitProcessEvent',
86
- 'ExitThreadEvent',
87
- 'LoadDLLEvent',
88
- 'UnloadDLLEvent',
89
- 'OutputDebugStringEvent',
90
- 'RIPEvent',
91
- 'ExceptionEvent'
92
- ]
61
+ # Factory of Event objects and all of it's subclasses.
62
+ # Users should not need to instance Event objects directly.
63
+ "EventFactory",
64
+ # Event dispatcher used internally by the Debug class.
65
+ "EventDispatcher",
66
+ # Base classes for user-defined event handlers.
67
+ "EventHandler",
68
+ "EventSift",
69
+ # Warning for uncaught exceptions on event callbacks.
70
+ "EventCallbackWarning",
71
+ # Dummy event object that can be used as a placeholder.
72
+ # It's never returned by the EventFactory.
73
+ "NoEvent",
74
+ # Base class for event objects.
75
+ "Event",
76
+ # Event objects.
77
+ "CreateProcessEvent",
78
+ "CreateThreadEvent",
79
+ "ExitProcessEvent",
80
+ "ExitThreadEvent",
81
+ "LoadDLLEvent",
82
+ "UnloadDLLEvent",
83
+ "OutputDebugStringEvent",
84
+ "RIPEvent",
85
+ "ExceptionEvent",
86
+ ]
93
87
 
94
88
  from winappdbg import win32
95
89
  from winappdbg import compat
@@ -106,17 +100,20 @@ import ctypes
106
100
  import warnings
107
101
  import traceback
108
102
 
109
- #==============================================================================
103
+ # ==============================================================================
110
104
 
111
- class EventCallbackWarning (RuntimeWarning):
105
+
106
+ class EventCallbackWarning(RuntimeWarning):
112
107
  """
113
108
  This warning is issued when an uncaught exception was raised by a
114
109
  user-defined event handler.
115
110
  """
116
111
 
117
- #==============================================================================
118
112
 
119
- class Event (object):
113
+ # ==============================================================================
114
+
115
+
116
+ class Event(object):
120
117
  """
121
118
  Event object.
122
119
 
@@ -146,9 +143,9 @@ class Event (object):
146
143
  Continue status to pass to L{win32.ContinueDebugEvent}.
147
144
  """
148
145
 
149
- eventMethod = 'unknown_event'
150
- eventName = 'Unknown event'
151
- eventDescription = 'A debug event of an unknown type has occured.'
146
+ eventMethod = "unknown_event"
147
+ eventName = "Unknown event"
148
+ eventDescription = "A debug event of an unknown type has occured."
152
149
 
153
150
  def __init__(self, debug, raw):
154
151
  """
@@ -158,18 +155,18 @@ class Event (object):
158
155
  @type raw: L{DEBUG_EVENT}
159
156
  @param raw: Raw DEBUG_EVENT structure as used by the Win32 API.
160
157
  """
161
- self.debug = debug
162
- self.raw = raw
158
+ self.debug = debug
159
+ self.raw = raw
163
160
  self.continueStatus = win32.DBG_EXCEPTION_NOT_HANDLED
164
161
 
165
- ## @property
166
- ## def debug(self):
167
- ## """
168
- ## @rtype debug: L{Debug}
169
- ## @return debug:
170
- ## Debug object that received the event.
171
- ## """
172
- ## return self.__debug()
162
+ ## @property
163
+ ## def debug(self):
164
+ ## """
165
+ ## @rtype debug: L{Debug}
166
+ ## @return debug:
167
+ ## Debug object that received the event.
168
+ ## """
169
+ ## return self.__debug()
173
170
 
174
171
  def get_event_name(self):
175
172
  """
@@ -192,18 +189,18 @@ class Event (object):
192
189
  """
193
190
  return self.raw.dwDebugEventCode
194
191
 
195
- ## # Compatibility with version 1.0
196
- ## # XXX to be removed in version 1.4
197
- ## def get_code(self):
198
- ## """
199
- ## Alias of L{get_event_code} for backwards compatibility
200
- ## with WinAppDbg version 1.0.
201
- ## Will be phased out in the next version.
202
- ##
203
- ## @rtype: int
204
- ## @return: Debug event code as defined in the Win32 API.
205
- ## """
206
- ## return self.get_event_code()
192
+ ## # Compatibility with version 1.0
193
+ ## # XXX to be removed in version 1.4
194
+ ## def get_code(self):
195
+ ## """
196
+ ## Alias of L{get_event_code} for backwards compatibility
197
+ ## with WinAppDbg version 1.0.
198
+ ## Will be phased out in the next version.
199
+ ##
200
+ ## @rtype: int
201
+ ## @return: Debug event code as defined in the Win32 API.
202
+ ## """
203
+ ## return self.get_event_code()
207
204
 
208
205
  def get_pid(self):
209
206
  """
@@ -230,8 +227,8 @@ class Event (object):
230
227
  @rtype: L{Process}
231
228
  @return: Process where the event occured.
232
229
  """
233
- pid = self.get_pid()
234
- system = self.debug.system
230
+ pid = self.get_pid()
231
+ system = self.debug.system
235
232
  if system.has_process(pid):
236
233
  process = system.get_process(pid)
237
234
  else:
@@ -239,7 +236,7 @@ class Event (object):
239
236
  # The process object was missing for some reason, so make a new one.
240
237
  process = Process(pid)
241
238
  system._add_process(process)
242
- ## process.scan_threads() # not needed
239
+ ## process.scan_threads() # not needed
243
240
  process.scan_modules()
244
241
  return process
245
242
 
@@ -250,7 +247,7 @@ class Event (object):
250
247
  @rtype: L{Thread}
251
248
  @return: Thread where the event occured.
252
249
  """
253
- tid = self.get_tid()
250
+ tid = self.get_tid()
254
251
  process = self.get_process()
255
252
  if process.has_thread(tid):
256
253
  thread = process.get_thread(tid)
@@ -261,9 +258,11 @@ class Event (object):
261
258
  process._add_thread(thread)
262
259
  return thread
263
260
 
264
- #==============================================================================
265
261
 
266
- class NoEvent (Event):
262
+ # ==============================================================================
263
+
264
+
265
+ class NoEvent(Event):
267
266
  """
268
267
  No event.
269
268
 
@@ -271,11 +270,11 @@ class NoEvent (Event):
271
270
  event has occured yet. It's never returned by the L{EventFactory}.
272
271
  """
273
272
 
274
- eventMethod = 'no_event'
275
- eventName = 'No event'
276
- eventDescription = 'No debug event has occured.'
273
+ eventMethod = "no_event"
274
+ eventName = "No event"
275
+ eventDescription = "No debug event has occured."
277
276
 
278
- def __init__(self, debug, raw = None):
277
+ def __init__(self, debug, raw=None):
279
278
  Event.__init__(self, debug, raw)
280
279
 
281
280
  def __len__(self):
@@ -301,9 +300,11 @@ class NoEvent (Event):
301
300
  def get_thread(self):
302
301
  return Thread(self.get_tid())
303
302
 
304
- #==============================================================================
305
303
 
306
- class ExceptionEvent (Event):
304
+ # ==============================================================================
305
+
306
+
307
+ class ExceptionEvent(Event):
307
308
  """
308
309
  Exception event.
309
310
 
@@ -330,103 +331,102 @@ class ExceptionEvent (Event):
330
331
  handler.
331
332
  """
332
333
 
333
- eventName = 'Exception event'
334
- eventDescription = 'An exception was raised by the debugee.'
334
+ eventName = "Exception event"
335
+ eventDescription = "An exception was raised by the debugee."
335
336
 
336
337
  __exceptionMethod = {
337
- win32.EXCEPTION_ACCESS_VIOLATION : 'access_violation',
338
- win32.EXCEPTION_ARRAY_BOUNDS_EXCEEDED : 'array_bounds_exceeded',
339
- win32.EXCEPTION_BREAKPOINT : 'breakpoint',
340
- win32.EXCEPTION_DATATYPE_MISALIGNMENT : 'datatype_misalignment',
341
- win32.EXCEPTION_FLT_DENORMAL_OPERAND : 'float_denormal_operand',
342
- win32.EXCEPTION_FLT_DIVIDE_BY_ZERO : 'float_divide_by_zero',
343
- win32.EXCEPTION_FLT_INEXACT_RESULT : 'float_inexact_result',
344
- win32.EXCEPTION_FLT_INVALID_OPERATION : 'float_invalid_operation',
345
- win32.EXCEPTION_FLT_OVERFLOW : 'float_overflow',
346
- win32.EXCEPTION_FLT_STACK_CHECK : 'float_stack_check',
347
- win32.EXCEPTION_FLT_UNDERFLOW : 'float_underflow',
348
- win32.EXCEPTION_ILLEGAL_INSTRUCTION : 'illegal_instruction',
349
- win32.EXCEPTION_IN_PAGE_ERROR : 'in_page_error',
350
- win32.EXCEPTION_INT_DIVIDE_BY_ZERO : 'integer_divide_by_zero',
351
- win32.EXCEPTION_INT_OVERFLOW : 'integer_overflow',
352
- win32.EXCEPTION_INVALID_DISPOSITION : 'invalid_disposition',
353
- win32.EXCEPTION_NONCONTINUABLE_EXCEPTION : 'noncontinuable_exception',
354
- win32.EXCEPTION_PRIV_INSTRUCTION : 'privileged_instruction',
355
- win32.EXCEPTION_SINGLE_STEP : 'single_step',
356
- win32.EXCEPTION_STACK_OVERFLOW : 'stack_overflow',
357
- win32.EXCEPTION_GUARD_PAGE : 'guard_page',
358
- win32.EXCEPTION_INVALID_HANDLE : 'invalid_handle',
359
- win32.EXCEPTION_POSSIBLE_DEADLOCK : 'possible_deadlock',
360
- win32.EXCEPTION_WX86_BREAKPOINT : 'wow64_breakpoint',
361
- win32.CONTROL_C_EXIT : 'control_c_exit',
362
- win32.DBG_CONTROL_C : 'debug_control_c',
363
- win32.MS_VC_EXCEPTION : 'ms_vc_exception',
338
+ win32.EXCEPTION_ACCESS_VIOLATION: "access_violation",
339
+ win32.EXCEPTION_ARRAY_BOUNDS_EXCEEDED: "array_bounds_exceeded",
340
+ win32.EXCEPTION_BREAKPOINT: "breakpoint",
341
+ win32.EXCEPTION_DATATYPE_MISALIGNMENT: "datatype_misalignment",
342
+ win32.EXCEPTION_FLT_DENORMAL_OPERAND: "float_denormal_operand",
343
+ win32.EXCEPTION_FLT_DIVIDE_BY_ZERO: "float_divide_by_zero",
344
+ win32.EXCEPTION_FLT_INEXACT_RESULT: "float_inexact_result",
345
+ win32.EXCEPTION_FLT_INVALID_OPERATION: "float_invalid_operation",
346
+ win32.EXCEPTION_FLT_OVERFLOW: "float_overflow",
347
+ win32.EXCEPTION_FLT_STACK_CHECK: "float_stack_check",
348
+ win32.EXCEPTION_FLT_UNDERFLOW: "float_underflow",
349
+ win32.EXCEPTION_ILLEGAL_INSTRUCTION: "illegal_instruction",
350
+ win32.EXCEPTION_IN_PAGE_ERROR: "in_page_error",
351
+ win32.EXCEPTION_INT_DIVIDE_BY_ZERO: "integer_divide_by_zero",
352
+ win32.EXCEPTION_INT_OVERFLOW: "integer_overflow",
353
+ win32.EXCEPTION_INVALID_DISPOSITION: "invalid_disposition",
354
+ win32.EXCEPTION_NONCONTINUABLE_EXCEPTION: "noncontinuable_exception",
355
+ win32.EXCEPTION_PRIV_INSTRUCTION: "privileged_instruction",
356
+ win32.EXCEPTION_SINGLE_STEP: "single_step",
357
+ win32.EXCEPTION_STACK_OVERFLOW: "stack_overflow",
358
+ win32.EXCEPTION_GUARD_PAGE: "guard_page",
359
+ win32.EXCEPTION_INVALID_HANDLE: "invalid_handle",
360
+ win32.EXCEPTION_POSSIBLE_DEADLOCK: "possible_deadlock",
361
+ win32.EXCEPTION_WX86_BREAKPOINT: "wow64_breakpoint",
362
+ win32.CONTROL_C_EXIT: "control_c_exit",
363
+ win32.DBG_CONTROL_C: "debug_control_c",
364
+ win32.MS_VC_EXCEPTION: "ms_vc_exception",
364
365
  }
365
366
 
366
367
  __exceptionName = {
367
- win32.EXCEPTION_ACCESS_VIOLATION : 'EXCEPTION_ACCESS_VIOLATION',
368
- win32.EXCEPTION_ARRAY_BOUNDS_EXCEEDED : 'EXCEPTION_ARRAY_BOUNDS_EXCEEDED',
369
- win32.EXCEPTION_BREAKPOINT : 'EXCEPTION_BREAKPOINT',
370
- win32.EXCEPTION_DATATYPE_MISALIGNMENT : 'EXCEPTION_DATATYPE_MISALIGNMENT',
371
- win32.EXCEPTION_FLT_DENORMAL_OPERAND : 'EXCEPTION_FLT_DENORMAL_OPERAND',
372
- win32.EXCEPTION_FLT_DIVIDE_BY_ZERO : 'EXCEPTION_FLT_DIVIDE_BY_ZERO',
373
- win32.EXCEPTION_FLT_INEXACT_RESULT : 'EXCEPTION_FLT_INEXACT_RESULT',
374
- win32.EXCEPTION_FLT_INVALID_OPERATION : 'EXCEPTION_FLT_INVALID_OPERATION',
375
- win32.EXCEPTION_FLT_OVERFLOW : 'EXCEPTION_FLT_OVERFLOW',
376
- win32.EXCEPTION_FLT_STACK_CHECK : 'EXCEPTION_FLT_STACK_CHECK',
377
- win32.EXCEPTION_FLT_UNDERFLOW : 'EXCEPTION_FLT_UNDERFLOW',
378
- win32.EXCEPTION_ILLEGAL_INSTRUCTION : 'EXCEPTION_ILLEGAL_INSTRUCTION',
379
- win32.EXCEPTION_IN_PAGE_ERROR : 'EXCEPTION_IN_PAGE_ERROR',
380
- win32.EXCEPTION_INT_DIVIDE_BY_ZERO : 'EXCEPTION_INT_DIVIDE_BY_ZERO',
381
- win32.EXCEPTION_INT_OVERFLOW : 'EXCEPTION_INT_OVERFLOW',
382
- win32.EXCEPTION_INVALID_DISPOSITION : 'EXCEPTION_INVALID_DISPOSITION',
383
- win32.EXCEPTION_NONCONTINUABLE_EXCEPTION : 'EXCEPTION_NONCONTINUABLE_EXCEPTION',
384
- win32.EXCEPTION_PRIV_INSTRUCTION : 'EXCEPTION_PRIV_INSTRUCTION',
385
- win32.EXCEPTION_SINGLE_STEP : 'EXCEPTION_SINGLE_STEP',
386
- win32.EXCEPTION_STACK_OVERFLOW : 'EXCEPTION_STACK_OVERFLOW',
387
- win32.EXCEPTION_GUARD_PAGE : 'EXCEPTION_GUARD_PAGE',
388
- win32.EXCEPTION_INVALID_HANDLE : 'EXCEPTION_INVALID_HANDLE',
389
- win32.EXCEPTION_POSSIBLE_DEADLOCK : 'EXCEPTION_POSSIBLE_DEADLOCK',
390
- win32.EXCEPTION_WX86_BREAKPOINT : 'EXCEPTION_WX86_BREAKPOINT',
391
- win32.CONTROL_C_EXIT : 'CONTROL_C_EXIT',
392
- win32.DBG_CONTROL_C : 'DBG_CONTROL_C',
393
- win32.MS_VC_EXCEPTION : 'MS_VC_EXCEPTION',
368
+ win32.EXCEPTION_ACCESS_VIOLATION: "EXCEPTION_ACCESS_VIOLATION",
369
+ win32.EXCEPTION_ARRAY_BOUNDS_EXCEEDED: "EXCEPTION_ARRAY_BOUNDS_EXCEEDED",
370
+ win32.EXCEPTION_BREAKPOINT: "EXCEPTION_BREAKPOINT",
371
+ win32.EXCEPTION_DATATYPE_MISALIGNMENT: "EXCEPTION_DATATYPE_MISALIGNMENT",
372
+ win32.EXCEPTION_FLT_DENORMAL_OPERAND: "EXCEPTION_FLT_DENORMAL_OPERAND",
373
+ win32.EXCEPTION_FLT_DIVIDE_BY_ZERO: "EXCEPTION_FLT_DIVIDE_BY_ZERO",
374
+ win32.EXCEPTION_FLT_INEXACT_RESULT: "EXCEPTION_FLT_INEXACT_RESULT",
375
+ win32.EXCEPTION_FLT_INVALID_OPERATION: "EXCEPTION_FLT_INVALID_OPERATION",
376
+ win32.EXCEPTION_FLT_OVERFLOW: "EXCEPTION_FLT_OVERFLOW",
377
+ win32.EXCEPTION_FLT_STACK_CHECK: "EXCEPTION_FLT_STACK_CHECK",
378
+ win32.EXCEPTION_FLT_UNDERFLOW: "EXCEPTION_FLT_UNDERFLOW",
379
+ win32.EXCEPTION_ILLEGAL_INSTRUCTION: "EXCEPTION_ILLEGAL_INSTRUCTION",
380
+ win32.EXCEPTION_IN_PAGE_ERROR: "EXCEPTION_IN_PAGE_ERROR",
381
+ win32.EXCEPTION_INT_DIVIDE_BY_ZERO: "EXCEPTION_INT_DIVIDE_BY_ZERO",
382
+ win32.EXCEPTION_INT_OVERFLOW: "EXCEPTION_INT_OVERFLOW",
383
+ win32.EXCEPTION_INVALID_DISPOSITION: "EXCEPTION_INVALID_DISPOSITION",
384
+ win32.EXCEPTION_NONCONTINUABLE_EXCEPTION: "EXCEPTION_NONCONTINUABLE_EXCEPTION",
385
+ win32.EXCEPTION_PRIV_INSTRUCTION: "EXCEPTION_PRIV_INSTRUCTION",
386
+ win32.EXCEPTION_SINGLE_STEP: "EXCEPTION_SINGLE_STEP",
387
+ win32.EXCEPTION_STACK_OVERFLOW: "EXCEPTION_STACK_OVERFLOW",
388
+ win32.EXCEPTION_GUARD_PAGE: "EXCEPTION_GUARD_PAGE",
389
+ win32.EXCEPTION_INVALID_HANDLE: "EXCEPTION_INVALID_HANDLE",
390
+ win32.EXCEPTION_POSSIBLE_DEADLOCK: "EXCEPTION_POSSIBLE_DEADLOCK",
391
+ win32.EXCEPTION_WX86_BREAKPOINT: "EXCEPTION_WX86_BREAKPOINT",
392
+ win32.CONTROL_C_EXIT: "CONTROL_C_EXIT",
393
+ win32.DBG_CONTROL_C: "DBG_CONTROL_C",
394
+ win32.MS_VC_EXCEPTION: "MS_VC_EXCEPTION",
394
395
  }
395
396
 
396
397
  __exceptionDescription = {
397
- win32.EXCEPTION_ACCESS_VIOLATION : 'Access violation',
398
- win32.EXCEPTION_ARRAY_BOUNDS_EXCEEDED : 'Array bounds exceeded',
399
- win32.EXCEPTION_BREAKPOINT : 'Breakpoint',
400
- win32.EXCEPTION_DATATYPE_MISALIGNMENT : 'Datatype misalignment',
401
- win32.EXCEPTION_FLT_DENORMAL_OPERAND : 'Float denormal operand',
402
- win32.EXCEPTION_FLT_DIVIDE_BY_ZERO : 'Float divide by zero',
403
- win32.EXCEPTION_FLT_INEXACT_RESULT : 'Float inexact result',
404
- win32.EXCEPTION_FLT_INVALID_OPERATION : 'Float invalid operation',
405
- win32.EXCEPTION_FLT_OVERFLOW : 'Float overflow',
406
- win32.EXCEPTION_FLT_STACK_CHECK : 'Float stack check',
407
- win32.EXCEPTION_FLT_UNDERFLOW : 'Float underflow',
408
- win32.EXCEPTION_ILLEGAL_INSTRUCTION : 'Illegal instruction',
409
- win32.EXCEPTION_IN_PAGE_ERROR : 'In-page error',
410
- win32.EXCEPTION_INT_DIVIDE_BY_ZERO : 'Integer divide by zero',
411
- win32.EXCEPTION_INT_OVERFLOW : 'Integer overflow',
412
- win32.EXCEPTION_INVALID_DISPOSITION : 'Invalid disposition',
413
- win32.EXCEPTION_NONCONTINUABLE_EXCEPTION : 'Noncontinuable exception',
414
- win32.EXCEPTION_PRIV_INSTRUCTION : 'Privileged instruction',
415
- win32.EXCEPTION_SINGLE_STEP : 'Single step event',
416
- win32.EXCEPTION_STACK_OVERFLOW : 'Stack limits overflow',
417
- win32.EXCEPTION_GUARD_PAGE : 'Guard page hit',
418
- win32.EXCEPTION_INVALID_HANDLE : 'Invalid handle',
419
- win32.EXCEPTION_POSSIBLE_DEADLOCK : 'Possible deadlock',
420
- win32.EXCEPTION_WX86_BREAKPOINT : 'WOW64 breakpoint',
421
- win32.CONTROL_C_EXIT : 'Control-C exit',
422
- win32.DBG_CONTROL_C : 'Debug Control-C',
423
- win32.MS_VC_EXCEPTION : 'Microsoft Visual C++ exception',
398
+ win32.EXCEPTION_ACCESS_VIOLATION: "Access violation",
399
+ win32.EXCEPTION_ARRAY_BOUNDS_EXCEEDED: "Array bounds exceeded",
400
+ win32.EXCEPTION_BREAKPOINT: "Breakpoint",
401
+ win32.EXCEPTION_DATATYPE_MISALIGNMENT: "Datatype misalignment",
402
+ win32.EXCEPTION_FLT_DENORMAL_OPERAND: "Float denormal operand",
403
+ win32.EXCEPTION_FLT_DIVIDE_BY_ZERO: "Float divide by zero",
404
+ win32.EXCEPTION_FLT_INEXACT_RESULT: "Float inexact result",
405
+ win32.EXCEPTION_FLT_INVALID_OPERATION: "Float invalid operation",
406
+ win32.EXCEPTION_FLT_OVERFLOW: "Float overflow",
407
+ win32.EXCEPTION_FLT_STACK_CHECK: "Float stack check",
408
+ win32.EXCEPTION_FLT_UNDERFLOW: "Float underflow",
409
+ win32.EXCEPTION_ILLEGAL_INSTRUCTION: "Illegal instruction",
410
+ win32.EXCEPTION_IN_PAGE_ERROR: "In-page error",
411
+ win32.EXCEPTION_INT_DIVIDE_BY_ZERO: "Integer divide by zero",
412
+ win32.EXCEPTION_INT_OVERFLOW: "Integer overflow",
413
+ win32.EXCEPTION_INVALID_DISPOSITION: "Invalid disposition",
414
+ win32.EXCEPTION_NONCONTINUABLE_EXCEPTION: "Noncontinuable exception",
415
+ win32.EXCEPTION_PRIV_INSTRUCTION: "Privileged instruction",
416
+ win32.EXCEPTION_SINGLE_STEP: "Single step event",
417
+ win32.EXCEPTION_STACK_OVERFLOW: "Stack limits overflow",
418
+ win32.EXCEPTION_GUARD_PAGE: "Guard page hit",
419
+ win32.EXCEPTION_INVALID_HANDLE: "Invalid handle",
420
+ win32.EXCEPTION_POSSIBLE_DEADLOCK: "Possible deadlock",
421
+ win32.EXCEPTION_WX86_BREAKPOINT: "WOW64 breakpoint",
422
+ win32.CONTROL_C_EXIT: "Control-C exit",
423
+ win32.DBG_CONTROL_C: "Debug Control-C",
424
+ win32.MS_VC_EXCEPTION: "Microsoft Visual C++ exception",
424
425
  }
425
426
 
426
427
  @property
427
428
  def eventMethod(self):
428
- return self.__exceptionMethod.get(
429
- self.get_exception_code(), 'unknown_exception')
429
+ return self.__exceptionMethod.get(self.get_exception_code(), "unknown_exception")
430
430
 
431
431
  def get_exception_name(self):
432
432
  """
@@ -434,7 +434,7 @@ class ExceptionEvent (Event):
434
434
  @return: Name of the exception as defined by the Win32 API.
435
435
  """
436
436
  code = self.get_exception_code()
437
- unk = HexDump.integer(code)
437
+ unk = HexDump.integer(code)
438
438
  return self.__exceptionName.get(code, unk)
439
439
 
440
440
  def get_exception_description(self):
@@ -446,11 +446,10 @@ class ExceptionEvent (Event):
446
446
  description = self.__exceptionDescription.get(code, None)
447
447
  if description is None:
448
448
  try:
449
- description = 'Exception code %s (%s)'
450
- description = description % (HexDump.integer(code),
451
- ctypes.FormatError(code))
449
+ description = "Exception code %s (%s)"
450
+ description = description % (HexDump.integer(code), ctypes.FormatError(code))
452
451
  except OverflowError:
453
- description = 'Exception code %s' % HexDump.integer(code)
452
+ description = "Exception code %s" % HexDump.integer(code)
454
453
  return description
455
454
 
456
455
  def is_first_chance(self):
@@ -478,8 +477,7 @@ class ExceptionEvent (Event):
478
477
  Attempting to continue a noncontinuable exception results in an
479
478
  EXCEPTION_NONCONTINUABLE_EXCEPTION exception to be raised.
480
479
  """
481
- return bool( self.raw.u.Exception.ExceptionRecord.ExceptionFlags & \
482
- win32.EXCEPTION_NONCONTINUABLE )
480
+ return bool(self.raw.u.Exception.ExceptionRecord.ExceptionFlags & win32.EXCEPTION_NONCONTINUABLE)
483
481
 
484
482
  def is_continuable(self):
485
483
  """
@@ -570,8 +568,7 @@ class ExceptionEvent (Event):
570
568
 
571
569
  @raise NotImplementedError: Wrong kind of exception.
572
570
  """
573
- if self.get_exception_code() not in (win32.EXCEPTION_ACCESS_VIOLATION,
574
- win32.EXCEPTION_IN_PAGE_ERROR, win32.EXCEPTION_GUARD_PAGE):
571
+ if self.get_exception_code() not in (win32.EXCEPTION_ACCESS_VIOLATION, win32.EXCEPTION_IN_PAGE_ERROR, win32.EXCEPTION_GUARD_PAGE):
575
572
  msg = "This method is not meaningful for %s."
576
573
  raise NotImplementedError(msg % self.get_exception_name())
577
574
  return self.get_exception_information(0)
@@ -586,8 +583,7 @@ class ExceptionEvent (Event):
586
583
 
587
584
  @raise NotImplementedError: Wrong kind of exception.
588
585
  """
589
- if self.get_exception_code() not in (win32.EXCEPTION_ACCESS_VIOLATION,
590
- win32.EXCEPTION_IN_PAGE_ERROR, win32.EXCEPTION_GUARD_PAGE):
586
+ if self.get_exception_code() not in (win32.EXCEPTION_ACCESS_VIOLATION, win32.EXCEPTION_IN_PAGE_ERROR, win32.EXCEPTION_GUARD_PAGE):
591
587
  msg = "This method is not meaningful for %s."
592
588
  raise NotImplementedError(msg % self.get_exception_name())
593
589
  return self.get_exception_information(1)
@@ -603,8 +599,7 @@ class ExceptionEvent (Event):
603
599
  @raise NotImplementedError: Not an in-page memory error.
604
600
  """
605
601
  if self.get_exception_code() != win32.EXCEPTION_IN_PAGE_ERROR:
606
- msg = "This method is only meaningful "\
607
- "for in-page memory error exceptions."
602
+ msg = "This method is only meaningful " "for in-page memory error exceptions."
608
603
  raise NotImplementedError(msg)
609
604
  return self.get_exception_information(2)
610
605
 
@@ -665,37 +660,39 @@ class ExceptionEvent (Event):
665
660
  # The list always begins with ourselves.
666
661
  # Just put a reference to "self" as the first element,
667
662
  # and start looping from the second exception record.
668
- nested = [ self ]
663
+ nested = [self]
669
664
  raw = self.raw
670
665
  dwDebugEventCode = raw.dwDebugEventCode
671
- dwProcessId = raw.dwProcessId
672
- dwThreadId = raw.dwThreadId
673
- dwFirstChance = raw.u.Exception.dwFirstChance
674
- record = raw.u.Exception.ExceptionRecord
666
+ dwProcessId = raw.dwProcessId
667
+ dwThreadId = raw.dwThreadId
668
+ dwFirstChance = raw.u.Exception.dwFirstChance
669
+ record = raw.u.Exception.ExceptionRecord
675
670
  while True:
676
671
  record = record.ExceptionRecord
677
672
  if not record:
678
673
  break
679
674
  raw = win32.DEBUG_EVENT()
680
- raw.dwDebugEventCode = dwDebugEventCode
681
- raw.dwProcessId = dwProcessId
682
- raw.dwThreadId = dwThreadId
675
+ raw.dwDebugEventCode = dwDebugEventCode
676
+ raw.dwProcessId = dwProcessId
677
+ raw.dwThreadId = dwThreadId
683
678
  raw.u.Exception.ExceptionRecord = record
684
- raw.u.Exception.dwFirstChance = dwFirstChance
679
+ raw.u.Exception.dwFirstChance = dwFirstChance
685
680
  event = EventFactory.get(self.debug, raw)
686
681
  nested.append(event)
687
682
  return nested
688
683
 
689
- #==============================================================================
690
684
 
691
- class CreateThreadEvent (Event):
685
+ # ==============================================================================
686
+
687
+
688
+ class CreateThreadEvent(Event):
692
689
  """
693
690
  Thread creation event.
694
691
  """
695
692
 
696
- eventMethod = 'create_thread'
697
- eventName = 'Thread creation event'
698
- eventDescription = 'A new thread has started.'
693
+ eventMethod = "create_thread"
694
+ eventName = "Thread creation event"
695
+ eventDescription = "A new thread has started."
699
696
 
700
697
  def get_thread_handle(self):
701
698
  """
@@ -731,16 +728,18 @@ class CreateThreadEvent (Event):
731
728
  """
732
729
  return self.raw.u.CreateThread.lpStartAddress
733
730
 
734
- #==============================================================================
735
731
 
736
- class CreateProcessEvent (Event):
732
+ # ==============================================================================
733
+
734
+
735
+ class CreateProcessEvent(Event):
737
736
  """
738
737
  Process creation event.
739
738
  """
740
739
 
741
- eventMethod = 'create_process'
742
- eventName = 'Process creation event'
743
- eventDescription = 'A new process has started.'
740
+ eventMethod = "create_process"
741
+ eventName = "Process creation event"
742
+ eventDescription = "A new process has started."
744
743
 
745
744
  def get_file_handle(self):
746
745
  """
@@ -825,8 +824,8 @@ class CreateProcessEvent (Event):
825
824
  @rtype: str
826
825
  @return: Debugging information.
827
826
  """
828
- raw = self.raw.u.CreateProcessInfo
829
- ptr = raw.lpBaseOfImage + raw.dwDebugInfoFileOffset
827
+ raw = self.raw.u.CreateProcessInfo
828
+ ptr = raw.lpBaseOfImage + raw.dwDebugInfoFileOffset
830
829
  size = raw.nDebugInfoSize
831
830
  data = self.get_process().peek(ptr, size)
832
831
  if len(data) == size:
@@ -847,16 +846,15 @@ class CreateProcessEvent (Event):
847
846
  if hFile:
848
847
  szFilename = hFile.get_filename()
849
848
  if not szFilename:
850
-
851
849
  # Try to get it from CREATE_PROCESS_DEBUG_INFO.lpImageName
852
850
  # It's NULL or *NULL most of the times, see MSDN:
853
851
  # http://msdn.microsoft.com/en-us/library/ms679286(VS.85).aspx
854
852
  aProcess = self.get_process()
855
853
  lpRemoteFilenamePtr = self.raw.u.CreateProcessInfo.lpImageName
856
854
  if lpRemoteFilenamePtr:
857
- lpFilename = aProcess.peek_uint(lpRemoteFilenamePtr)
858
- fUnicode = bool( self.raw.u.CreateProcessInfo.fUnicode )
859
- szFilename = aProcess.peek_string(lpFilename, fUnicode)
855
+ lpFilename = aProcess.peek_uint(lpRemoteFilenamePtr)
856
+ fUnicode = bool(self.raw.u.CreateProcessInfo.fUnicode)
857
+ szFilename = aProcess.peek_string(lpFilename, fUnicode)
860
858
 
861
859
  # XXX TODO
862
860
  # Sometimes the filename is relative (ntdll.dll, kernel32.dll).
@@ -881,18 +879,20 @@ class CreateProcessEvent (Event):
881
879
  @rtype: L{Module}
882
880
  @return: Main module of the process.
883
881
  """
884
- return self.get_process().get_module( self.get_module_base() )
882
+ return self.get_process().get_module(self.get_module_base())
883
+
885
884
 
886
- #==============================================================================
885
+ # ==============================================================================
887
886
 
888
- class ExitThreadEvent (Event):
887
+
888
+ class ExitThreadEvent(Event):
889
889
  """
890
890
  Thread termination event.
891
891
  """
892
892
 
893
- eventMethod = 'exit_thread'
894
- eventName = 'Thread termination event'
895
- eventDescription = 'A thread has finished executing.'
893
+ eventMethod = "exit_thread"
894
+ eventName = "Thread termination event"
895
+ eventDescription = "A thread has finished executing."
896
896
 
897
897
  def get_exit_code(self):
898
898
  """
@@ -901,16 +901,18 @@ class ExitThreadEvent (Event):
901
901
  """
902
902
  return self.raw.u.ExitThread.dwExitCode
903
903
 
904
- #==============================================================================
905
904
 
906
- class ExitProcessEvent (Event):
905
+ # ==============================================================================
906
+
907
+
908
+ class ExitProcessEvent(Event):
907
909
  """
908
910
  Process termination event.
909
911
  """
910
912
 
911
- eventMethod = 'exit_process'
912
- eventName = 'Process termination event'
913
- eventDescription = 'A process has finished executing.'
913
+ eventMethod = "exit_process"
914
+ eventName = "Process termination event"
915
+ eventDescription = "A process has finished executing."
914
916
 
915
917
  def get_exit_code(self):
916
918
  """
@@ -948,16 +950,18 @@ class ExitProcessEvent (Event):
948
950
  """
949
951
  return self.get_process().get_main_module()
950
952
 
951
- #==============================================================================
952
953
 
953
- class LoadDLLEvent (Event):
954
+ # ==============================================================================
955
+
956
+
957
+ class LoadDLLEvent(Event):
954
958
  """
955
959
  Module load event.
956
960
  """
957
961
 
958
- eventMethod = 'load_dll'
959
- eventName = 'Module load event'
960
- eventDescription = 'A new DLL library was loaded by the debugee.'
962
+ eventMethod = "load_dll"
963
+ eventName = "Module load event"
964
+ eventDescription = "A new DLL library was loaded by the debugee."
961
965
 
962
966
  def get_module_base(self):
963
967
  """
@@ -972,16 +976,13 @@ class LoadDLLEvent (Event):
972
976
  @return: Module object for the newly loaded DLL.
973
977
  """
974
978
  lpBaseOfDll = self.get_module_base()
975
- aProcess = self.get_process()
979
+ aProcess = self.get_process()
976
980
  if aProcess.has_module(lpBaseOfDll):
977
981
  aModule = aProcess.get_module(lpBaseOfDll)
978
982
  else:
979
983
  # XXX HACK
980
984
  # For some reason the module object is missing, so make a new one.
981
- aModule = Module(lpBaseOfDll,
982
- hFile = self.get_file_handle(),
983
- fileName = self.get_filename(),
984
- process = aProcess)
985
+ aModule = Module(lpBaseOfDll, hFile=self.get_file_handle(), fileName=self.get_filename(), process=aProcess)
985
986
  aProcess._add_module(aModule)
986
987
  return aModule
987
988
 
@@ -1020,9 +1021,9 @@ class LoadDLLEvent (Event):
1020
1021
  aProcess = self.get_process()
1021
1022
  lpRemoteFilenamePtr = self.raw.u.LoadDll.lpImageName
1022
1023
  if lpRemoteFilenamePtr:
1023
- lpFilename = aProcess.peek_uint(lpRemoteFilenamePtr)
1024
- fUnicode = bool( self.raw.u.LoadDll.fUnicode )
1025
- szFilename = aProcess.peek_string(lpFilename, fUnicode)
1024
+ lpFilename = aProcess.peek_uint(lpRemoteFilenamePtr)
1025
+ fUnicode = bool(self.raw.u.LoadDll.fUnicode)
1026
+ szFilename = aProcess.peek_string(lpFilename, fUnicode)
1026
1027
  if not szFilename:
1027
1028
  szFilename = None
1028
1029
 
@@ -1035,16 +1036,18 @@ class LoadDLLEvent (Event):
1035
1036
  # Return the filename, or None on error.
1036
1037
  return szFilename
1037
1038
 
1038
- #==============================================================================
1039
1039
 
1040
- class UnloadDLLEvent (Event):
1040
+ # ==============================================================================
1041
+
1042
+
1043
+ class UnloadDLLEvent(Event):
1041
1044
  """
1042
1045
  Module unload event.
1043
1046
  """
1044
1047
 
1045
- eventMethod = 'unload_dll'
1046
- eventName = 'Module unload event'
1047
- eventDescription = 'A DLL library was unloaded by the debugee.'
1048
+ eventMethod = "unload_dll"
1049
+ eventName = "Module unload event"
1050
+ eventDescription = "A DLL library was unloaded by the debugee."
1048
1051
 
1049
1052
  def get_module_base(self):
1050
1053
  """
@@ -1059,11 +1062,11 @@ class UnloadDLLEvent (Event):
1059
1062
  @return: Module object for the recently unloaded DLL.
1060
1063
  """
1061
1064
  lpBaseOfDll = self.get_module_base()
1062
- aProcess = self.get_process()
1065
+ aProcess = self.get_process()
1063
1066
  if aProcess.has_module(lpBaseOfDll):
1064
1067
  aModule = aProcess.get_module(lpBaseOfDll)
1065
1068
  else:
1066
- aModule = Module(lpBaseOfDll, process = aProcess)
1069
+ aModule = Module(lpBaseOfDll, process=aProcess)
1067
1070
  aProcess._add_module(aModule)
1068
1071
  return aModule
1069
1072
 
@@ -1086,16 +1089,18 @@ class UnloadDLLEvent (Event):
1086
1089
  """
1087
1090
  return self.get_module().get_filename()
1088
1091
 
1089
- #==============================================================================
1090
1092
 
1091
- class OutputDebugStringEvent (Event):
1093
+ # ==============================================================================
1094
+
1095
+
1096
+ class OutputDebugStringEvent(Event):
1092
1097
  """
1093
1098
  Debug string output event.
1094
1099
  """
1095
1100
 
1096
- eventMethod = 'output_string'
1097
- eventName = 'Debug string output event'
1098
- eventDescription = 'The debugee sent a message to the debugger.'
1101
+ eventMethod = "output_string"
1102
+ eventName = "Debug string output event"
1103
+ eventDescription = "The debugee sent a message to the debugger."
1099
1104
 
1100
1105
  def get_debug_string(self):
1101
1106
  """
@@ -1104,21 +1109,21 @@ class OutputDebugStringEvent (Event):
1104
1109
  It may be ANSI or Unicode and may end with a null character.
1105
1110
  """
1106
1111
  return self.get_process().peek_string(
1107
- self.raw.u.DebugString.lpDebugStringData,
1108
- bool( self.raw.u.DebugString.fUnicode ),
1109
- self.raw.u.DebugString.nDebugStringLength)
1112
+ self.raw.u.DebugString.lpDebugStringData, bool(self.raw.u.DebugString.fUnicode), self.raw.u.DebugString.nDebugStringLength
1113
+ )
1110
1114
 
1111
- #==============================================================================
1112
1115
 
1113
- class RIPEvent (Event):
1116
+ # ==============================================================================
1117
+
1118
+
1119
+ class RIPEvent(Event):
1114
1120
  """
1115
1121
  RIP event.
1116
1122
  """
1117
1123
 
1118
- eventMethod = 'rip'
1119
- eventName = 'RIP event'
1120
- eventDescription = 'An error has occured and the process ' \
1121
- 'can no longer be debugged.'
1124
+ eventMethod = "rip"
1125
+ eventName = "RIP event"
1126
+ eventDescription = "An error has occured and the process " "can no longer be debugged."
1122
1127
 
1123
1128
  def get_rip_error(self):
1124
1129
  """
@@ -1138,9 +1143,11 @@ class RIPEvent (Event):
1138
1143
  """
1139
1144
  return self.raw.u.RipInfo.dwType
1140
1145
 
1141
- #==============================================================================
1142
1146
 
1143
- class EventFactory (StaticClass):
1147
+ # ==============================================================================
1148
+
1149
+
1150
+ class EventFactory(StaticClass):
1144
1151
  """
1145
1152
  Factory of L{Event} objects.
1146
1153
 
@@ -1154,17 +1161,17 @@ class EventFactory (StaticClass):
1154
1161
  Dictionary that maps event codes to L{Event} subclasses.
1155
1162
  """
1156
1163
 
1157
- baseEvent = Event
1164
+ baseEvent = Event
1158
1165
  eventClasses = {
1159
- win32.EXCEPTION_DEBUG_EVENT : ExceptionEvent, # 1
1160
- win32.CREATE_THREAD_DEBUG_EVENT : CreateThreadEvent, # 2
1161
- win32.CREATE_PROCESS_DEBUG_EVENT : CreateProcessEvent, # 3
1162
- win32.EXIT_THREAD_DEBUG_EVENT : ExitThreadEvent, # 4
1163
- win32.EXIT_PROCESS_DEBUG_EVENT : ExitProcessEvent, # 5
1164
- win32.LOAD_DLL_DEBUG_EVENT : LoadDLLEvent, # 6
1165
- win32.UNLOAD_DLL_DEBUG_EVENT : UnloadDLLEvent, # 7
1166
- win32.OUTPUT_DEBUG_STRING_EVENT : OutputDebugStringEvent, # 8
1167
- win32.RIP_EVENT : RIPEvent, # 9
1166
+ win32.EXCEPTION_DEBUG_EVENT: ExceptionEvent, # 1
1167
+ win32.CREATE_THREAD_DEBUG_EVENT: CreateThreadEvent, # 2
1168
+ win32.CREATE_PROCESS_DEBUG_EVENT: CreateProcessEvent, # 3
1169
+ win32.EXIT_THREAD_DEBUG_EVENT: ExitThreadEvent, # 4
1170
+ win32.EXIT_PROCESS_DEBUG_EVENT: ExitProcessEvent, # 5
1171
+ win32.LOAD_DLL_DEBUG_EVENT: LoadDLLEvent, # 6
1172
+ win32.UNLOAD_DLL_DEBUG_EVENT: UnloadDLLEvent, # 7
1173
+ win32.OUTPUT_DEBUG_STRING_EVENT: OutputDebugStringEvent, # 8
1174
+ win32.RIP_EVENT: RIPEvent, # 9
1168
1175
  }
1169
1176
 
1170
1177
  @classmethod
@@ -1183,9 +1190,11 @@ class EventFactory (StaticClass):
1183
1190
  eventClass = cls.eventClasses.get(raw.dwDebugEventCode, cls.baseEvent)
1184
1191
  return eventClass(debug, raw)
1185
1192
 
1186
- #==============================================================================
1187
1193
 
1188
- class EventHandler (object):
1194
+ # ==============================================================================
1195
+
1196
+
1197
+ class EventHandler(object):
1189
1198
  """
1190
1199
  Base class for debug event handlers.
1191
1200
 
@@ -1360,7 +1369,7 @@ class EventHandler (object):
1360
1369
  return value from the hooked function.
1361
1370
  """
1362
1371
 
1363
- #------------------------------------------------------------------------------
1372
+ # ------------------------------------------------------------------------------
1364
1373
 
1365
1374
  # Default (empty) API hooks dictionary.
1366
1375
  apiHooks = {}
@@ -1403,9 +1412,9 @@ class EventHandler (object):
1403
1412
  hook_objs = []
1404
1413
  for proc, args in hooks:
1405
1414
  if type(args) in (int, long):
1406
- h = ApiHook(self, lib, proc, paramCount = args)
1415
+ h = ApiHook(self, lib, proc, paramCount=args)
1407
1416
  else:
1408
- h = ApiHook(self, lib, proc, signature = args)
1417
+ h = ApiHook(self, lib, proc, signature=args)
1409
1418
  hook_objs.append(h)
1410
1419
  apiHooks[lib] = hook_objs
1411
1420
  self.__apiHooks = apiHooks
@@ -1433,7 +1442,7 @@ class EventHandler (object):
1433
1442
  This method is called automatically whenever a DLL is loaded.
1434
1443
  """
1435
1444
  debug = event.debug
1436
- pid = event.get_pid()
1445
+ pid = event.get_pid()
1437
1446
  for hook_api_stub in self.__get_hooks_for_dll(event):
1438
1447
  hook_api_stub.hook(debug, pid)
1439
1448
 
@@ -1444,7 +1453,7 @@ class EventHandler (object):
1444
1453
  This method is called automatically whenever a DLL is unloaded.
1445
1454
  """
1446
1455
  debug = event.debug
1447
- pid = event.get_pid()
1456
+ pid = event.get_pid()
1448
1457
  for hook_api_stub in self.__get_hooks_for_dll(event):
1449
1458
  hook_api_stub.unhook(debug, pid)
1450
1459
 
@@ -1468,7 +1477,8 @@ class EventHandler (object):
1468
1477
  if method is not None:
1469
1478
  return method(event)
1470
1479
 
1471
- #==============================================================================
1480
+
1481
+ # ==============================================================================
1472
1482
 
1473
1483
  # TODO
1474
1484
  # * Make it more generic by adding a few more callbacks.
@@ -1476,6 +1486,7 @@ class EventHandler (object):
1476
1486
  # * This interface feels too much like an antipattern.
1477
1487
  # When apiHooks is deprecated this will have to be reviewed.
1478
1488
 
1489
+
1479
1490
  class EventSift(EventHandler):
1480
1491
  """
1481
1492
  Event handler that allows you to use customized event handlers for each
@@ -1598,9 +1609,9 @@ class EventSift(EventHandler):
1598
1609
  the event forwarder will be passed on to the constructor of this
1599
1610
  class as well.
1600
1611
  """
1601
- self.cls = cls
1602
- self.argv = argv
1603
- self.argd = argd
1612
+ self.cls = cls
1613
+ self.argv = argv
1614
+ self.argd = argd
1604
1615
  self.forward = dict()
1605
1616
  super(EventSift, self).__init__()
1606
1617
 
@@ -1609,8 +1620,7 @@ class EventSift(EventHandler):
1609
1620
  def __call__(self, event):
1610
1621
  try:
1611
1622
  eventCode = event.get_event_code()
1612
- if eventCode in (win32.LOAD_DLL_DEBUG_EVENT,
1613
- win32.LOAD_DLL_DEBUG_EVENT):
1623
+ if eventCode in (win32.LOAD_DLL_DEBUG_EVENT, win32.LOAD_DLL_DEBUG_EVENT):
1614
1624
  pid = event.get_pid()
1615
1625
  handler = self.forward.get(pid, None)
1616
1626
  if handler is None:
@@ -1646,9 +1656,11 @@ class EventSift(EventHandler):
1646
1656
  del self.forward[pid]
1647
1657
  return handler(event)
1648
1658
 
1649
- #==============================================================================
1650
1659
 
1651
- class EventDispatcher (object):
1660
+ # ==============================================================================
1661
+
1662
+
1663
+ class EventDispatcher(object):
1652
1664
  """
1653
1665
  Implements debug event dispatching capabilities.
1654
1666
 
@@ -1660,40 +1672,39 @@ class EventDispatcher (object):
1660
1672
  # These routines are called BEFORE the user-defined handlers.
1661
1673
  # Unknown codes are ignored.
1662
1674
  __preEventNotifyCallbackName = {
1663
- win32.CREATE_THREAD_DEBUG_EVENT : '_notify_create_thread',
1664
- win32.CREATE_PROCESS_DEBUG_EVENT : '_notify_create_process',
1665
- win32.LOAD_DLL_DEBUG_EVENT : '_notify_load_dll',
1675
+ win32.CREATE_THREAD_DEBUG_EVENT: "_notify_create_thread",
1676
+ win32.CREATE_PROCESS_DEBUG_EVENT: "_notify_create_process",
1677
+ win32.LOAD_DLL_DEBUG_EVENT: "_notify_load_dll",
1666
1678
  }
1667
1679
 
1668
1680
  # Maps event code constants to the names of the post-notify routines.
1669
1681
  # These routines are called AFTER the user-defined handlers.
1670
1682
  # Unknown codes are ignored.
1671
1683
  __postEventNotifyCallbackName = {
1672
- win32.EXIT_THREAD_DEBUG_EVENT : '_notify_exit_thread',
1673
- win32.EXIT_PROCESS_DEBUG_EVENT : '_notify_exit_process',
1674
- win32.UNLOAD_DLL_DEBUG_EVENT : '_notify_unload_dll',
1675
- win32.RIP_EVENT : '_notify_rip',
1684
+ win32.EXIT_THREAD_DEBUG_EVENT: "_notify_exit_thread",
1685
+ win32.EXIT_PROCESS_DEBUG_EVENT: "_notify_exit_process",
1686
+ win32.UNLOAD_DLL_DEBUG_EVENT: "_notify_unload_dll",
1687
+ win32.RIP_EVENT: "_notify_rip",
1676
1688
  }
1677
1689
 
1678
1690
  # Maps exception code constants to the names of the pre-notify routines.
1679
1691
  # These routines are called BEFORE the user-defined handlers.
1680
1692
  # Unknown codes are ignored.
1681
1693
  __preExceptionNotifyCallbackName = {
1682
- win32.EXCEPTION_BREAKPOINT : '_notify_breakpoint',
1683
- win32.EXCEPTION_WX86_BREAKPOINT : '_notify_breakpoint',
1684
- win32.EXCEPTION_SINGLE_STEP : '_notify_single_step',
1685
- win32.EXCEPTION_GUARD_PAGE : '_notify_guard_page',
1686
- win32.DBG_CONTROL_C : '_notify_debug_control_c',
1687
- win32.MS_VC_EXCEPTION : '_notify_ms_vc_exception',
1694
+ win32.EXCEPTION_BREAKPOINT: "_notify_breakpoint",
1695
+ win32.EXCEPTION_WX86_BREAKPOINT: "_notify_breakpoint",
1696
+ win32.EXCEPTION_SINGLE_STEP: "_notify_single_step",
1697
+ win32.EXCEPTION_GUARD_PAGE: "_notify_guard_page",
1698
+ win32.DBG_CONTROL_C: "_notify_debug_control_c",
1699
+ win32.MS_VC_EXCEPTION: "_notify_ms_vc_exception",
1688
1700
  }
1689
1701
 
1690
1702
  # Maps exception code constants to the names of the post-notify routines.
1691
1703
  # These routines are called AFTER the user-defined handlers.
1692
1704
  # Unknown codes are ignored.
1693
- __postExceptionNotifyCallbackName = {
1694
- }
1705
+ __postExceptionNotifyCallbackName = {}
1695
1706
 
1696
- def __init__(self, eventHandler = None):
1707
+ def __init__(self, eventHandler=None):
1697
1708
  """
1698
1709
  Event dispatcher.
1699
1710
 
@@ -1747,9 +1758,9 @@ class EventDispatcher (object):
1747
1758
  wrong_type = False
1748
1759
  if wrong_type:
1749
1760
  classname = str(eventHandler)
1750
- msg = "Event handler must be an instance of class %s"
1761
+ msg = "Event handler must be an instance of class %s"
1751
1762
  msg += "rather than the %s class itself. (Missing parens?)"
1752
- msg = msg % (classname, classname)
1763
+ msg = msg % (classname, classname)
1753
1764
  raise TypeError(msg)
1754
1765
  try:
1755
1766
  previous = self.__eventHandler
@@ -1780,9 +1791,9 @@ class EventDispatcher (object):
1780
1791
  Returns C{None} if no such method is defined.
1781
1792
  """
1782
1793
  eventCode = event.get_event_code()
1783
- method = getattr(eventHandler, 'event', fallback)
1794
+ method = getattr(eventHandler, "event", fallback)
1784
1795
  if eventCode == win32.EXCEPTION_DEBUG_EVENT:
1785
- method = getattr(eventHandler, 'exception', method)
1796
+ method = getattr(eventHandler, "exception", method)
1786
1797
  method = getattr(eventHandler, event.eventMethod, method)
1787
1798
  return method
1788
1799
 
@@ -1804,23 +1815,21 @@ class EventDispatcher (object):
1804
1815
 
1805
1816
  @raise WindowsError: Raises an exception on error.
1806
1817
  """
1807
- returnValue = None
1818
+ returnValue = None
1808
1819
  bCallHandler = True
1809
- pre_handler = None
1820
+ pre_handler = None
1810
1821
  post_handler = None
1811
- eventCode = event.get_event_code()
1822
+ eventCode = event.get_event_code()
1812
1823
 
1813
1824
  # Get the pre and post notification methods for exceptions.
1814
1825
  # If not found, the following steps take care of that.
1815
1826
  if eventCode == win32.EXCEPTION_DEBUG_EVENT:
1816
1827
  exceptionCode = event.get_exception_code()
1817
- pre_name = self.__preExceptionNotifyCallbackName.get(
1818
- exceptionCode, None)
1819
- post_name = self.__postExceptionNotifyCallbackName.get(
1820
- exceptionCode, None)
1821
- if pre_name is not None:
1822
- pre_handler = getattr(self, pre_name, None)
1823
- if post_name is not None:
1828
+ pre_name = self.__preExceptionNotifyCallbackName.get(exceptionCode, None)
1829
+ post_name = self.__postExceptionNotifyCallbackName.get(exceptionCode, None)
1830
+ if pre_name is not None:
1831
+ pre_handler = getattr(self, pre_name, None)
1832
+ if post_name is not None:
1824
1833
  post_handler = getattr(self, post_name, None)
1825
1834
 
1826
1835
  # Get the pre notification method for all other events.
@@ -1828,7 +1837,7 @@ class EventDispatcher (object):
1828
1837
  # for this exception code.
1829
1838
  if pre_handler is None:
1830
1839
  pre_name = self.__preEventNotifyCallbackName.get(eventCode, None)
1831
- if pre_name is not None:
1840
+ if pre_name is not None:
1832
1841
  pre_handler = getattr(self, pre_name, pre_handler)
1833
1842
 
1834
1843
  # Get the post notification method for all other events.
@@ -1836,7 +1845,7 @@ class EventDispatcher (object):
1836
1845
  # for this exception code.
1837
1846
  if post_handler is None:
1838
1847
  post_name = self.__postEventNotifyCallbackName.get(eventCode, None)
1839
- if post_name is not None:
1848
+ if post_name is not None:
1840
1849
  post_handler = getattr(self, post_name, post_handler)
1841
1850
 
1842
1851
  # Call the pre-notify method only if it was defined.
@@ -1852,8 +1861,7 @@ class EventDispatcher (object):
1852
1861
  returnValue = self.__eventHandler(event)
1853
1862
  except Exception:
1854
1863
  e = sys.exc_info()[1]
1855
- msg = ("Event handler pre-callback %r"
1856
- " raised an exception: %s")
1864
+ msg = "Event handler pre-callback %r" " raised an exception: %s"
1857
1865
  msg = msg % (self.__eventHandler, traceback.format_exc(e))
1858
1866
  warnings.warn(msg, EventCallbackWarning)
1859
1867
  returnValue = None