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
@@ -5,7 +5,6 @@ from _pydev_bundle._pydev_saved_modules import threading
5
5
 
6
6
 
7
7
  class ExceptionBreakpoint(object):
8
-
9
8
  def __init__(
10
9
  self,
11
10
  qname,
@@ -15,8 +14,8 @@ class ExceptionBreakpoint(object):
15
14
  notify_on_unhandled_exceptions,
16
15
  notify_on_user_unhandled_exceptions,
17
16
  notify_on_first_raise_only,
18
- ignore_libraries
19
- ):
17
+ ignore_libraries,
18
+ ):
20
19
  exctype = get_exception_class(qname)
21
20
  self.qname = qname
22
21
  if exctype is not None:
@@ -46,7 +45,6 @@ class ExceptionBreakpoint(object):
46
45
 
47
46
 
48
47
  class LineBreakpoint(object):
49
-
50
48
  def __init__(self, breakpoint_id, line, condition, func_name, expression, suspend_policy="NONE", hit_condition=None, is_logpoint=False):
51
49
  self.breakpoint_id = breakpoint_id
52
50
  self.line = line
@@ -69,7 +67,7 @@ class LineBreakpoint(object):
69
67
  ret = False
70
68
  with self._hit_condition_lock:
71
69
  self._hit_count += 1
72
- expr = self.hit_condition.replace('@HIT@', str(self._hit_count))
70
+ expr = self.hit_condition.replace("@HIT@", str(self._hit_count))
73
71
  try:
74
72
  ret = bool(eval(expr, frame.f_globals, frame.f_locals))
75
73
  except Exception:
@@ -78,7 +76,6 @@ class LineBreakpoint(object):
78
76
 
79
77
 
80
78
  class FunctionBreakpoint(object):
81
-
82
79
  def __init__(self, func_name, condition, expression, suspend_policy="NONE", hit_condition=None, is_logpoint=False):
83
80
  self.condition = condition
84
81
  self.func_name = func_name
@@ -99,7 +96,7 @@ class FunctionBreakpoint(object):
99
96
  ret = False
100
97
  with self._hit_condition_lock:
101
98
  self._hit_count += 1
102
- expr = self.hit_condition.replace('@HIT@', str(self._hit_count))
99
+ expr = self.hit_condition.replace("@HIT@", str(self._hit_count))
103
100
  try:
104
101
  ret = bool(eval(expr, frame.f_globals, frame.f_locals))
105
102
  except Exception:
@@ -111,7 +108,7 @@ def get_exception_breakpoint(exctype, exceptions):
111
108
  if not exctype:
112
109
  exception_full_qname = None
113
110
  else:
114
- exception_full_qname = str(exctype.__module__) + '.' + exctype.__name__
111
+ exception_full_qname = str(exctype.__module__) + "." + exctype.__name__
115
112
 
116
113
  exc = None
117
114
  if exceptions is not None:
@@ -170,9 +167,9 @@ def stop_on_unhandled_exception(py_db, thread, additional_info, arg):
170
167
  try:
171
168
  additional_info.pydev_message = exception_breakpoint.qname
172
169
  except:
173
- additional_info.pydev_message = exception_breakpoint.qname.encode('utf-8')
170
+ additional_info.pydev_message = exception_breakpoint.qname.encode("utf-8")
174
171
 
175
- pydev_log.debug('Handling post-mortem stop on exception breakpoint %s' % (exception_breakpoint.qname,))
172
+ pydev_log.debug("Handling post-mortem stop on exception breakpoint %s" % (exception_breakpoint.qname,))
176
173
 
177
174
  py_db.do_stop_on_unhandled_exception(thread, user_frame, frames_byid, arg)
178
175
 
@@ -6,7 +6,7 @@ Note: not importable from Python 2.
6
6
 
7
7
  from _pydev_bundle import pydev_log
8
8
  from types import CodeType
9
- from _pydevd_frame_eval.vendored.bytecode.instr import _Variable
9
+ from _pydevd_frame_eval.vendored.bytecode.instr import _Variable, Label
10
10
  from _pydevd_frame_eval.vendored import bytecode
11
11
  from _pydevd_frame_eval.vendored.bytecode import cfg as bytecode_cfg
12
12
  import dis
@@ -15,69 +15,85 @@ import opcode as _opcode
15
15
  from _pydevd_bundle.pydevd_constants import KeyifyList, DebugInfoHolder, IS_PY311_OR_GREATER
16
16
  from bisect import bisect
17
17
  from collections import deque
18
+ import traceback
18
19
 
19
20
  # When True, throws errors on unknown bytecodes, when False, ignore those as if they didn't change the stack.
20
21
  STRICT_MODE = False
21
22
 
23
+ GO_INTO_INNER_CODES = True
24
+
22
25
  DEBUG = False
23
26
 
24
- _BINARY_OPS = set([opname for opname in dis.opname if opname.startswith('BINARY_')])
27
+ _BINARY_OPS = set([opname for opname in dis.opname if opname.startswith("BINARY_")])
25
28
 
26
29
  _BINARY_OP_MAP = {
27
- 'BINARY_POWER': '__pow__',
28
- 'BINARY_MULTIPLY': '__mul__',
29
- 'BINARY_MATRIX_MULTIPLY': '__matmul__',
30
- 'BINARY_FLOOR_DIVIDE': '__floordiv__',
31
- 'BINARY_TRUE_DIVIDE': '__div__',
32
- 'BINARY_MODULO': '__mod__',
33
- 'BINARY_ADD': '__add__',
34
- 'BINARY_SUBTRACT': '__sub__',
35
- 'BINARY_LSHIFT': '__lshift__',
36
- 'BINARY_RSHIFT': '__rshift__',
37
- 'BINARY_AND': '__and__',
38
- 'BINARY_OR': '__or__',
39
- 'BINARY_XOR': '__xor__',
40
- 'BINARY_SUBSCR': '__getitem__',
41
- 'BINARY_DIVIDE': '__div__'
30
+ "BINARY_POWER": "__pow__",
31
+ "BINARY_MULTIPLY": "__mul__",
32
+ "BINARY_MATRIX_MULTIPLY": "__matmul__",
33
+ "BINARY_FLOOR_DIVIDE": "__floordiv__",
34
+ "BINARY_TRUE_DIVIDE": "__div__",
35
+ "BINARY_MODULO": "__mod__",
36
+ "BINARY_ADD": "__add__",
37
+ "BINARY_SUBTRACT": "__sub__",
38
+ "BINARY_LSHIFT": "__lshift__",
39
+ "BINARY_RSHIFT": "__rshift__",
40
+ "BINARY_AND": "__and__",
41
+ "BINARY_OR": "__or__",
42
+ "BINARY_XOR": "__xor__",
43
+ "BINARY_SUBSCR": "__getitem__",
44
+ "BINARY_DIVIDE": "__div__",
42
45
  }
43
46
 
44
47
  _COMP_OP_MAP = {
45
- '<': '__lt__',
46
- '<=': '__le__',
47
- '==': '__eq__',
48
- '!=': '__ne__',
49
- '>': '__gt__',
50
- '>=': '__ge__',
51
- 'in': '__contains__',
52
- 'not in': '__contains__',
48
+ "<": "__lt__",
49
+ "<=": "__le__",
50
+ "==": "__eq__",
51
+ "!=": "__ne__",
52
+ ">": "__gt__",
53
+ ">=": "__ge__",
54
+ "in": "__contains__",
55
+ "not in": "__contains__",
53
56
  }
54
57
 
55
58
 
56
59
  class Target(object):
57
- __slots__ = ['arg', 'lineno', 'offset', 'children_targets']
58
-
59
- def __init__(self, arg, lineno, offset, children_targets=()):
60
+ __slots__ = ["arg", "lineno", "endlineno", "startcol", "endcol", "offset", "children_targets"]
61
+
62
+ def __init__(
63
+ self,
64
+ arg,
65
+ lineno,
66
+ offset,
67
+ children_targets=(),
68
+ # These are optional (only Python 3.11 onwards).
69
+ endlineno=-1,
70
+ startcol=-1,
71
+ endcol=-1,
72
+ ):
60
73
  self.arg = arg
61
74
  self.lineno = lineno
75
+ self.endlineno = endlineno
76
+ self.startcol = startcol
77
+ self.endcol = endcol
78
+
62
79
  self.offset = offset
63
80
  self.children_targets = children_targets
64
81
 
65
82
  def __repr__(self):
66
83
  ret = []
67
84
  for s in self.__slots__:
68
- ret.append('%s: %s' % (s, getattr(self, s)))
69
- return 'Target(%s)' % ', '.join(ret)
85
+ ret.append("%s: %s" % (s, getattr(self, s)))
86
+ return "Target(%s)" % ", ".join(ret)
70
87
 
71
88
  __str__ = __repr__
72
89
 
73
90
 
74
91
  class _TargetIdHashable(object):
75
-
76
92
  def __init__(self, target):
77
93
  self.target = target
78
94
 
79
95
  def __eq__(self, other):
80
- if not hasattr(other, 'target'):
96
+ if not hasattr(other, "target"):
81
97
  return
82
98
  return other.target is self.target
83
99
 
@@ -89,9 +105,9 @@ class _TargetIdHashable(object):
89
105
 
90
106
 
91
107
  class _StackInterpreter(object):
92
- '''
108
+ """
93
109
  Good reference: https://github.com/python/cpython/blob/fcb55c0037baab6f98f91ee38ce84b6f874f034a/Python/ceval.c
94
- '''
110
+ """
95
111
 
96
112
  def __init__(self, bytecode):
97
113
  self.bytecode = bytecode
@@ -102,38 +118,42 @@ class _StackInterpreter(object):
102
118
  self.func_name_id_to_code_object = {}
103
119
 
104
120
  def __str__(self):
105
- return 'Stack:\nFunction calls:\n%s\nLoad attrs:\n%s\n' % (self.function_calls, list(self.load_attrs.values()))
121
+ return "Stack:\nFunction calls:\n%s\nLoad attrs:\n%s\n" % (self.function_calls, list(self.load_attrs.values()))
106
122
 
107
123
  def _getname(self, instr):
108
124
  if instr.opcode in _opcode.hascompare:
109
125
  cmp_op = dis.cmp_op[instr.arg]
110
- if cmp_op not in ('exception match', 'BAD'):
126
+ if cmp_op not in ("exception match", "BAD"):
111
127
  return _COMP_OP_MAP.get(cmp_op, cmp_op)
112
128
  return instr.arg
113
129
 
114
130
  def _getcallname(self, instr):
115
- if instr.name == 'BINARY_SUBSCR':
116
- return '__getitem__().__call__'
117
- if instr.name == 'CALL_FUNCTION':
131
+ if instr.name == "BINARY_SUBSCR":
132
+ return "__getitem__().__call__"
133
+ if instr.name == "CALL_FUNCTION":
118
134
  # Note: previously a '__call__().__call__' was returned, but this was a bit weird
119
135
  # and on Python 3.9 this construct could appear for some internal things where
120
136
  # it wouldn't be expected.
121
137
  # Note: it'd be what we had in func()().
122
138
  return None
123
- if instr.name == 'MAKE_FUNCTION':
124
- return '__func__().__call__'
125
- if instr.name == 'LOAD_ASSERTION_ERROR':
126
- return 'AssertionError'
139
+ if instr.name == "MAKE_FUNCTION":
140
+ return "__func__().__call__"
141
+ if instr.name == "LOAD_ASSERTION_ERROR":
142
+ return "AssertionError"
127
143
  name = self._getname(instr)
128
144
  if isinstance(name, CodeType):
129
145
  name = name.co_qualname # Note: only available for Python 3.11
130
146
  if isinstance(name, _Variable):
131
147
  name = name.name
148
+ if isinstance(name, tuple):
149
+ # Load attr in Python 3.12 comes with (bool, name)
150
+ if len(name) == 2 and isinstance(name[0], bool) and isinstance(name[1], str):
151
+ name = name[1]
132
152
 
133
153
  if not isinstance(name, str):
134
154
  return None
135
- if name.endswith('>'): # xxx.<listcomp>, xxx.<lambda>, ...
136
- return name.split('.')[-1]
155
+ if name.endswith(">"): # xxx.<listcomp>, xxx.<lambda>, ...
156
+ return name.split(".")[-1]
137
157
  return name
138
158
 
139
159
  def _no_stack_change(self, instr):
@@ -203,17 +223,16 @@ class _StackInterpreter(object):
203
223
  target = None
204
224
  if not call_name:
205
225
  pass # Ignore if we can't identify a name
206
- elif call_name in ('<listcomp>', '<genexpr>', '<setcomp>', '<dictcomp>'):
226
+ elif call_name in ("<listcomp>", "<genexpr>", "<setcomp>", "<dictcomp>"):
207
227
  code_obj = self.func_name_id_to_code_object[_TargetIdHashable(func_name_instr)]
208
- if code_obj is not None:
228
+ if code_obj is not None and GO_INTO_INNER_CODES:
209
229
  children_targets = _get_smart_step_into_targets(code_obj)
210
230
  if children_targets:
211
231
  # i.e.: we have targets inside of a <listcomp> or <genexpr>.
212
232
  # Note that to actually match this in the debugger we need to do matches on 2 frames,
213
233
  # the one with the <listcomp> and then the actual target inside the <listcomp>.
214
234
  target = Target(call_name, func_name_instr.lineno, func_call_instr.offset, children_targets)
215
- self.function_calls.append(
216
- target)
235
+ self.function_calls.append(target)
217
236
 
218
237
  else:
219
238
  # Ok, regular call
@@ -221,7 +240,7 @@ class _StackInterpreter(object):
221
240
  self.function_calls.append(target)
222
241
 
223
242
  if DEBUG and target is not None:
224
- print('Created target', target)
243
+ print("Created target", target)
225
244
  self._stack.append(func_call_instr) # Keep the func call as the result
226
245
 
227
246
  def on_COMPARE_OP(self, instr):
@@ -235,7 +254,7 @@ class _StackInterpreter(object):
235
254
  return
236
255
 
237
256
  cmp_op = dis.cmp_op[instr.arg]
238
- if cmp_op not in ('exception match', 'BAD'):
257
+ if cmp_op not in ("exception match", "BAD"):
239
258
  self.function_calls.append(Target(self._getname(instr), instr.lineno, instr.offset))
240
259
 
241
260
  self._stack.append(instr)
@@ -300,7 +319,7 @@ class _StackInterpreter(object):
300
319
  _func_defaults = self._stack.pop()
301
320
 
302
321
  call_name = self._getcallname(qualname)
303
- if call_name in ('<genexpr>', '<listcomp>', '<setcomp>', '<dictcomp>'):
322
+ if call_name in ("<genexpr>", "<listcomp>", "<setcomp>", "<dictcomp>"):
304
323
  if isinstance(code_obj_instr.arg, CodeType):
305
324
  self.func_name_id_to_code_object[_TargetIdHashable(qualname)] = code_obj_instr.arg
306
325
  self._stack.append(qualname)
@@ -308,6 +327,9 @@ class _StackInterpreter(object):
308
327
  def on_LOAD_FAST(self, instr):
309
328
  self._stack.append(instr)
310
329
 
330
+ on_LOAD_FAST_AND_CLEAR = on_LOAD_FAST
331
+ on_LOAD_FAST_CHECK = on_LOAD_FAST
332
+
311
333
  def on_LOAD_ASSERTION_ERROR(self, instr):
312
334
  self._stack.append(instr)
313
335
 
@@ -321,14 +343,49 @@ class _StackInterpreter(object):
321
343
  func_name_instr = self._stack.pop()
322
344
  self._handle_call_from_instr(func_name_instr, instr)
323
345
 
346
+ def on_CALL(self, instr):
347
+ # pop the actual args
348
+ for _ in range(instr.arg):
349
+ self._stack.pop()
350
+
351
+ func_name_instr = self._stack.pop()
352
+ if self._getcallname(func_name_instr) is None:
353
+ func_name_instr = self._stack.pop()
354
+
355
+ if self._stack:
356
+ peeked = self._stack[-1]
357
+ if peeked.name == "PUSH_NULL":
358
+ self._stack.pop()
359
+
360
+ self._handle_call_from_instr(func_name_instr, instr)
361
+
362
+ def on_CALL_INTRINSIC_1(self, instr):
363
+ try:
364
+ func_name_instr = self._stack.pop()
365
+ except IndexError:
366
+ return
367
+
368
+ if self._stack:
369
+ peeked = self._stack[-1]
370
+ if peeked.name == "PUSH_NULL":
371
+ self._stack.pop()
372
+
373
+ self._handle_call_from_instr(func_name_instr, instr)
374
+
324
375
  def on_PUSH_NULL(self, instr):
325
376
  self._stack.append(instr)
326
377
 
378
+ def on_KW_NAMES(self, instr):
379
+ return
380
+
381
+ def on_RETURN_CONST(self, instr):
382
+ return
383
+
327
384
  def on_CALL_FUNCTION(self, instr):
328
385
  arg = instr.arg
329
386
 
330
- argc = arg & 0xff # positional args
331
- argc += ((arg >> 8) * 2) # keyword args
387
+ argc = arg & 0xFF # positional args
388
+ argc += (arg >> 8) * 2 # keyword args
332
389
 
333
390
  # pop the actual args
334
391
  for _ in range(argc):
@@ -350,8 +407,8 @@ class _StackInterpreter(object):
350
407
  # pop the actual args
351
408
  arg = instr.arg
352
409
 
353
- argc = arg & 0xff # positional args
354
- argc += ((arg >> 8) * 2) # keyword args
410
+ argc = arg & 0xFF # positional args
411
+ argc += (arg >> 8) * 2 # keyword args
355
412
 
356
413
  for _ in range(argc):
357
414
  self._stack.pop()
@@ -366,8 +423,8 @@ class _StackInterpreter(object):
366
423
  # pop the actual args
367
424
  arg = instr.arg
368
425
 
369
- argc = arg & 0xff # positional args
370
- argc += ((arg >> 8) * 2) # keyword args
426
+ argc = arg & 0xFF # positional args
427
+ argc += (arg >> 8) * 2 # keyword args
371
428
 
372
429
  for _ in range(argc):
373
430
  self._stack.pop()
@@ -381,8 +438,8 @@ class _StackInterpreter(object):
381
438
 
382
439
  arg = instr.arg
383
440
 
384
- argc = arg & 0xff # positional args
385
- argc += ((arg >> 8) * 2) # keyword args
441
+ argc = arg & 0xFF # positional args
442
+ argc += (arg >> 8) * 2 # keyword args
386
443
 
387
444
  # also pop **kwargs
388
445
  self._stack.pop()
@@ -401,9 +458,9 @@ class _StackInterpreter(object):
401
458
  func_name_instr = self._stack.pop()
402
459
  self._handle_call_from_instr(func_name_instr, instr)
403
460
 
404
- on_YIELD_VALUE = _no_stack_change
405
461
  on_GET_AITER = _no_stack_change
406
462
  on_GET_ANEXT = _no_stack_change
463
+ on_END_FOR = _no_stack_change
407
464
  on_END_ASYNC_FOR = _no_stack_change
408
465
  on_BEFORE_ASYNC_WITH = _no_stack_change
409
466
  on_SETUP_ASYNC_WITH = _no_stack_change
@@ -435,6 +492,13 @@ class _StackInterpreter(object):
435
492
  except IndexError:
436
493
  return
437
494
 
495
+ def on_SWAP(self, instr):
496
+ i = instr.arg
497
+ try:
498
+ self._stack[-i], self._stack[-1] = self._stack[-1], self._stack[-i]
499
+ except:
500
+ pass
501
+
438
502
  def on_ROT_TWO(self, instr):
439
503
  try:
440
504
  p0 = self._stack.pop()
@@ -520,6 +584,7 @@ class _StackInterpreter(object):
520
584
  self.on_POP_TOP(instr) # value
521
585
  self._stack.append(instr)
522
586
 
587
+ on_YIELD_VALUE = on_POP_TOP
523
588
  on_RETURN_VALUE = on_POP_TOP
524
589
  on_POP_JUMP_IF_FALSE = on_POP_TOP
525
590
  on_POP_JUMP_IF_TRUE = on_POP_TOP
@@ -575,6 +640,8 @@ class _StackInterpreter(object):
575
640
 
576
641
  on_POP_BLOCK = _no_stack_change
577
642
  on_JUMP_FORWARD = _no_stack_change
643
+ on_JUMP_BACKWARD = _no_stack_change
644
+ on_JUMP_BACKWARD_NO_INTERRUPT = _no_stack_change
578
645
  on_POP_EXCEPT = _no_stack_change
579
646
  on_SETUP_EXCEPT = _no_stack_change
580
647
  on_WITH_EXCEPT_START = _no_stack_change
@@ -662,6 +729,7 @@ class _StackInterpreter(object):
662
729
  # some evaluation.
663
730
  on_PRINT_EXPR = on_POP_TOP
664
731
 
732
+ on_LABEL = _no_stack_change
665
733
  on_UNARY_POSITIVE = _no_stack_change
666
734
  on_UNARY_NEGATIVE = _no_stack_change
667
735
  on_UNARY_NOT = _no_stack_change
@@ -672,9 +740,9 @@ class _StackInterpreter(object):
672
740
 
673
741
 
674
742
  def _get_smart_step_into_targets(code):
675
- '''
743
+ """
676
744
  :return list(Target)
677
- '''
745
+ """
678
746
  b = bytecode.Bytecode.from_code(code)
679
747
  cfg = bytecode_cfg.ControlFlowGraph.from_bytecode(b)
680
748
 
@@ -682,33 +750,39 @@ def _get_smart_step_into_targets(code):
682
750
 
683
751
  for block in cfg:
684
752
  if DEBUG:
685
- print('\nStart block----')
753
+ print("\nStart block----")
686
754
  stack = _StackInterpreter(block)
687
755
  for instr in block:
756
+ if isinstance(instr, (Label,)):
757
+ # No name for these
758
+ continue
688
759
  try:
689
- func_name = 'on_%s' % (instr.name,)
760
+ func_name = "on_%s" % (instr.name,)
690
761
  func = getattr(stack, func_name, None)
691
762
 
692
- if DEBUG:
693
- if instr.name != 'CACHE': # Filter the ones we don't want to see.
694
- print('\nWill handle: ', instr, '>>', stack._getname(instr), '<<')
695
- print('Current stack:')
696
- for entry in stack._stack:
697
- print(' arg:', stack._getname(entry), '(', entry, ')')
698
-
699
763
  if func is None:
700
764
  if STRICT_MODE:
701
- raise AssertionError('%s not found.' % (func_name,))
765
+ raise AssertionError("%s not found." % (func_name,))
702
766
  else:
767
+ if DEBUG:
768
+ print("Skipping: %s." % (func_name,))
769
+
703
770
  continue
704
771
  func(instr)
772
+
773
+ if DEBUG:
774
+ if instr.name != "CACHE": # Filter the ones we don't want to see.
775
+ print("\nHandled: ", instr, ">>", stack._getname(instr), "<<")
776
+ print("New stack:")
777
+ for entry in stack._stack:
778
+ print(" arg:", stack._getname(entry), "(", entry, ")")
705
779
  except:
706
780
  if STRICT_MODE:
707
781
  raise # Error in strict mode.
708
782
  else:
709
783
  # In non-strict mode, log it (if in verbose mode) and keep on going.
710
784
  if DebugInfoHolder.DEBUG_TRACE_LEVEL >= 2:
711
- pydev_log.exception('Exception computing step into targets (handled).')
785
+ pydev_log.exception("Exception computing step into targets (handled).")
712
786
 
713
787
  ret.extend(stack.function_calls)
714
788
  # No longer considering attr loads as calls (while in theory sometimes it's possible
@@ -717,6 +791,8 @@ def _get_smart_step_into_targets(code):
717
791
  # step into from stepping into properties).
718
792
  # ret.extend(stack.load_attrs.values())
719
793
 
794
+ if DEBUG:
795
+ print("\nEnd block----")
720
796
  return ret
721
797
 
722
798
 
@@ -725,12 +801,15 @@ def _get_smart_step_into_targets(code):
725
801
  # to inspect the parent frame for frame.f_lasti to know where we actually are (as the
726
802
  # caller name may not always match the new frame name).
727
803
  class Variant(object):
728
- __slots__ = ['name', 'is_visited', 'line', 'offset', 'call_order', 'children_variants', 'parent']
804
+ __slots__ = ["name", "is_visited", "line", "offset", "call_order", "children_variants", "parent", "endlineno", "startcol", "endcol"]
729
805
 
730
- def __init__(self, name, is_visited, line, offset, call_order, children_variants=None):
806
+ def __init__(self, name, is_visited, line, offset, call_order, children_variants=None, endlineno=-1, startcol=-1, endcol=-1):
731
807
  self.name = name
732
808
  self.is_visited = is_visited
733
809
  self.line = line
810
+ self.endlineno = endlineno
811
+ self.startcol = startcol
812
+ self.endcol = endcol
734
813
  self.offset = offset
735
814
  self.call_order = call_order
736
815
  self.children_variants = children_variants
@@ -742,32 +821,32 @@ class Variant(object):
742
821
  def __repr__(self):
743
822
  ret = []
744
823
  for s in self.__slots__:
745
- if s == 'parent':
824
+ if s == "parent":
746
825
  try:
747
826
  parent = self.parent
748
827
  except AttributeError:
749
- ret.append('%s: <not set>' % (s,))
828
+ ret.append("%s: <not set>" % (s,))
750
829
  else:
751
830
  if parent is None:
752
- ret.append('parent: None')
831
+ ret.append("parent: None")
753
832
  else:
754
- ret.append('parent: %s (%s)' % (parent.name, parent.offset))
833
+ ret.append("parent: %s (%s)" % (parent.name, parent.offset))
755
834
  continue
756
835
 
757
- if s == 'children_variants':
758
- ret.append('children_variants: %s' % (len(self.children_variants) if self.children_variants else 0))
836
+ if s == "children_variants":
837
+ ret.append("children_variants: %s" % (len(self.children_variants) if self.children_variants else 0))
759
838
  continue
760
839
 
761
840
  try:
762
- ret.append('%s: %s' % (s, getattr(self, s)))
841
+ ret.append("%s= %s" % (s, getattr(self, s)))
763
842
  except AttributeError:
764
- ret.append('%s: <not set>' % (s,))
765
- return 'Variant(%s)' % ', '.join(ret)
843
+ ret.append("%s: <not set>" % (s,))
844
+ return "Variant(%s)" % ", ".join(ret)
766
845
 
767
846
  __str__ = __repr__
768
847
 
769
848
 
770
- def _convert_target_to_variant(target, start_line, end_line, call_order_cache, lasti, base):
849
+ def _convert_target_to_variant(target, start_line, end_line, call_order_cache: dict, lasti: int, base: int):
771
850
  name = target.arg
772
851
  if not isinstance(name, str):
773
852
  return
@@ -784,10 +863,21 @@ def _convert_target_to_variant(target, start_line, end_line, call_order_cache, l
784
863
  children_variants = None
785
864
  if children_targets:
786
865
  children_variants = [
787
- _convert_target_to_variant(child, start_line, end_line, call_order_cache, lasti, base)
788
- for child in target.children_targets]
789
-
790
- return Variant(name, is_visited, target.lineno - base, target.offset, call_order, children_variants)
866
+ _convert_target_to_variant(child, start_line, end_line, call_order_cache, lasti, base) for child in target.children_targets
867
+ ]
868
+
869
+ return Variant(
870
+ name,
871
+ is_visited,
872
+ target.lineno - base,
873
+ target.offset,
874
+ call_order,
875
+ children_variants,
876
+ # Only really matter in Python 3.11
877
+ target.endlineno - base if target.endlineno >= 0 else -1,
878
+ target.startcol,
879
+ target.endcol,
880
+ )
791
881
 
792
882
 
793
883
  def calculate_smart_step_into_variants(frame, start_line, end_line, base=0):
@@ -801,13 +891,18 @@ def calculate_smart_step_into_variants(frame, start_line, end_line, base=0):
801
891
  :note: it's guaranteed that the offsets appear in order.
802
892
  :raise: :py:class:`RuntimeError` if failed to parse the bytecode or if dis cannot be used.
803
893
  """
894
+ if IS_PY311_OR_GREATER:
895
+ from . import pydevd_bytecode_utils_py311
896
+
897
+ return pydevd_bytecode_utils_py311.calculate_smart_step_into_variants(frame, start_line, end_line, base)
898
+
804
899
  variants = []
805
900
  code = frame.f_code
806
901
  lasti = frame.f_lasti
807
902
 
808
903
  call_order_cache = {}
809
904
  if DEBUG:
810
- print('dis.dis:')
905
+ print("dis.dis:")
811
906
  if IS_PY311_OR_GREATER:
812
907
  dis.dis(code, show_caches=False)
813
908
  else:
@@ -834,7 +929,7 @@ def get_smart_step_into_variant_from_frame_offset(frame_f_lasti, variants):
834
929
  if not variants:
835
930
  return None
836
931
 
837
- i = bisect(KeyifyList(variants, lambda entry:entry.offset), frame_f_lasti)
932
+ i = bisect(KeyifyList(variants, lambda entry: entry.offset), frame_f_lasti)
838
933
 
839
934
  if i == 0:
840
935
  return None