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,4 +1,4 @@
1
- r'''
1
+ r"""
2
2
  Copyright: Brainwy Software Ltda.
3
3
 
4
4
  License: EPL.
@@ -64,7 +64,7 @@ Other references:
64
64
  To build the dlls needed on windows, visual studio express 13 was used (see compile_dll.bat)
65
65
 
66
66
  See: attach_pydevd.py to attach the pydev debugger to a running python process.
67
- '''
67
+ """
68
68
 
69
69
  # Note: to work with nasm compiling asm to code and decompiling to see asm with shellcode:
70
70
  # x:\nasm\nasm-2.07-win32\nasm-2.07\nasm.exe
@@ -94,17 +94,16 @@ def _create_win_event(name):
94
94
  manual_reset = False # i.e.: after someone waits it, automatically set to False.
95
95
  initial_state = False
96
96
  if not isinstance(name, bytes):
97
- name = name.encode('utf-8')
97
+ name = name.encode("utf-8")
98
98
  event = CreateEventA(None, manual_reset, initial_state, name)
99
99
  if not event:
100
100
  raise ctypes.WinError()
101
101
 
102
102
  class _WinEvent(object):
103
-
104
103
  def wait_for_event_set(self, timeout=None):
105
- '''
104
+ """
106
105
  :param timeout: in seconds
107
- '''
106
+ """
108
107
  if timeout is None:
109
108
  timeout = 0xFFFFFFFF
110
109
  else:
@@ -124,13 +123,13 @@ def _create_win_event(name):
124
123
  CloseHandle(event)
125
124
 
126
125
 
127
- IS_WINDOWS = sys.platform == 'win32'
128
- IS_LINUX = sys.platform in ('linux', 'linux2')
129
- IS_MAC = sys.platform == 'darwin'
126
+ IS_WINDOWS = sys.platform == "win32"
127
+ IS_LINUX = sys.platform in ("linux", "linux2")
128
+ IS_MAC = sys.platform == "darwin"
130
129
 
131
130
 
132
131
  def is_python_64bit():
133
- return (struct.calcsize('P') == 8)
132
+ return struct.calcsize("P") == 8
134
133
 
135
134
 
136
135
  def get_target_filename(is_target_process_64=None, prefix=None, extension=None):
@@ -140,7 +139,7 @@ def get_target_filename(is_target_process_64=None, prefix=None, extension=None):
140
139
  # debugger -- the only situation where it's imported is if the user actually does an attach to
141
140
  # process, through `attach_pydevd.py`, but this should usually be called from the IDE directly
142
141
  # and not from the debugger).
143
- libdir = os.path.dirname(__file__)
142
+ libdir = os.path.dirname(os.path.abspath(__file__))
144
143
 
145
144
  if is_target_process_64 is None:
146
145
  if IS_WINDOWS:
@@ -150,41 +149,41 @@ def get_target_filename(is_target_process_64=None, prefix=None, extension=None):
150
149
  # For other platforms, just use the the same bitness of the process we're running in.
151
150
  is_target_process_64 = is_python_64bit()
152
151
 
153
- arch = ''
152
+ arch = ""
154
153
  if IS_WINDOWS:
155
154
  # prefer not using platform.machine() when possible (it's a bit heavyweight as it may
156
155
  # spawn a subprocess).
157
- arch = os.environ.get("PROCESSOR_ARCHITEW6432", os.environ.get('PROCESSOR_ARCHITECTURE', ''))
156
+ arch = os.environ.get("PROCESSOR_ARCHITEW6432", os.environ.get("PROCESSOR_ARCHITECTURE", ""))
158
157
 
159
158
  if not arch:
160
159
  arch = platform.machine()
161
160
  if not arch:
162
- print('platform.machine() did not return valid value.') # This shouldn't happen...
161
+ print("platform.machine() did not return valid value.") # This shouldn't happen...
163
162
  return None
164
163
 
165
164
  if IS_WINDOWS:
166
165
  if not extension:
167
- extension = '.dll'
168
- suffix_64 = 'amd64'
169
- suffix_32 = 'x86'
166
+ extension = ".dll"
167
+ suffix_64 = "amd64"
168
+ suffix_32 = "x86"
170
169
 
171
170
  elif IS_LINUX:
172
171
  if not extension:
173
- extension = '.so'
174
- suffix_64 = 'amd64'
175
- suffix_32 = 'x86'
172
+ extension = ".so"
173
+ suffix_64 = "amd64"
174
+ suffix_32 = "x86"
176
175
 
177
176
  elif IS_MAC:
178
177
  if not extension:
179
- extension = '.dylib'
180
- suffix_64 = 'x86_64'
181
- suffix_32 = 'x86'
178
+ extension = ".dylib"
179
+ suffix_64 = "x86_64"
180
+ suffix_32 = "x86"
182
181
 
183
182
  else:
184
- print('Unable to attach to process in platform: %s', sys.platform)
183
+ print("Unable to attach to process in platform: %s", sys.platform)
185
184
  return None
186
185
 
187
- if arch.lower() not in ('amd64', 'x86', 'x86_64', 'i386', 'x86'):
186
+ if arch.lower() not in ("amd64", "x86", "x86_64", "i386", "x86"):
188
187
  # We don't support this processor by default. Still, let's support the case where the
189
188
  # user manually compiled it himself with some heuristics.
190
189
  #
@@ -195,19 +194,19 @@ def get_target_filename(is_target_process_64=None, prefix=None, extension=None):
195
194
  # - linux_and_mac/compile_mac.sh
196
195
 
197
196
  try:
198
- found = [name for name in os.listdir(libdir) if name.startswith('attach_') and name.endswith(extension)]
197
+ found = [name for name in os.listdir(libdir) if name.startswith("attach_") and name.endswith(extension)]
199
198
  except:
200
- print('Error listing dir: %s' % (libdir,))
199
+ print("Error listing dir: %s" % (libdir,))
201
200
  traceback.print_exc()
202
201
  return None
203
202
 
204
203
  if prefix:
205
204
  expected_name = prefix + arch + extension
206
- expected_name_linux = prefix + 'linux_' + arch + extension
205
+ expected_name_linux = prefix + "linux_" + arch + extension
207
206
  else:
208
207
  # Default is looking for the attach_ / attach_linux
209
- expected_name = 'attach_' + arch + extension
210
- expected_name_linux = 'attach_linux_' + arch + extension
208
+ expected_name = "attach_" + arch + extension
209
+ expected_name_linux = "attach_linux_" + arch + extension
211
210
 
212
211
  filename = None
213
212
  if expected_name in found: # Heuristic: user compiled with "attach_<arch>.<extension>"
@@ -225,14 +224,10 @@ def get_target_filename(is_target_process_64=None, prefix=None, extension=None):
225
224
  filename = os.path.join(libdir, found[0])
226
225
 
227
226
  if filename is None:
228
- print(
229
- 'Unable to attach to process in arch: %s (did not find %s in %s).' % (
230
- arch, expected_name, libdir
231
- )
232
- )
227
+ print("Unable to attach to process in arch: %s (did not find %s in %s)." % (arch, expected_name, libdir))
233
228
  return None
234
229
 
235
- print('Using %s in arch: %s.' % (filename, arch))
230
+ print("Using %s in arch: %s." % (filename, arch))
236
231
 
237
232
  else:
238
233
  if is_target_process_64:
@@ -243,33 +238,34 @@ def get_target_filename(is_target_process_64=None, prefix=None, extension=None):
243
238
  if not prefix:
244
239
  # Default is looking for the attach_ / attach_linux
245
240
  if IS_WINDOWS or IS_MAC: # just the extension changes
246
- prefix = 'attach_'
241
+ prefix = "attach_"
247
242
  elif IS_LINUX:
248
- prefix = 'attach_linux_' # historically it has a different name
243
+ prefix = "attach_linux_" # historically it has a different name
249
244
  else:
250
- print('Unable to attach to process in platform: %s' % (sys.platform,))
245
+ print("Unable to attach to process in platform: %s" % (sys.platform,))
251
246
  return None
252
247
 
253
- filename = os.path.join(libdir, '%s%s%s' % (prefix, suffix, extension))
248
+ filename = os.path.join(libdir, "%s%s%s" % (prefix, suffix, extension))
254
249
 
255
250
  if not os.path.exists(filename):
256
- print('Expected: %s to exist.' % (filename,))
251
+ print("Expected: %s to exist." % (filename,))
257
252
  return None
258
253
 
259
254
  return filename
260
255
 
261
256
 
262
257
  def run_python_code_windows(pid, python_code, connect_debugger_tracing=False, show_debug_info=0):
263
- assert '\'' not in python_code, 'Having a single quote messes with our command.'
258
+ assert "'" not in python_code, "Having a single quote messes with our command."
264
259
 
265
260
  # Suppress winappdbg warning about sql package missing.
266
261
  import warnings
262
+
267
263
  with warnings.catch_warnings():
268
264
  warnings.simplefilter("ignore", category=ImportWarning)
269
265
  from winappdbg.process import Process
270
266
 
271
267
  if not isinstance(python_code, bytes):
272
- python_code = python_code.encode('utf-8')
268
+ python_code = python_code.encode("utf-8")
273
269
 
274
270
  process = Process(pid)
275
271
  bits = process.get_bits()
@@ -282,41 +278,40 @@ def run_python_code_windows(pid, python_code, connect_debugger_tracing=False, sh
282
278
  # "Target 64 bits: %s\n"
283
279
  # "Current Python 64 bits: %s" % (is_target_process_64, is_python_64bit()))
284
280
 
285
- with _acquire_mutex('_pydevd_pid_attach_mutex_%s' % (pid,), 10):
286
- print('--- Connecting to %s bits target (current process is: %s) ---' % (bits, 64 if is_python_64bit() else 32))
281
+ with _acquire_mutex("_pydevd_pid_attach_mutex_%s" % (pid,), 10):
282
+ print("--- Connecting to %s bits target (current process is: %s) ---" % (bits, 64 if is_python_64bit() else 32))
287
283
  sys.stdout.flush()
288
284
 
289
285
  with _win_write_to_shared_named_memory(python_code, pid):
290
-
291
- target_executable = get_target_filename(is_target_process_64, 'inject_dll_', '.exe')
286
+ target_executable = get_target_filename(is_target_process_64, "inject_dll_", ".exe")
292
287
  if not target_executable:
293
- raise RuntimeError('Could not find expected .exe file to inject dll in attach to process.')
288
+ raise RuntimeError("Could not find expected .exe file to inject dll in attach to process.")
294
289
 
295
290
  target_dll = get_target_filename(is_target_process_64)
296
291
  if not target_dll:
297
- raise RuntimeError('Could not find expected .dll file in attach to process.')
292
+ raise RuntimeError("Could not find expected .dll file in attach to process.")
298
293
 
299
- print('\n--- Injecting attach dll: %s into pid: %s ---' % (os.path.basename(target_dll), pid))
294
+ print("\n--- Injecting attach dll: %s into pid: %s ---" % (os.path.basename(target_dll), pid))
300
295
  sys.stdout.flush()
301
296
  args = [target_executable, str(pid), target_dll]
302
297
  subprocess.check_call(args)
303
298
 
304
299
  # Now, if the first injection worked, go on to the second which will actually
305
300
  # run the code.
306
- target_dll_run_on_dllmain = get_target_filename(is_target_process_64, 'run_code_on_dllmain_', '.dll')
301
+ target_dll_run_on_dllmain = get_target_filename(is_target_process_64, "run_code_on_dllmain_", ".dll")
307
302
  if not target_dll_run_on_dllmain:
308
- raise RuntimeError('Could not find expected .dll in attach to process.')
303
+ raise RuntimeError("Could not find expected .dll in attach to process.")
309
304
 
310
- with _create_win_event('_pydevd_pid_event_%s' % (pid,)) as event:
311
- print('\n--- Injecting run code dll: %s into pid: %s ---' % (os.path.basename(target_dll_run_on_dllmain), pid))
305
+ with _create_win_event("_pydevd_pid_event_%s" % (pid,)) as event:
306
+ print("\n--- Injecting run code dll: %s into pid: %s ---" % (os.path.basename(target_dll_run_on_dllmain), pid))
312
307
  sys.stdout.flush()
313
308
  args = [target_executable, str(pid), target_dll_run_on_dllmain]
314
309
  subprocess.check_call(args)
315
310
 
316
- if not event.wait_for_event_set(15):
317
- print('Timeout error: the attach may not have completed.')
311
+ if not event.wait_for_event_set(30):
312
+ print("Timeout error: the attach may not have completed.")
318
313
  sys.stdout.flush()
319
- print('--- Finished dll injection ---\n')
314
+ print("--- Finished dll injection ---\n")
320
315
  sys.stdout.flush()
321
316
 
322
317
  return 0
@@ -324,10 +319,10 @@ def run_python_code_windows(pid, python_code, connect_debugger_tracing=False, sh
324
319
 
325
320
  @contextmanager
326
321
  def _acquire_mutex(mutex_name, timeout):
327
- '''
322
+ """
328
323
  Only one process may be attaching to a pid, so, create a system mutex
329
324
  to make sure this holds in practice.
330
- '''
325
+ """
331
326
  from winappdbg.win32.kernel32 import CreateMutex, GetLastError, CloseHandle
332
327
  from winappdbg.win32.defines import ERROR_ALREADY_EXISTS
333
328
 
@@ -338,8 +333,8 @@ def _acquire_mutex(mutex_name, timeout):
338
333
  if acquired:
339
334
  break
340
335
  if time.time() - initial_time > timeout:
341
- raise TimeoutError('Unable to acquire mutex to make attach before timeout.')
342
- time.sleep(.2)
336
+ raise TimeoutError("Unable to acquire mutex to make attach before timeout.")
337
+ time.sleep(0.2)
343
338
 
344
339
  try:
345
340
  yield
@@ -369,18 +364,17 @@ def _win_write_to_shared_named_memory(python_code, pid):
369
364
  # Note: BUFSIZE must be the same from run_code_in_memory.hpp
370
365
  BUFSIZE = 2048
371
366
  assert isinstance(python_code, bytes)
372
- assert len(python_code) > 0, 'Python code must not be empty.'
367
+ assert len(python_code) > 0, "Python code must not be empty."
373
368
  # Note: -1 so that we're sure we'll add a \0 to the end.
374
- assert len(python_code) < BUFSIZE - 1, 'Python code must have at most %s bytes (found: %s)' % (BUFSIZE - 1, len(python_code))
369
+ assert len(python_code) < BUFSIZE - 1, "Python code must have at most %s bytes (found: %s)" % (BUFSIZE - 1, len(python_code))
375
370
 
376
- python_code += b'\0' * (BUFSIZE - len(python_code))
377
- assert python_code.endswith(b'\0')
371
+ python_code += b"\0" * (BUFSIZE - len(python_code))
372
+ assert python_code.endswith(b"\0")
378
373
 
379
374
  INVALID_HANDLE_VALUE = -1
380
375
  PAGE_READWRITE = 0x4
381
376
  FILE_MAP_WRITE = 0x2
382
- filemap = CreateFileMapping(
383
- INVALID_HANDLE_VALUE, 0, PAGE_READWRITE, 0, BUFSIZE, u"__pydevd_pid_code_to_run__%s" % (pid,))
377
+ filemap = CreateFileMapping(INVALID_HANDLE_VALUE, 0, PAGE_READWRITE, 0, BUFSIZE, "__pydevd_pid_code_to_run__%s" % (pid,))
384
378
 
385
379
  if filemap == INVALID_HANDLE_VALUE or filemap is None:
386
380
  raise Exception("Failed to create named file mapping (ctypes: CreateFileMapping): %s" % (filemap,))
@@ -399,26 +393,34 @@ def _win_write_to_shared_named_memory(python_code, pid):
399
393
 
400
394
 
401
395
  def run_python_code_linux(pid, python_code, connect_debugger_tracing=False, show_debug_info=0):
402
- assert '\'' not in python_code, 'Having a single quote messes with our command.'
396
+ assert "'" not in python_code, "Having a single quote messes with our command."
403
397
 
404
398
  target_dll = get_target_filename()
405
399
  if not target_dll:
406
- raise RuntimeError('Could not find .so for attach to process.')
400
+ libdir = os.path.dirname(os.path.abspath(__file__))
401
+ found = [name for name in os.listdir(libdir)]
402
+ raise RuntimeError(
403
+ "Could not find .so for attach to process.\nlibdir: %s\nAvailable in dir: %s"
404
+ % (
405
+ libdir,
406
+ found,
407
+ )
408
+ )
407
409
  target_dll_name = os.path.splitext(os.path.basename(target_dll))[0]
408
410
 
409
411
  # Note: we currently don't support debug builds
410
412
  is_debug = 0
411
413
  # Note that the space in the beginning of each line in the multi-line is important!
412
414
  cmd = [
413
- 'gdb',
414
- '--nw', # no gui interface
415
- '--nh', # no ~/.gdbinit
416
- '--nx', # no .gdbinit
417
- # '--quiet', # no version number on startup
418
- '--pid',
415
+ "gdb",
416
+ "--nw", # no gui interface
417
+ "--nh", # no ~/.gdbinit
418
+ "--nx", # no .gdbinit
419
+ # '--quiet', # no version number on startup
420
+ "--pid",
419
421
  str(pid),
420
- '--batch',
421
- # '--batch-silent',
422
+ "--batch",
423
+ # '--batch-silent',
422
424
  ]
423
425
 
424
426
  # PYDEVD_GDB_SCAN_SHARED_LIBRARIES can be a list of strings with the shared libraries
@@ -442,16 +444,16 @@ def run_python_code_linux(pid, python_code, connect_debugger_tracing=False, show
442
444
  #
443
445
  # The downside is that it may be dependent on the Linux version being attached to (which is the
444
446
  # reason why this is no longer done by default -- see: https://github.com/microsoft/debugpy/issues/882).
445
- gdb_load_shared_libraries = os.environ.get('PYDEVD_GDB_SCAN_SHARED_LIBRARIES', '').strip()
447
+ gdb_load_shared_libraries = os.environ.get("PYDEVD_GDB_SCAN_SHARED_LIBRARIES", "").strip()
446
448
  if gdb_load_shared_libraries:
447
- print('PYDEVD_GDB_SCAN_SHARED_LIBRARIES set: %s.' % (gdb_load_shared_libraries,))
449
+ print("PYDEVD_GDB_SCAN_SHARED_LIBRARIES set: %s." % (gdb_load_shared_libraries,))
448
450
  cmd.extend(["--init-eval-command='set auto-solib-add off'"]) # Don't scan all libraries.
449
451
 
450
- for lib in gdb_load_shared_libraries.split(','):
452
+ for lib in gdb_load_shared_libraries.split(","):
451
453
  lib = lib.strip()
452
454
  cmd.extend(["--eval-command='sharedlibrary %s'" % (lib,)]) # Scan the specified library
453
455
  else:
454
- print('PYDEVD_GDB_SCAN_SHARED_LIBRARIES not set (scanning all libraries for needed symbols).')
456
+ print("PYDEVD_GDB_SCAN_SHARED_LIBRARIES not set (scanning all libraries for needed symbols).")
455
457
 
456
458
  cmd.extend(["--eval-command='set scheduler-locking off'"]) # If on we'll deadlock.
457
459
 
@@ -459,79 +461,83 @@ def run_python_code_linux(pid, python_code, connect_debugger_tracing=False, show
459
461
  # current host).
460
462
  cmd.extend(["--eval-command='set architecture auto'"])
461
463
 
462
- cmd.extend([
463
- "--eval-command='call (void*)dlopen(\"%s\", 2)'" % target_dll,
464
- "--eval-command='sharedlibrary %s'" % target_dll_name,
465
- "--eval-command='call (int)DoAttach(%s, \"%s\", %s)'" % (
466
- is_debug, python_code, show_debug_info)
467
- ])
464
+ cmd.extend(
465
+ [
466
+ "--eval-command='call (void*)dlopen(\"%s\", 2)'" % target_dll,
467
+ "--eval-command='sharedlibrary %s'" % target_dll_name,
468
+ "--eval-command='call (int)DoAttach(%s, \"%s\", %s)'" % (is_debug, python_code, show_debug_info),
469
+ ]
470
+ )
468
471
 
469
472
  # print ' '.join(cmd)
470
473
 
471
474
  env = os.environ.copy()
472
475
  # Remove the PYTHONPATH (if gdb has a builtin Python it could fail if we
473
476
  # have the PYTHONPATH for a different python version or some forced encoding).
474
- env.pop('PYTHONIOENCODING', None)
475
- env.pop('PYTHONPATH', None)
476
- print('Running: %s' % (' '.join(cmd)))
477
- subprocess.check_call(' '.join(cmd), shell=True, env=env)
477
+ env.pop("PYTHONIOENCODING", None)
478
+ env.pop("PYTHONPATH", None)
479
+ print("Running: %s" % (" ".join(cmd)))
480
+ subprocess.check_call(" ".join(cmd), shell=True, env=env)
478
481
 
479
482
 
480
483
  def find_helper_script(filedir, script_name):
481
- target_filename = os.path.join(filedir, 'linux_and_mac', script_name)
484
+ target_filename = os.path.join(filedir, "linux_and_mac", script_name)
482
485
  target_filename = os.path.normpath(target_filename)
483
486
  if not os.path.exists(target_filename):
484
- raise RuntimeError('Could not find helper script: %s' % target_filename)
487
+ raise RuntimeError("Could not find helper script: %s" % target_filename)
485
488
 
486
489
  return target_filename
487
490
 
488
491
 
489
492
  def run_python_code_mac(pid, python_code, connect_debugger_tracing=False, show_debug_info=0):
490
- assert '\'' not in python_code, 'Having a single quote messes with our command.'
493
+ assert "'" not in python_code, "Having a single quote messes with our command."
491
494
 
492
495
  target_dll = get_target_filename()
493
496
  if not target_dll:
494
- raise RuntimeError('Could not find .dylib for attach to process.')
497
+ raise RuntimeError("Could not find .dylib for attach to process.")
495
498
 
496
499
  libdir = os.path.dirname(__file__)
497
- lldb_prepare_file = find_helper_script(libdir, 'lldb_prepare.py')
500
+ lldb_prepare_file = find_helper_script(libdir, "lldb_prepare.py")
498
501
  # Note: we currently don't support debug builds
499
502
 
500
503
  is_debug = 0
501
504
  # Note that the space in the beginning of each line in the multi-line is important!
502
505
  cmd = [
503
- 'lldb',
504
- '--no-lldbinit', # Do not automatically parse any '.lldbinit' files.
506
+ "lldb",
507
+ "--no-lldbinit", # Do not automatically parse any '.lldbinit' files.
505
508
  # '--attach-pid',
506
509
  # str(pid),
507
510
  # '--arch',
508
511
  # arch,
509
- '--script-language',
510
- 'Python'
512
+ "--script-language",
513
+ "Python",
511
514
  # '--batch-silent',
512
515
  ]
513
516
 
514
- cmd.extend([
515
- "-o 'process attach --pid %d'" % pid,
516
- "-o 'command script import \"%s\"'" % (lldb_prepare_file,),
517
- "-o 'load_lib_and_attach \"%s\" %s \"%s\" %s'" % (target_dll,
518
- is_debug, python_code, show_debug_info),
519
- ])
517
+ cmd.extend(
518
+ [
519
+ "-o 'process attach --pid %d'" % pid,
520
+ "-o 'command script import \"%s\"'" % (lldb_prepare_file,),
521
+ '-o \'load_lib_and_attach "%s" %s "%s" %s\'' % (target_dll, is_debug, python_code, show_debug_info),
522
+ ]
523
+ )
520
524
 
521
- cmd.extend([
522
- "-o 'process detach'",
523
- "-o 'script import os; os._exit(1)'",
524
- ])
525
+ cmd.extend(
526
+ [
527
+ "-o 'process detach'",
528
+ "-o 'script import os; os._exit(1)'",
529
+ ]
530
+ )
525
531
 
526
532
  # print ' '.join(cmd)
527
533
 
528
534
  env = os.environ.copy()
529
535
  # Remove the PYTHONPATH (if lldb has a builtin Python it could fail if we
530
536
  # have the PYTHONPATH for a different python version or some forced encoding).
531
- env.pop('PYTHONIOENCODING', None)
532
- env.pop('PYTHONPATH', None)
533
- print('Running: %s' % (' '.join(cmd)))
534
- subprocess.check_call(' '.join(cmd), shell=True, env=env)
537
+ env.pop("PYTHONIOENCODING", None)
538
+ env.pop("PYTHONPATH", None)
539
+ print("Running: %s" % (" ".join(cmd)))
540
+ subprocess.check_call(" ".join(cmd), shell=True, env=env)
535
541
 
536
542
 
537
543
  if IS_WINDOWS:
@@ -543,12 +549,12 @@ elif IS_LINUX:
543
549
  else:
544
550
 
545
551
  def run_python_code(*args, **kwargs):
546
- print('Unable to attach to process in platform: %s', sys.platform)
552
+ print("Unable to attach to process in platform: %s", sys.platform)
547
553
 
548
554
 
549
555
  def test():
550
- print('Running with: %s' % (sys.executable,))
551
- code = '''
556
+ print("Running with: %s" % (sys.executable,))
557
+ code = """
552
558
  import os, time, sys
553
559
  print(os.getpid())
554
560
  #from threading import Thread
@@ -558,16 +564,16 @@ if __name__ == '__main__':
558
564
  time.sleep(.5)
559
565
  sys.stdout.write('.\\n')
560
566
  sys.stdout.flush()
561
- '''
567
+ """
562
568
 
563
- p = subprocess.Popen([sys.executable, '-u', '-c', code])
569
+ p = subprocess.Popen([sys.executable, "-u", "-c", code])
564
570
  try:
565
571
  code = 'print("It worked!")\n'
566
572
 
567
573
  # Real code will be something as:
568
574
  # code = '''import sys;sys.path.append(r'X:\winappdbg-code\examples'); import imported;'''
569
575
  run_python_code(p.pid, python_code=code)
570
- print('\nRun a 2nd time...\n')
576
+ print("\nRun a 2nd time...\n")
571
577
  run_python_code(p.pid, python_code=code)
572
578
 
573
579
  time.sleep(3)
@@ -580,19 +586,18 @@ def main(args):
580
586
  # in the target process.
581
587
  pid = int(args[0])
582
588
  del args[0]
583
- python_code = ';'.join(args)
589
+ python_code = ";".join(args)
584
590
 
585
591
  # Note: on Linux the python code may not have a single quote char: '
586
592
  run_python_code(pid, python_code)
587
593
 
588
594
 
589
- if __name__ == '__main__':
595
+ if __name__ == "__main__":
590
596
  args = sys.argv[1:]
591
597
  if not args:
592
- print('Expected pid and Python code to execute in target process.')
598
+ print("Expected pid and Python code to execute in target process.")
593
599
  else:
594
- if '--test' == args[0]:
600
+ if "--test" == args[0]:
595
601
  test()
596
602
  else:
597
603
  main(args)
598
-
@@ -0,0 +1,89 @@
1
+ import sys
2
+ import os
3
+
4
+
5
+ def process_command_line(argv):
6
+ setup = {}
7
+ setup["port"] = 5678 # Default port for PyDev remote debugger
8
+ setup["pid"] = 0
9
+ setup["host"] = "127.0.0.1"
10
+ setup["protocol"] = ""
11
+ setup["debug-mode"] = ""
12
+
13
+ i = 0
14
+ while i < len(argv):
15
+ if argv[i] == "--port":
16
+ del argv[i]
17
+ setup["port"] = int(argv[i])
18
+ del argv[i]
19
+
20
+ elif argv[i] == "--pid":
21
+ del argv[i]
22
+ setup["pid"] = int(argv[i])
23
+ del argv[i]
24
+
25
+ elif argv[i] == "--host":
26
+ del argv[i]
27
+ setup["host"] = argv[i]
28
+ del argv[i]
29
+
30
+ elif argv[i] == "--protocol":
31
+ del argv[i]
32
+ setup["protocol"] = argv[i]
33
+ del argv[i]
34
+
35
+ elif argv[i] == "--debug-mode":
36
+ del argv[i]
37
+ setup["debug-mode"] = argv[i]
38
+ del argv[i]
39
+
40
+ if not setup["pid"]:
41
+ sys.stderr.write("Expected --pid to be passed.\n")
42
+ sys.exit(1)
43
+ return setup
44
+
45
+
46
+ def main(setup):
47
+ sys.path.append(os.path.dirname(__file__))
48
+ import add_code_to_python_process
49
+
50
+ show_debug_info_on_target_process = 0
51
+
52
+ pydevd_dirname = os.path.dirname(os.path.dirname(__file__))
53
+
54
+ if sys.platform == "win32":
55
+ setup["pythonpath"] = pydevd_dirname.replace("\\", "/")
56
+ setup["pythonpath2"] = os.path.dirname(__file__).replace("\\", "/")
57
+ python_code = (
58
+ """import sys;
59
+ sys.path.append("%(pythonpath)s");
60
+ sys.path.append("%(pythonpath2)s");
61
+ import attach_script;
62
+ attach_script.attach(port=%(port)s, host="%(host)s", protocol="%(protocol)s", debug_mode="%(debug-mode)s");
63
+ """.replace("\r\n", "")
64
+ .replace("\r", "")
65
+ .replace("\n", "")
66
+ )
67
+ else:
68
+ setup["pythonpath"] = pydevd_dirname
69
+ setup["pythonpath2"] = os.path.dirname(__file__)
70
+ # We have to pass it a bit differently for gdb
71
+ python_code = (
72
+ """import sys;
73
+ sys.path.append(\\\"%(pythonpath)s\\\");
74
+ sys.path.append(\\\"%(pythonpath2)s\\\");
75
+ import attach_script;
76
+ attach_script.attach(port=%(port)s, host=\\\"%(host)s\\\", protocol=\\\"%(protocol)s\\\", debug_mode=\\\"%(debug-mode)s\\\");
77
+ """.replace("\r\n", "")
78
+ .replace("\r", "")
79
+ .replace("\n", "")
80
+ )
81
+
82
+ python_code = python_code % setup
83
+ add_code_to_python_process.run_python_code(
84
+ setup["pid"], python_code, connect_debugger_tracing=True, show_debug_info=show_debug_info_on_target_process
85
+ )
86
+
87
+
88
+ if __name__ == "__main__":
89
+ main(process_command_line(sys.argv[1:]))