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.
Files changed (340) hide show
  1. {debugpy-1.8.5/src/debugpy.egg-info → debugpy-1.8.7}/PKG-INFO +1 -1
  2. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_calltip_util.py +19 -21
  3. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_completer.py +30 -30
  4. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_execfile.py +3 -1
  5. debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_filesystem_encoding.py +43 -0
  6. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_getopt.py +35 -32
  7. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_imports_tipper.py +83 -84
  8. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_jy_imports_tipper.py +92 -99
  9. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_log.py +2 -3
  10. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_saved_modules.py +51 -27
  11. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_sys_patch.py +11 -7
  12. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_tipper_common.py +6 -5
  13. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/fsnotify/__init__.py +34 -38
  14. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_console_utils.py +71 -69
  15. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_import_hook.py +1 -3
  16. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_imports.py +0 -1
  17. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_ipython_console.py +14 -16
  18. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_ipython_console_011.py +81 -93
  19. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_is_thread_alive.py +3 -3
  20. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_localhost.py +9 -8
  21. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_log.py +33 -25
  22. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_monkey.py +183 -170
  23. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_monkey_qt.py +33 -29
  24. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_override.py +6 -4
  25. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_umd.py +19 -18
  26. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_versioncheck.py +3 -3
  27. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles.py +165 -138
  28. debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_coverage.py +77 -0
  29. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_nose.py +35 -36
  30. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_parallel.py +22 -23
  31. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_parallel_client.py +37 -57
  32. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_pytest2.py +54 -52
  33. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_unittest.py +28 -37
  34. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_xml_rpc.py +56 -53
  35. debugpy-1.8.7/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.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/debugProtocol.json +551 -445
  37. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_base_schema.py +25 -29
  38. debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_schema.py +17458 -0
  39. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_schema_log.py +11 -12
  40. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevconsole_code.py +18 -19
  41. debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_additional_thread_info.py +41 -0
  42. debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_additional_thread_info_regular.py +328 -0
  43. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_api.py +263 -214
  44. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_breakpoints.py +7 -10
  45. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_bytecode_utils.py +187 -92
  46. debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_bytecode_utils_py311.py +105 -0
  47. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_code_to_source.py +46 -51
  48. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_collect_bytecode_info.py +239 -176
  49. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_comm.py +370 -297
  50. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_comm_constants.py +78 -86
  51. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_command_line_handling.py +55 -59
  52. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_concurrency_analyser/pydevd_concurrency_logger.py +194 -58
  53. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_concurrency_analyser/pydevd_thread_wrappers.py +2 -3
  54. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_console.py +18 -23
  55. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_constants.py +159 -127
  56. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_custom_frames.py +10 -12
  57. debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython.c +55527 -0
  58. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython.pxd +15 -0
  59. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython.pyx +803 -511
  60. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython_wrapper.py +18 -7
  61. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_daemon_thread.py +32 -24
  62. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_defaults.py +11 -13
  63. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_dont_trace.py +16 -16
  64. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_dont_trace_files.py +27 -2
  65. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_exec2.py +1 -1
  66. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_extension_api.py +4 -5
  67. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_extension_utils.py +8 -10
  68. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_filtering.py +50 -45
  69. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_frame.py +462 -407
  70. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_frame_utils.py +69 -61
  71. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_gevent_integration.py +14 -16
  72. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_import_class.py +27 -25
  73. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_io.py +40 -42
  74. debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_json_debug_options.py +200 -0
  75. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_net_command.py +20 -19
  76. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_net_command_factory_json.py +199 -108
  77. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_net_command_factory_xml.py +121 -73
  78. debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_plugin_utils.py +208 -0
  79. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_process_net_command.py +206 -159
  80. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_process_net_command_json.py +346 -334
  81. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_referrers.py +75 -80
  82. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_reload.py +35 -35
  83. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_resolver.py +116 -124
  84. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_runpy.py +44 -58
  85. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_safe_repr.py +51 -55
  86. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_save_locals.py +4 -2
  87. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_signature.py +24 -24
  88. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_source_mapping.py +19 -20
  89. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_stackless.py +45 -49
  90. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_suspended_frames.py +61 -58
  91. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_thread_lifecycle.py +23 -13
  92. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_timeout.py +29 -31
  93. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_trace_dispatch.py +41 -11
  94. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_trace_dispatch_regular.py +117 -55
  95. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_traceproperty.py +11 -14
  96. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_utils.py +90 -89
  97. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_vars.py +106 -97
  98. debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_vm_type.py +40 -0
  99. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_xml.py +56 -46
  100. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_eval_cython_wrapper.py +5 -5
  101. debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_eval_main.py +71 -0
  102. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.c +11165 -5326
  103. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_tracing.py +5 -6
  104. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_modify_bytecode.py +53 -56
  105. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/__init__.py +1 -0
  106. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/bytecode.py +4 -6
  107. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/cfg.py +6 -26
  108. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/concrete.py +7 -21
  109. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/flags.py +5 -24
  110. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/instr.py +10 -34
  111. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/peephole_opt.py +1 -4
  112. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/__init__.py +2 -6
  113. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_bytecode.py +3 -5
  114. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_cfg.py +11 -31
  115. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_code.py +2 -2
  116. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_concrete.py +14 -41
  117. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_flags.py +2 -4
  118. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_instr.py +7 -18
  119. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_misc.py +6 -18
  120. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_peephole_opt.py +7 -18
  121. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/util_annotation.py +1 -3
  122. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/pydevd_fix_code.py +14 -19
  123. debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring.py +1929 -0
  124. debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring_cython.c +43253 -0
  125. debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring_cython.pxd +46 -0
  126. debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring_cython.pyx +1935 -0
  127. debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/pydevd_sys_monitoring.py +16 -0
  128. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_app_engine_debug_startup.py +12 -11
  129. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_coverage.py +30 -32
  130. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhook.py +58 -54
  131. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookglut.py +20 -24
  132. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookgtk.py +8 -7
  133. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookgtk3.py +8 -6
  134. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookpyglet.py +11 -8
  135. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookqt4.py +21 -18
  136. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookqt5.py +17 -15
  137. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookqt6.py +17 -15
  138. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhooktk.py +6 -4
  139. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookwx.py +14 -10
  140. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/matplotlibtools.py +30 -26
  141. debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydev_ipython/qt.py +24 -0
  142. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/qt_for_kernel.py +37 -34
  143. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/qt_loaders.py +86 -73
  144. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/version.py +7 -7
  145. debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydev_pysrc.py +1 -0
  146. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_run_in_console.py +23 -24
  147. debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydev_sitecustomize/sitecustomize.py +267 -0
  148. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevconsole.py +55 -47
  149. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd.py +732 -508
  150. debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_always_live_program.py +40 -0
  151. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_check.py +1 -0
  152. debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_test_attach_to_process.py +11 -0
  153. debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_test_attach_to_process_linux.py +75 -0
  154. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/add_code_to_python_process.py +130 -125
  155. debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_amd64.dll +0 -0
  156. debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_amd64.pdb +0 -0
  157. debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_pydevd.py +89 -0
  158. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_script.py +41 -32
  159. debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_x86.dll +0 -0
  160. debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_x86.pdb +0 -0
  161. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_utils.hpp +1 -0
  162. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_version.hpp +9 -1
  163. debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_amd64.exe +0 -0
  164. debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_amd64.pdb +0 -0
  165. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_x86.exe +0 -0
  166. debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_x86.pdb +0 -0
  167. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/lldb_prepare.py +10 -9
  168. debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_amd64.dll +0 -0
  169. debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_amd64.pdb +0 -0
  170. debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_x86.dll +0 -0
  171. debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_x86.pdb +0 -0
  172. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/__init__.py +103 -119
  173. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/breakpoint.py +457 -516
  174. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/compat.py +33 -15
  175. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/crash.py +336 -281
  176. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/debug.py +101 -131
  177. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/disasm.py +148 -153
  178. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/event.py +310 -302
  179. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/interactive.py +235 -208
  180. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/module.py +185 -218
  181. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/process.py +428 -564
  182. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/registry.py +54 -53
  183. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/search.py +69 -73
  184. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/sql.py +158 -170
  185. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/system.py +143 -213
  186. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/textio.py +302 -333
  187. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/thread.py +220 -239
  188. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/util.py +198 -177
  189. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/__init__.py +11 -11
  190. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/advapi32.py +1191 -713
  191. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/context_amd64.py +248 -194
  192. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/context_i386.py +132 -120
  193. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/dbghelp.py +450 -346
  194. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/defines.py +305 -286
  195. debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/gdi32.py +526 -0
  196. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/kernel32.py +1479 -1097
  197. debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/ntdll.py +579 -0
  198. debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/peb_teb.py +3517 -0
  199. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/psapi.py +54 -31
  200. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/shell32.py +170 -149
  201. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/shlwapi.py +190 -108
  202. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/user32.py +542 -437
  203. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/version.py +489 -442
  204. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/wtsapi32.py +83 -65
  205. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/window.py +70 -76
  206. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/attach.cpp +17 -9
  207. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/compile_windows.bat +1 -1
  208. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_file_utils.py +141 -120
  209. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/__init__.py +1 -0
  210. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/django_debug.py +175 -149
  211. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/__init__.py +1 -0
  212. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/__init__.py +1 -0
  213. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_helpers.py +5 -5
  214. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_plugin_numpy_types.py +28 -28
  215. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_plugin_pandas_types.py +22 -30
  216. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_plugins_django_form_str.py +3 -2
  217. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/jinja2_debug.py +130 -108
  218. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/pydevd_line_validation.py +27 -14
  219. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_tracing.py +85 -66
  220. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/setup_pydevd_cython.py +96 -59
  221. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_version.py +3 -3
  222. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/common/messaging.py +2 -1
  223. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/server/cli.py +32 -17
  224. {debugpy-1.8.5 → debugpy-1.8.7/src/debugpy.egg-info}/PKG-INFO +1 -1
  225. {debugpy-1.8.5 → debugpy-1.8.7}/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_cython.c +0 -43377
  233. debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_json_debug_options.py +0 -204
  234. debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_plugin_utils.py +0 -91
  235. debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_trace_api.py +0 -62
  236. debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_vm_type.py +0 -41
  237. debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_eval_main.py +0 -48
  238. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydev_ipython/qt.py +0 -23
  239. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydev_pysrc.py +0 -1
  240. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydev_sitecustomize/sitecustomize.py +0 -237
  241. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_always_live_program.py +0 -32
  242. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_test_attach_to_process.py +0 -9
  243. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_test_attach_to_process_linux.py +0 -74
  244. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_amd64.dll +0 -0
  245. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_amd64.pdb +0 -0
  246. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_pydevd.py +0 -79
  247. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_x86.dll +0 -0
  248. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_x86.pdb +0 -0
  249. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_amd64.exe +0 -0
  250. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_amd64.pdb +0 -0
  251. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_x86.pdb +0 -0
  252. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_amd64.dll +0 -0
  253. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_amd64.pdb +0 -0
  254. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_x86.dll +0 -0
  255. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_x86.pdb +0 -0
  256. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/gdi32.py +0 -507
  257. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/ntdll.py +0 -539
  258. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/peb_teb.py +0 -3435
  259. {debugpy-1.8.5 → debugpy-1.8.7}/DESCRIPTION.md +0 -0
  260. {debugpy-1.8.5 → debugpy-1.8.7}/LICENSE +0 -0
  261. {debugpy-1.8.5 → debugpy-1.8.7}/MANIFEST.in +0 -0
  262. {debugpy-1.8.5 → debugpy-1.8.7}/README.md +0 -0
  263. {debugpy-1.8.5 → debugpy-1.8.7}/pyproject.toml +0 -0
  264. {debugpy-1.8.5 → debugpy-1.8.7}/setup.cfg +0 -0
  265. {debugpy-1.8.5 → debugpy-1.8.7}/setup.py +0 -0
  266. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/ThirdPartyNotices.txt +0 -0
  267. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/__init__.py +0 -0
  268. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/__main__.py +0 -0
  269. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/__init__.py +0 -0
  270. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/_pydevd_packaging.py +0 -0
  271. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/_util.py +0 -0
  272. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/force_pydevd.py +0 -0
  273. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/__init__.py +0 -0
  274. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_runfiles/__init__.py +0 -0
  275. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/__init__.py +0 -0
  276. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/__init__.py +0 -0
  277. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/debugProtocolCustom.json +0 -0
  278. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_concurrency_analyser/__init__.py +0 -0
  279. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/.gitignore +0 -0
  280. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/__init__.py +0 -0
  281. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.pxd +0 -0
  282. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.pyx +0 -0
  283. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.template.pyx +0 -0
  284. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/release_mem.h +0 -0
  285. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/README.txt +0 -0
  286. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/__init__.py +0 -0
  287. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/README +0 -0
  288. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/__init__.py +0 -0
  289. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_sitecustomize/__not_in_default_pythonpath.txt +0 -0
  290. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/README.txt +0 -0
  291. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_custom_pyeval_settrace.hpp +0 -0
  292. {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
  293. {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
  294. {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
  295. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_settrace.hpp +0 -0
  296. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/python.h +0 -0
  297. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/ref_utils.hpp +0 -0
  298. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/.gitignore +0 -0
  299. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/attach.cpp +0 -0
  300. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/compile_linux.sh +0 -0
  301. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/compile_mac.sh +0 -0
  302. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/compile_manylinux.cmd +0 -0
  303. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/attach.h +0 -0
  304. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/inject_dll.cpp +0 -0
  305. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/py_win_helpers.hpp +0 -0
  306. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/run_code_in_memory.hpp +0 -0
  307. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/run_code_on_dllmain.cpp +0 -0
  308. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/stdafx.cpp +0 -0
  309. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/stdafx.h +0 -0
  310. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/targetver.h +0 -0
  311. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/README.md +0 -0
  312. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/adapter/__init__.py +0 -0
  313. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/adapter/__main__.py +0 -0
  314. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/adapter/clients.py +0 -0
  315. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/adapter/components.py +0 -0
  316. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/adapter/launchers.py +0 -0
  317. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/adapter/servers.py +0 -0
  318. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/adapter/sessions.py +0 -0
  319. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/common/__init__.py +0 -0
  320. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/common/json.py +0 -0
  321. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/common/log.py +0 -0
  322. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/common/singleton.py +0 -0
  323. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/common/sockets.py +0 -0
  324. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/common/stacks.py +0 -0
  325. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/common/timestamp.py +0 -0
  326. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/common/util.py +0 -0
  327. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/launcher/__init__.py +0 -0
  328. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/launcher/__main__.py +0 -0
  329. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/launcher/debuggee.py +0 -0
  330. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/launcher/handlers.py +0 -0
  331. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/launcher/output.py +0 -0
  332. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/launcher/winapi.py +0 -0
  333. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/public_api.py +0 -0
  334. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/server/__init__.py +0 -0
  335. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/server/api.py +0 -0
  336. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/server/attach_pid_injected.py +0 -0
  337. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy.egg-info/dependency_links.txt +0 -0
  338. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy.egg-info/entry_points.txt +0 -0
  339. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy.egg-info/top_level.txt +0 -0
  340. {debugpy-1.8.5 → debugpy-1.8.7}/versioneer.py +0 -0
@@ -1,8 +1,7 @@
1
1
  from contextlib import contextmanager
2
2
  import sys
3
3
 
4
- from _pydevd_bundle.pydevd_constants import get_frame, RETURN_VALUES_DICT, \
5
- ForkSafeLock, GENERATED_LEN_ATTR_NAME, silence_warnings_decorator
4
+ from _pydevd_bundle.pydevd_constants import get_frame, RETURN_VALUES_DICT, ForkSafeLock, GENERATED_LEN_ATTR_NAME, silence_warnings_decorator
6
5
  from _pydevd_bundle.pydevd_xml import get_variable_details, get_type
7
6
  from _pydev_bundle.pydev_override import overrides
8
7
  from _pydevd_bundle.pydevd_resolver import sorted_attributes_key, TOO_LARGE_ATTR, get_var_scope
@@ -16,7 +15,6 @@ from typing import Optional
16
15
 
17
16
 
18
17
  class _AbstractVariable(object):
19
-
20
18
  # Default attributes in class, set in instance.
21
19
 
22
20
  name = None
@@ -36,8 +34,8 @@ class _AbstractVariable(object):
36
34
  def get_variable_reference(self):
37
35
  return id(self.value)
38
36
 
39
- def get_var_data(self, fmt: Optional[dict]=None, context: Optional[str]=None, **safe_repr_custom_attrs):
40
- '''
37
+ def get_var_data(self, fmt: Optional[dict] = None, context: Optional[str] = None, **safe_repr_custom_attrs):
38
+ """
41
39
  :param dict fmt:
42
40
  Format expected by the DAP (keys: 'hex': bool, 'rawString': bool)
43
41
 
@@ -47,58 +45,59 @@ class _AbstractVariable(object):
47
45
  "repl",
48
46
  "hover",
49
47
  "clipboard"
50
- '''
48
+ """
51
49
  timer = Timer()
52
50
  safe_repr = SafeRepr()
53
51
  if fmt is not None:
54
- safe_repr.convert_to_hex = fmt.get('hex', False)
55
- safe_repr.raw_value = fmt.get('rawString', False)
52
+ safe_repr.convert_to_hex = fmt.get("hex", False)
53
+ safe_repr.raw_value = fmt.get("rawString", False)
56
54
  for key, val in safe_repr_custom_attrs.items():
57
55
  setattr(safe_repr, key, val)
58
56
 
59
57
  type_name, _type_qualifier, _is_exception_on_eval, resolver, value = get_variable_details(
60
- self.value, to_string=safe_repr, context=context)
58
+ self.value, to_string=safe_repr, context=context
59
+ )
61
60
 
62
- is_raw_string = type_name in ('str', 'bytes', 'bytearray')
61
+ is_raw_string = type_name in ("str", "bytes", "bytearray")
63
62
 
64
63
  attributes = []
65
64
 
66
65
  if is_raw_string:
67
- attributes.append('rawString')
66
+ attributes.append("rawString")
68
67
 
69
68
  name = self.name
70
69
 
71
70
  if self._is_return_value:
72
- attributes.append('readOnly')
73
- name = '(return) %s' % (name,)
71
+ attributes.append("readOnly")
72
+ name = "(return) %s" % (name,)
74
73
 
75
74
  elif name in (TOO_LARGE_ATTR, GENERATED_LEN_ATTR_NAME):
76
- attributes.append('readOnly')
75
+ attributes.append("readOnly")
77
76
 
78
77
  try:
79
78
  if self.value.__class__ == DAPGrouper:
80
- type_name = ''
79
+ type_name = ""
81
80
  except:
82
81
  pass # Ignore errors accessing __class__.
83
82
 
84
83
  var_data = {
85
- 'name': name,
86
- 'value': value,
87
- 'type': type_name,
84
+ "name": name,
85
+ "value": value,
86
+ "type": type_name,
88
87
  }
89
88
 
90
89
  if self.evaluate_name is not None:
91
- var_data['evaluateName'] = self.evaluate_name
90
+ var_data["evaluateName"] = self.evaluate_name
92
91
 
93
92
  if resolver is not None: # I.e.: it's a container
94
- var_data['variablesReference'] = self.get_variable_reference()
93
+ var_data["variablesReference"] = self.get_variable_reference()
95
94
  else:
96
- var_data['variablesReference'] = 0 # It's mandatory (although if == 0 it doesn't have children).
95
+ var_data["variablesReference"] = 0 # It's mandatory (although if == 0 it doesn't have children).
97
96
 
98
97
  if len(attributes) > 0:
99
- var_data['presentationHint'] = {'attributes': attributes}
98
+ var_data["presentationHint"] = {"attributes": attributes}
100
99
 
101
- timer.report_if_compute_repr_attr_slow('', name, type_name)
100
+ timer.report_if_compute_repr_attr_slow("", name, type_name)
102
101
  return var_data
103
102
 
104
103
  def get_children_variables(self, fmt=None, scope=None):
@@ -126,10 +125,10 @@ class _AbstractVariable(object):
126
125
  entry = (attr_name, attr_value, evaluate_name)
127
126
  if scope:
128
127
  presentation = get_presentation(scope)
129
- if presentation == 'hide':
128
+ if presentation == "hide":
130
129
  continue
131
130
 
132
- elif presentation == 'inline':
131
+ elif presentation == "inline":
133
132
  new_lst.append(entry)
134
133
 
135
134
  else: # group
@@ -153,7 +152,6 @@ class _AbstractVariable(object):
153
152
 
154
153
 
155
154
  class _ObjectVariable(_AbstractVariable):
156
-
157
155
  def __init__(self, py_db, name, value, register_variable, is_return_value=False, evaluate_name=None, frame=None):
158
156
  _AbstractVariable.__init__(self, py_db)
159
157
  self.frame = frame
@@ -171,7 +169,7 @@ class _ObjectVariable(_AbstractVariable):
171
169
 
172
170
  children_variables = []
173
171
  if resolver is not None: # i.e.: it's a container.
174
- if hasattr(resolver, 'get_contents_debug_adapter_protocol'):
172
+ if hasattr(resolver, "get_contents_debug_adapter_protocol"):
175
173
  # The get_contents_debug_adapter_protocol needs to return sorted.
176
174
  lst = resolver.get_contents_debug_adapter_protocol(self.value, fmt=fmt)
177
175
  else:
@@ -192,8 +190,7 @@ class _ObjectVariable(_AbstractVariable):
192
190
  evaluate_name = evaluate_name(parent_evaluate_name)
193
191
  else:
194
192
  evaluate_name = parent_evaluate_name + evaluate_name
195
- variable = _ObjectVariable(
196
- self.py_db, key, val, self._register_variable, evaluate_name=evaluate_name, frame=self.frame)
193
+ variable = _ObjectVariable(self.py_db, key, val, self._register_variable, evaluate_name=evaluate_name, frame=self.frame)
197
194
  children_variables.append(variable)
198
195
  else:
199
196
  for key, val, evaluate_name in lst:
@@ -204,13 +201,12 @@ class _ObjectVariable(_AbstractVariable):
204
201
  return children_variables
205
202
 
206
203
  def change_variable(self, name, value, py_db, fmt=None):
207
-
208
204
  children_variable = self.get_child_variable_named(name)
209
205
  if children_variable is None:
210
206
  return None
211
207
 
212
208
  var_data = children_variable.get_var_data()
213
- evaluate_name = var_data.get('evaluateName')
209
+ evaluate_name = var_data.get("evaluateName")
214
210
 
215
211
  if not evaluate_name:
216
212
  # Note: right now we only pass control to the resolver in the cases where
@@ -218,15 +214,14 @@ class _ObjectVariable(_AbstractVariable):
218
214
  # we can use that evaluation to set the value too -- if in the future
219
215
  # a case where this isn't true is found this logic may need to be changed).
220
216
  _type, _type_name, container_resolver = get_type(self.value)
221
- if hasattr(container_resolver, 'change_var_from_name'):
217
+ if hasattr(container_resolver, "change_var_from_name"):
222
218
  try:
223
219
  new_value = eval(value)
224
220
  except:
225
221
  return None
226
222
  new_key = container_resolver.change_var_from_name(self.value, name, new_value)
227
223
  if new_key is not None:
228
- return _ObjectVariable(
229
- self.py_db, new_key, new_value, self._register_variable, evaluate_name=None, frame=self.frame)
224
+ return _ObjectVariable(self.py_db, new_key, new_value, self._register_variable, evaluate_name=None, frame=self.frame)
230
225
 
231
226
  return None
232
227
  else:
@@ -238,7 +233,7 @@ class _ObjectVariable(_AbstractVariable):
238
233
 
239
234
  try:
240
235
  # This handles the simple cases (such as dict, list, object)
241
- Exec('%s=%s' % (evaluate_name, value), frame.f_globals, frame.f_locals)
236
+ Exec("%s=%s" % (evaluate_name, value), frame.f_globals, frame.f_locals)
242
237
  except:
243
238
  return None
244
239
 
@@ -250,7 +245,6 @@ def sorted_variables_key(obj):
250
245
 
251
246
 
252
247
  class _FrameVariable(_AbstractVariable):
253
-
254
248
  def __init__(self, py_db, frame, register_variable):
255
249
  _AbstractVariable.__init__(self, py_db)
256
250
  self.frame = frame
@@ -276,19 +270,21 @@ class _FrameVariable(_AbstractVariable):
276
270
  assert isinstance(scope, ScopeRequest)
277
271
  scope = scope.scope
278
272
 
279
- if scope in ('locals', None):
273
+ if scope in ("locals", None):
280
274
  dct = self.frame.f_locals
281
- elif scope == 'globals':
275
+ elif scope == "globals":
282
276
  dct = self.frame.f_globals
283
277
  else:
284
- raise AssertionError('Unexpected scope: %s' % (scope,))
278
+ raise AssertionError("Unexpected scope: %s" % (scope,))
285
279
 
286
- lst, group_entries = self._group_entries([(x[0], x[1], None) for x in list(dct.items()) if x[0] != '_pydev_stop_at_break'], handle_return_values=True)
280
+ lst, group_entries = self._group_entries(
281
+ [(x[0], x[1], None) for x in list(dct.items()) if x[0] != "_pydev_stop_at_break"], handle_return_values=True
282
+ )
287
283
  group_variables = []
288
284
 
289
285
  for key, val, _ in group_entries:
290
286
  # Make sure that the contents in the group are also sorted.
291
- val.contents_debug_adapter_protocol.sort(key=lambda v:sorted_attributes_key(v[0]))
287
+ val.contents_debug_adapter_protocol.sort(key=lambda v: sorted_attributes_key(v[0]))
292
288
  variable = _ObjectVariable(self.py_db, key, val, self._register_variable, False, key, frame=self.frame)
293
289
  group_variables.append(variable)
294
290
 
@@ -297,7 +293,14 @@ class _FrameVariable(_AbstractVariable):
297
293
  if is_return_value:
298
294
  for return_key, return_value in val.items():
299
295
  variable = _ObjectVariable(
300
- self.py_db, return_key, return_value, self._register_variable, is_return_value, '%s[%r]' % (key, return_key), frame=self.frame)
296
+ self.py_db,
297
+ return_key,
298
+ return_value,
299
+ self._register_variable,
300
+ is_return_value,
301
+ "%s[%r]" % (key, return_key),
302
+ frame=self.frame,
303
+ )
301
304
  children_variables.append(variable)
302
305
  else:
303
306
  variable = _ObjectVariable(self.py_db, key, val, self._register_variable, is_return_value, key, frame=self.frame)
@@ -313,9 +316,9 @@ class _FrameVariable(_AbstractVariable):
313
316
 
314
317
 
315
318
  class _FramesTracker(object):
316
- '''
319
+ """
317
320
  This is a helper class to be used to track frames when a thread becomes suspended.
318
- '''
321
+ """
319
322
 
320
323
  def __init__(self, suspended_frames_manager, py_db):
321
324
  self._suspended_frames_manager = suspended_frames_manager
@@ -342,7 +345,7 @@ class _FramesTracker(object):
342
345
  self._untracked = False
343
346
 
344
347
  # We need to be thread-safe!
345
- self._lock = ForkSafeLock()
348
+ self._lock = ForkSafeLock(rlock=True)
346
349
 
347
350
  self._variable_reference_to_variable = {}
348
351
 
@@ -361,7 +364,8 @@ class _FramesTracker(object):
361
364
 
362
365
  # Still not created, let's do it now.
363
366
  return _ObjectVariable(
364
- self.py_db, name, value, self._register_variable, is_return_value=False, evaluate_name=evaluate_name, frame=frame)
367
+ self.py_db, name, value, self._register_variable, is_return_value=False, evaluate_name=evaluate_name, frame=frame
368
+ )
365
369
 
366
370
  def get_main_thread_id(self):
367
371
  return self._main_thread_id
@@ -370,7 +374,7 @@ class _FramesTracker(object):
370
374
  return self._variable_reference_to_variable[variable_reference]
371
375
 
372
376
  def track(self, thread_id, frames_list, frame_custom_thread_id=None):
373
- '''
377
+ """
374
378
  :param thread_id:
375
379
  The thread id to be used for this frame.
376
380
 
@@ -379,19 +383,18 @@ class _FramesTracker(object):
379
383
 
380
384
  :param frame_custom_thread_id:
381
385
  If None this this is the id of the thread id for the custom frame (i.e.: coroutine).
382
- '''
386
+ """
383
387
  assert frames_list.__class__ == FramesList
384
388
  with self._lock:
385
389
  coroutine_or_main_thread_id = frame_custom_thread_id or thread_id
386
390
 
387
391
  if coroutine_or_main_thread_id in self._suspended_frames_manager._thread_id_to_tracker:
388
- sys.stderr.write('pydevd: Something is wrong. Tracker being added twice to the same thread id.\n')
392
+ sys.stderr.write("pydevd: Something is wrong. Tracker being added twice to the same thread id.\n")
389
393
 
390
394
  self._suspended_frames_manager._thread_id_to_tracker[coroutine_or_main_thread_id] = self
391
395
  self._main_thread_id = thread_id
392
396
 
393
- frame_ids_from_thread = self._thread_id_to_frame_ids.setdefault(
394
- coroutine_or_main_thread_id, [])
397
+ frame_ids_from_thread = self._thread_id_to_frame_ids.setdefault(coroutine_or_main_thread_id, [])
395
398
 
396
399
  self._thread_id_to_frames_list[coroutine_or_main_thread_id] = frames_list
397
400
  for frame in frames_list:
@@ -433,20 +436,20 @@ class _FramesTracker(object):
433
436
  with self._lock:
434
437
  return self._frame_id_to_frame.get(frame_id)
435
438
 
436
- def create_thread_suspend_command(self, thread_id, stop_reason, message, suspend_type):
439
+ def create_thread_suspend_command(self, thread_id, stop_reason, message, trace_suspend_type, thread, additional_info):
437
440
  with self._lock:
438
441
  # First one is topmost frame suspended.
439
442
  frames_list = self._thread_id_to_frames_list[thread_id]
440
443
 
441
444
  cmd = self.py_db.cmd_factory.make_thread_suspend_message(
442
- self.py_db, thread_id, frames_list, stop_reason, message, suspend_type)
445
+ self.py_db, thread_id, frames_list, stop_reason, message, trace_suspend_type, thread, additional_info
446
+ )
443
447
 
444
448
  frames_list = None
445
449
  return cmd
446
450
 
447
451
 
448
452
  class SuspendedFramesManager(object):
449
-
450
453
  def __init__(self):
451
454
  self._thread_id_to_fake_frames = {}
452
455
  self._thread_id_to_tracker = {}
@@ -470,7 +473,7 @@ class SuspendedFramesManager(object):
470
473
  return None
471
474
 
472
475
  def get_thread_id_for_variable_reference(self, variable_reference):
473
- '''
476
+ """
474
477
  We can't evaluate variable references values on any thread, only in the suspended
475
478
  thread (the main reason for this is that in UI frameworks inspecting a UI object
476
479
  from a different thread can potentially crash the application).
@@ -482,7 +485,7 @@ class SuspendedFramesManager(object):
482
485
  :return str:
483
486
  The thread id for the thread to be used to inspect the given variable reference or
484
487
  None if the thread was already resumed.
485
- '''
488
+ """
486
489
  frames_tracker = self._get_tracker_for_variable_reference(variable_reference)
487
490
  if frames_tracker is not None:
488
491
  return frames_tracker.get_main_thread_id()
@@ -492,9 +495,9 @@ class SuspendedFramesManager(object):
492
495
  return self._thread_id_to_tracker.get(thread_id)
493
496
 
494
497
  def get_variable(self, variable_reference):
495
- '''
498
+ """
496
499
  :raises KeyError
497
- '''
500
+ """
498
501
  frames_tracker = self._get_tracker_for_variable_reference(variable_reference)
499
502
  if frames_tracker is None:
500
503
  raise KeyError()
@@ -1,9 +1,11 @@
1
1
  from _pydevd_bundle import pydevd_utils
2
2
  from _pydevd_bundle.pydevd_additional_thread_info import set_additional_thread_info
3
3
  from _pydevd_bundle.pydevd_comm_constants import CMD_STEP_INTO, CMD_THREAD_SUSPEND
4
- from _pydevd_bundle.pydevd_constants import PYTHON_SUSPEND, STATE_SUSPEND, get_thread_id, STATE_RUN
4
+ from _pydevd_bundle.pydevd_constants import PYTHON_SUSPEND, STATE_SUSPEND, get_thread_id, STATE_RUN, PYDEVD_USE_SYS_MONITORING
5
5
  from _pydev_bundle._pydev_saved_modules import threading
6
6
  from _pydev_bundle import pydev_log
7
+ import sys
8
+ from _pydevd_sys_monitoring import pydevd_sys_monitoring
7
9
 
8
10
 
9
11
  def pydevd_find_thread_by_id(thread_id):
@@ -11,7 +13,7 @@ def pydevd_find_thread_by_id(thread_id):
11
13
  threads = threading.enumerate()
12
14
  for i in threads:
13
15
  tid = get_thread_id(i)
14
- if thread_id == tid or thread_id.endswith('|' + tid):
16
+ if thread_id == tid or thread_id.endswith("|" + tid):
15
17
  return i
16
18
 
17
19
  # This can happen when a request comes for a thread which was previously removed.
@@ -23,7 +25,7 @@ def pydevd_find_thread_by_id(thread_id):
23
25
  return None
24
26
 
25
27
 
26
- def mark_thread_suspended(thread, stop_reason, original_step_cmd=-1):
28
+ def mark_thread_suspended(thread, stop_reason: int, original_step_cmd: int = -1):
27
29
  info = set_additional_thread_info(thread)
28
30
  info.suspend_type = PYTHON_SUSPEND
29
31
  if original_step_cmd != -1:
@@ -40,7 +42,7 @@ def mark_thread_suspended(thread, stop_reason, original_step_cmd=-1):
40
42
 
41
43
  # Mark as suspended as the last thing.
42
44
  info.pydev_state = STATE_SUSPEND
43
-
45
+ info.update_stepping_info()
44
46
  return info
45
47
 
46
48
 
@@ -50,15 +52,16 @@ def internal_run_thread(thread, set_additional_thread_info):
50
52
  info.pydev_step_cmd = -1
51
53
  info.pydev_step_stop = None
52
54
  info.pydev_state = STATE_RUN
55
+ info.update_stepping_info()
53
56
 
54
57
 
55
58
  def resume_threads(thread_id, except_thread=None):
56
- pydev_log.info('Resuming threads: %s (except thread: %s)', thread_id, except_thread)
59
+ pydev_log.info("Resuming threads: %s (except thread: %s)", thread_id, except_thread)
57
60
  threads = []
58
- if thread_id == '*':
61
+ if thread_id == "*":
59
62
  threads = pydevd_utils.get_non_pydevd_threads()
60
63
 
61
- elif thread_id.startswith('__frame__:'):
64
+ elif thread_id.startswith("__frame__:"):
62
65
  pydev_log.critical("Can't make tasklet run: %s", thread_id)
63
66
 
64
67
  else:
@@ -66,21 +69,24 @@ def resume_threads(thread_id, except_thread=None):
66
69
 
67
70
  for t in threads:
68
71
  if t is None or t is except_thread:
69
- pydev_log.info('Skipped resuming thread: %s', t)
72
+ pydev_log.info("Skipped resuming thread: %s", t)
70
73
  continue
71
74
 
72
75
  internal_run_thread(t, set_additional_thread_info=set_additional_thread_info)
73
76
 
74
77
 
75
78
  def suspend_all_threads(py_db, except_thread):
76
- '''
79
+ """
77
80
  Suspend all except the one passed as a parameter.
78
81
  :param except_thread:
79
- '''
80
- pydev_log.info('Suspending all threads except: %s', except_thread)
82
+ """
83
+ if PYDEVD_USE_SYS_MONITORING:
84
+ pydevd_sys_monitoring.update_monitor_events(suspend_requested=True)
85
+
86
+ pydev_log.info("Suspending all threads except: %s", except_thread)
81
87
  all_threads = pydevd_utils.get_non_pydevd_threads()
82
88
  for t in all_threads:
83
- if getattr(t, 'pydev_do_not_trace', None):
89
+ if getattr(t, "pydev_do_not_trace", None):
84
90
  pass # skip some other threads, i.e. ipython history saving thread from debug console
85
91
  else:
86
92
  if t is except_thread:
@@ -91,6 +97,10 @@ def suspend_all_threads(py_db, except_thread):
91
97
  # Reset the tracing as in this case as it could've set scopes to be untraced.
92
98
  if frame is not None:
93
99
  try:
94
- py_db.set_trace_for_frame_and_parents(frame)
100
+ py_db.set_trace_for_frame_and_parents(t.ident, frame)
95
101
  finally:
96
102
  frame = None
103
+
104
+ if PYDEVD_USE_SYS_MONITORING:
105
+ # After suspending the frames we need the monitoring to be reset.
106
+ pydevd_sys_monitoring.restart_events()
@@ -1,4 +1,4 @@
1
- from _pydev_bundle._pydev_saved_modules import threading
1
+ from _pydev_bundle._pydev_saved_modules import ThreadingEvent, ThreadingLock, threading_current_thread
2
2
  from _pydevd_bundle.pydevd_daemon_thread import PyDBDaemonThread
3
3
  from _pydevd_bundle.pydevd_constants import thread_get_ident, IS_CPYTHON, NULL
4
4
  import ctypes
@@ -12,7 +12,7 @@ _DEBUG = False # Default should be False as this can be very verbose.
12
12
 
13
13
 
14
14
  class _TimeoutThread(PyDBDaemonThread):
15
- '''
15
+ """
16
16
  The idea in this class is that it should be usually stopped waiting
17
17
  for the next event to be called (paused in a threading.Event.wait).
18
18
 
@@ -20,26 +20,26 @@ class _TimeoutThread(PyDBDaemonThread):
20
20
  then keeps on waiting as needed again.
21
21
 
22
22
  This is done so that it's a bit more optimized than creating many Timer threads.
23
- '''
23
+ """
24
24
 
25
25
  def __init__(self, py_db):
26
26
  PyDBDaemonThread.__init__(self, py_db)
27
- self._event = threading.Event()
27
+ self._event = ThreadingEvent()
28
28
  self._handles = []
29
29
 
30
30
  # We could probably do things valid without this lock so that it's possible to add
31
31
  # handles while processing, but the implementation would also be harder to follow,
32
32
  # so, for now, we're either processing or adding handles, not both at the same time.
33
- self._lock = threading.Lock()
33
+ self._lock = ThreadingLock()
34
34
 
35
35
  def _on_run(self):
36
36
  wait_time = None
37
37
  while not self._kill_received:
38
38
  if _DEBUG:
39
39
  if wait_time is None:
40
- pydev_log.critical('pydevd_timeout: Wait until a new handle is added.')
40
+ pydev_log.critical("pydevd_timeout: Wait until a new handle is added.")
41
41
  else:
42
- pydev_log.critical('pydevd_timeout: Next wait time: %s.', wait_time)
42
+ pydev_log.critical("pydevd_timeout: Next wait time: %s.", wait_time)
43
43
  self._event.wait(wait_time)
44
44
 
45
45
  if self._kill_received:
@@ -49,13 +49,13 @@ class _TimeoutThread(PyDBDaemonThread):
49
49
  wait_time = self.process_handles()
50
50
 
51
51
  def process_handles(self):
52
- '''
52
+ """
53
53
  :return int:
54
54
  Returns the time we should be waiting for to process the next event properly.
55
- '''
55
+ """
56
56
  with self._lock:
57
57
  if _DEBUG:
58
- pydev_log.critical('pydevd_timeout: Processing handles')
58
+ pydev_log.critical("pydevd_timeout: Processing handles")
59
59
  self._event.clear()
60
60
  handles = self._handles
61
61
  new_handles = self._handles = []
@@ -71,7 +71,7 @@ class _TimeoutThread(PyDBDaemonThread):
71
71
  if curtime < handle.abs_timeout and not handle.disposed:
72
72
  # It still didn't time out.
73
73
  if _DEBUG:
74
- pydev_log.critical('pydevd_timeout: Handle NOT processed: %s', handle)
74
+ pydev_log.critical("pydevd_timeout: Handle NOT processed: %s", handle)
75
75
  new_handles.append(handle)
76
76
  if min_handle_timeout is None:
77
77
  min_handle_timeout = handle.abs_timeout
@@ -81,7 +81,7 @@ class _TimeoutThread(PyDBDaemonThread):
81
81
 
82
82
  else:
83
83
  if _DEBUG:
84
- pydev_log.critical('pydevd_timeout: Handle processed: %s', handle)
84
+ pydev_log.critical("pydevd_timeout: Handle processed: %s", handle)
85
85
  # Timed out (or disposed), so, let's execute it (should be no-op if disposed).
86
86
  handle.exec_on_timeout()
87
87
 
@@ -90,7 +90,7 @@ class _TimeoutThread(PyDBDaemonThread):
90
90
  else:
91
91
  timeout = min_handle_timeout - curtime
92
92
  if timeout <= 0:
93
- pydev_log.critical('pydevd_timeout: Expected timeout to be > 0. Found: %s', timeout)
93
+ pydev_log.critical("pydevd_timeout: Expected timeout to be > 0. Found: %s", timeout)
94
94
 
95
95
  return timeout
96
96
 
@@ -106,9 +106,8 @@ class _TimeoutThread(PyDBDaemonThread):
106
106
 
107
107
 
108
108
  class _OnTimeoutHandle(object):
109
-
110
109
  def __init__(self, tracker, abs_timeout, on_timeout, kwargs):
111
- self._str = '_OnTimeoutHandle(%s)' % (on_timeout,)
110
+ self._str = "_OnTimeoutHandle(%s)" % (on_timeout,)
112
111
 
113
112
  self._tracker = weakref.ref(tracker)
114
113
  self.abs_timeout = abs_timeout
@@ -130,11 +129,11 @@ class _OnTimeoutHandle(object):
130
129
 
131
130
  try:
132
131
  if _DEBUG:
133
- pydev_log.critical('pydevd_timeout: Calling on timeout: %s with kwargs: %s', on_timeout, kwargs)
132
+ pydev_log.critical("pydevd_timeout: Calling on timeout: %s with kwargs: %s", on_timeout, kwargs)
134
133
 
135
134
  on_timeout(**kwargs)
136
135
  except Exception:
137
- pydev_log.exception('pydevd_timeout: Exception on callback timeout.')
136
+ pydev_log.exception("pydevd_timeout: Exception on callback timeout.")
138
137
 
139
138
  def __enter__(self):
140
139
  pass
@@ -159,17 +158,17 @@ class _OnTimeoutHandle(object):
159
158
 
160
159
 
161
160
  class TimeoutTracker(object):
162
- '''
161
+ """
163
162
  This is a helper class to track the timeout of something.
164
- '''
163
+ """
165
164
 
166
165
  def __init__(self, py_db):
167
166
  self._thread = None
168
- self._lock = threading.Lock()
167
+ self._lock = ThreadingLock()
169
168
  self._py_db = weakref.ref(py_db)
170
169
 
171
170
  def call_on_timeout(self, timeout, on_timeout, kwargs=None):
172
- '''
171
+ """
173
172
  This can be called regularly to always execute the given function after a given timeout:
174
173
 
175
174
  call_on_timeout(py_db, 10, on_timeout)
@@ -182,11 +181,11 @@ class TimeoutTracker(object):
182
181
  ...
183
182
 
184
183
  Note: the callback will be called from a PyDBDaemonThread.
185
- '''
184
+ """
186
185
  with self._lock:
187
186
  if self._thread is None:
188
187
  if _DEBUG:
189
- pydev_log.critical('pydevd_timeout: Created _TimeoutThread.')
188
+ pydev_log.critical("pydevd_timeout: Created _TimeoutThread.")
190
189
 
191
190
  self._thread = _TimeoutThread(self._py_db())
192
191
  self._thread.start()
@@ -194,13 +193,13 @@ class TimeoutTracker(object):
194
193
  curtime = time.time()
195
194
  handle = _OnTimeoutHandle(self, curtime + timeout, on_timeout, kwargs)
196
195
  if _DEBUG:
197
- pydev_log.critical('pydevd_timeout: Added handle: %s.', handle)
196
+ pydev_log.critical("pydevd_timeout: Added handle: %s.", handle)
198
197
  self._thread.add_on_timeout_handle(handle)
199
198
  return handle
200
199
 
201
200
 
202
201
  def create_interrupt_this_thread_callback():
203
- '''
202
+ """
204
203
  The idea here is returning a callback that when called will generate a KeyboardInterrupt
205
204
  in the thread that called this function.
206
205
 
@@ -214,26 +213,25 @@ def create_interrupt_this_thread_callback():
214
213
  :return callable:
215
214
  Returns a callback that will interrupt the current thread (this may be called
216
215
  from an auxiliary thread).
217
- '''
216
+ """
218
217
  tid = thread_get_ident()
219
218
 
220
219
  if is_current_thread_main_thread():
221
- main_thread = threading.current_thread()
220
+ main_thread = threading_current_thread()
222
221
 
223
222
  def raise_on_this_thread():
224
- pydev_log.debug('Callback to interrupt main thread.')
223
+ pydev_log.debug("Callback to interrupt main thread.")
225
224
  pydevd_utils.interrupt_main_thread(main_thread)
226
225
 
227
226
  else:
228
-
229
227
  # Note: this works in the sense that it can stop some cpu-intensive slow operation,
230
228
  # but we can't really interrupt the thread out of some sleep or I/O operation
231
229
  # (this will only be raised when Python is about to execute the next instruction).
232
230
  def raise_on_this_thread():
233
231
  if IS_CPYTHON:
234
- pydev_log.debug('Interrupt thread: %s', tid)
232
+ pydev_log.debug("Interrupt thread: %s", tid)
235
233
  ctypes.pythonapi.PyThreadState_SetAsyncExc(ctypes.c_long(tid), ctypes.py_object(KeyboardInterrupt))
236
234
  else:
237
- pydev_log.debug('It is only possible to interrupt non-main threads in CPython.')
235
+ pydev_log.debug("It is only possible to interrupt non-main threads in CPython.")
238
236
 
239
237
  return raise_on_this_thread