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
@@ -46,7 +46,7 @@ from __future__ import with_statement
46
46
 
47
47
  __revision__ = "$Id$"
48
48
 
49
- __all__ = [ 'ConsoleDebugger', 'CmdError' ]
49
+ __all__ = ["ConsoleDebugger", "CmdError"]
50
50
 
51
51
  # TODO document this module with docstrings.
52
52
  # TODO command to set a last error breakpoint.
@@ -72,10 +72,10 @@ from cmd import Cmd
72
72
  # lazy imports
73
73
  readline = None
74
74
 
75
- #==============================================================================
75
+ # ==============================================================================
76
76
 
77
77
 
78
- class DummyEvent (NoEvent):
78
+ class DummyEvent(NoEvent):
79
79
  "Dummy event object used internally by L{ConsoleDebugger}."
80
80
 
81
81
  def get_pid(self):
@@ -90,27 +90,29 @@ class DummyEvent (NoEvent):
90
90
  def get_thread(self):
91
91
  return self._thread
92
92
 
93
- #==============================================================================
94
93
 
94
+ # ==============================================================================
95
95
 
96
- class CmdError (Exception):
96
+
97
+ class CmdError(Exception):
97
98
  """
98
99
  Exception raised when a command parsing error occurs.
99
100
  Used internally by L{ConsoleDebugger}.
100
101
  """
101
102
 
102
- #==============================================================================
103
+
104
+ # ==============================================================================
103
105
 
104
106
 
105
- class ConsoleDebugger (Cmd, EventHandler):
107
+ class ConsoleDebugger(Cmd, EventHandler):
106
108
  """
107
109
  Interactive console debugger.
108
110
 
109
111
  @see: L{Debug.interactive}
110
112
  """
111
113
 
112
- #------------------------------------------------------------------------------
113
- # Class variables
114
+ # ------------------------------------------------------------------------------
115
+ # Class variables
114
116
 
115
117
  # Exception to raise when an error occurs executing a command.
116
118
  command_error_exception = CmdError
@@ -119,30 +121,34 @@ class ConsoleDebugger (Cmd, EventHandler):
119
121
  dwMilliseconds = 100
120
122
 
121
123
  # History file name.
122
- history_file = '.winappdbg_history'
124
+ history_file = ".winappdbg_history"
123
125
 
124
126
  # Confirm before quitting?
125
127
  confirm_quit = True
126
128
 
127
129
  # Valid plugin name characters.
128
- valid_plugin_name_chars = 'ABCDEFGHIJKLMNOPQRSTUVWXY' \
129
- 'abcdefghijklmnopqrstuvwxy' \
130
- '012345678' \
131
- '_'
130
+ valid_plugin_name_chars = "ABCDEFGHIJKLMNOPQRSTUVWXY" "abcdefghijklmnopqrstuvwxy" "012345678" "_"
132
131
 
133
132
  # Names of the registers.
134
- segment_names = ('cs', 'ds', 'es', 'fs', 'gs')
133
+ segment_names = ("cs", "ds", "es", "fs", "gs")
135
134
 
136
135
  register_alias_64_to_32 = {
137
- 'eax':'Rax', 'ebx':'Rbx', 'ecx':'Rcx', 'edx':'Rdx',
138
- 'eip':'Rip', 'ebp':'Rbp', 'esp':'Rsp', 'esi':'Rsi', 'edi':'Rdi'
136
+ "eax": "Rax",
137
+ "ebx": "Rbx",
138
+ "ecx": "Rcx",
139
+ "edx": "Rdx",
140
+ "eip": "Rip",
141
+ "ebp": "Rbp",
142
+ "esp": "Rsp",
143
+ "esi": "Rsi",
144
+ "edi": "Rdi",
139
145
  }
140
- register_alias_64_to_16 = { 'ax':'Rax', 'bx':'Rbx', 'cx':'Rcx', 'dx':'Rdx' }
141
- register_alias_64_to_8_low = { 'al':'Rax', 'bl':'Rbx', 'cl':'Rcx', 'dl':'Rdx' }
142
- register_alias_64_to_8_high = { 'ah':'Rax', 'bh':'Rbx', 'ch':'Rcx', 'dh':'Rdx' }
143
- register_alias_32_to_16 = { 'ax':'Eax', 'bx':'Ebx', 'cx':'Ecx', 'dx':'Edx' }
144
- register_alias_32_to_8_low = { 'al':'Eax', 'bl':'Ebx', 'cl':'Ecx', 'dl':'Edx' }
145
- register_alias_32_to_8_high = { 'ah':'Eax', 'bh':'Ebx', 'ch':'Ecx', 'dh':'Edx' }
146
+ register_alias_64_to_16 = {"ax": "Rax", "bx": "Rbx", "cx": "Rcx", "dx": "Rdx"}
147
+ register_alias_64_to_8_low = {"al": "Rax", "bl": "Rbx", "cl": "Rcx", "dl": "Rdx"}
148
+ register_alias_64_to_8_high = {"ah": "Rax", "bh": "Rbx", "ch": "Rcx", "dh": "Rdx"}
149
+ register_alias_32_to_16 = {"ax": "Eax", "bx": "Ebx", "cx": "Ecx", "dx": "Edx"}
150
+ register_alias_32_to_8_low = {"al": "Eax", "bl": "Ebx", "cl": "Ecx", "dl": "Edx"}
151
+ register_alias_32_to_8_high = {"ah": "Eax", "bh": "Ebx", "ch": "Ecx", "dh": "Edx"}
146
152
 
147
153
  register_aliases_full_32 = list(segment_names)
148
154
  register_aliases_full_32.extend(compat.iterkeys(register_alias_32_to_16))
@@ -159,18 +165,46 @@ class ConsoleDebugger (Cmd, EventHandler):
159
165
 
160
166
  # Names of the control flow instructions.
161
167
  jump_instructions = (
162
- 'jmp', 'jecxz', 'jcxz',
163
- 'ja', 'jnbe', 'jae', 'jnb', 'jb', 'jnae', 'jbe', 'jna', 'jc', 'je',
164
- 'jz', 'jnc', 'jne', 'jnz', 'jnp', 'jpo', 'jp', 'jpe', 'jg', 'jnle',
165
- 'jge', 'jnl', 'jl', 'jnge', 'jle', 'jng', 'jno', 'jns', 'jo', 'js'
168
+ "jmp",
169
+ "jecxz",
170
+ "jcxz",
171
+ "ja",
172
+ "jnbe",
173
+ "jae",
174
+ "jnb",
175
+ "jb",
176
+ "jnae",
177
+ "jbe",
178
+ "jna",
179
+ "jc",
180
+ "je",
181
+ "jz",
182
+ "jnc",
183
+ "jne",
184
+ "jnz",
185
+ "jnp",
186
+ "jpo",
187
+ "jp",
188
+ "jpe",
189
+ "jg",
190
+ "jnle",
191
+ "jge",
192
+ "jnl",
193
+ "jl",
194
+ "jnge",
195
+ "jle",
196
+ "jng",
197
+ "jno",
198
+ "jns",
199
+ "jo",
200
+ "js",
166
201
  )
167
- call_instructions = ('call', 'ret', 'retn')
168
- loop_instructions = ('loop', 'loopz', 'loopnz', 'loope', 'loopne')
169
- control_flow_instructions = call_instructions + loop_instructions + \
170
- jump_instructions
202
+ call_instructions = ("call", "ret", "retn")
203
+ loop_instructions = ("loop", "loopz", "loopnz", "loope", "loopne")
204
+ control_flow_instructions = call_instructions + loop_instructions + jump_instructions
171
205
 
172
- #------------------------------------------------------------------------------
173
- # Instance variables
206
+ # ------------------------------------------------------------------------------
207
+ # Instance variables
174
208
 
175
209
  def __init__(self):
176
210
  """
@@ -190,12 +224,11 @@ class ConsoleDebugger (Cmd, EventHandler):
190
224
  # Last executed command.
191
225
  self.__lastcmd = ""
192
226
 
193
- #------------------------------------------------------------------------------
194
- # Debugger
227
+ # ------------------------------------------------------------------------------
228
+ # Debugger
195
229
 
196
230
  # Use this Debug object.
197
231
  def start_using_debugger(self, debug):
198
-
199
232
  # Clear the previous Debug object.
200
233
  self.stop_using_debugger()
201
234
 
@@ -208,7 +241,7 @@ class ConsoleDebugger (Cmd, EventHandler):
208
241
  # Stop using the Debug object given by start_using_debugger().
209
242
  # Circular references must be removed, or the destructors never get called.
210
243
  def stop_using_debugger(self):
211
- if hasattr(self, 'debug'):
244
+ if hasattr(self, "debug"):
212
245
  debug = self.debug
213
246
  debug.set_event_handler(self.prevHandler)
214
247
  del self.prevHandler
@@ -234,21 +267,20 @@ class ConsoleDebugger (Cmd, EventHandler):
234
267
  if self.lastEvent is None:
235
268
  self.debug.lastEvent = DummyEvent(self.debug)
236
269
  self.debug.lastEvent._process = process
237
- self.debug.lastEvent._thread = process.get_thread(
238
- process.get_thread_ids()[0])
270
+ self.debug.lastEvent._thread = process.get_thread(process.get_thread_ids()[0])
239
271
  self.debug.lastEvent._pid = process.get_pid()
240
272
  self.debug.lastEvent._tid = self.lastEvent._thread.get_tid()
241
273
 
242
- #------------------------------------------------------------------------------
243
- # Input
274
+ # ------------------------------------------------------------------------------
275
+ # Input
244
276
 
245
- # TODO
246
- # * try to guess breakpoints when insufficient data is given
247
- # * child Cmd instances will have to be used for other prompts, for example
248
- # when assembling or editing memory - it may also be a good idea to think
249
- # if it's possible to make the main Cmd instance also a child, instead of
250
- # the debugger itself - probably the same goes for the EventHandler, maybe
251
- # it can be used as a contained object rather than a parent class.
277
+ # TODO
278
+ # * try to guess breakpoints when insufficient data is given
279
+ # * child Cmd instances will have to be used for other prompts, for example
280
+ # when assembling or editing memory - it may also be a good idea to think
281
+ # if it's possible to make the main Cmd instance also a child, instead of
282
+ # the debugger itself - probably the same goes for the EventHandler, maybe
283
+ # it can be used as a contained object rather than a parent class.
252
284
 
253
285
  # Join a token list into an argument string.
254
286
  def join_tokens(self, token_list):
@@ -272,7 +304,7 @@ class ConsoleDebugger (Cmd, EventHandler):
272
304
  msg = "more than one thread with that name:\n"
273
305
  for tid in targets:
274
306
  msg += "\t%d\n" % tid
275
- msg = msg[:-len("\n")]
307
+ msg = msg[: -len("\n")]
276
308
  raise CmdError(msg)
277
309
  return targets[0]
278
310
 
@@ -307,7 +339,7 @@ class ConsoleDebugger (Cmd, EventHandler):
307
339
  msg = "more than one process with that name:\n"
308
340
  for pid in targets:
309
341
  msg += "\t%d\n" % pid
310
- msg = msg[:-len("\n")]
342
+ msg = msg[: -len("\n")]
311
343
  raise CmdError(msg)
312
344
  return targets[0]
313
345
 
@@ -325,7 +357,7 @@ class ConsoleDebugger (Cmd, EventHandler):
325
357
  found = system.find_processes_by_filename(token)
326
358
  if not found:
327
359
  raise CmdError("process not found (%s)" % token)
328
- for (process, _) in found:
360
+ for process, _ in found:
329
361
  targets.add(process.get_pid())
330
362
  targets = list(targets)
331
363
  targets.sort()
@@ -339,7 +371,7 @@ class ConsoleDebugger (Cmd, EventHandler):
339
371
  fname = argv[0]
340
372
  if not os.path.exists(fname):
341
373
  try:
342
- fname, _ = win32.SearchPath(None, fname, '.exe')
374
+ fname, _ = win32.SearchPath(None, fname, ".exe")
343
375
  except WindowsError:
344
376
  raise CmdError("file not found: %s" % fname)
345
377
  argv[0] = fname
@@ -355,7 +387,8 @@ class ConsoleDebugger (Cmd, EventHandler):
355
387
  # It can be in any supported format.
356
388
  def input_integer(self, token):
357
389
  return HexInput.integer(token)
358
- # # input_integer = input_hexadecimal_integer
390
+
391
+ # # input_integer = input_hexadecimal_integer
359
392
 
360
393
  # Token is an address.
361
394
  # The address can be a integer, a label or a register.
@@ -401,9 +434,9 @@ class ConsoleDebugger (Cmd, EventHandler):
401
434
  raise CmdError("bad address range: %s %s" % (token_1, token_2))
402
435
  elif len(token_list) == 1:
403
436
  token = token_list[0]
404
- if '-' in token:
437
+ if "-" in token:
405
438
  try:
406
- token_1, token_2 = token.split('-')
439
+ token_1, token_2 = token.split("-")
407
440
  except Exception:
408
441
  raise CmdError("bad address range: %s" % token)
409
442
  address = self.input_address(token_1, pid, tid)
@@ -416,18 +449,18 @@ class ConsoleDebugger (Cmd, EventHandler):
416
449
  # XXX TODO
417
450
  # Support non-integer registers here.
418
451
  def is_register(self, token):
419
- if win32.arch == 'i386':
452
+ if win32.arch == "i386":
420
453
  if token in self.register_aliases_full_32:
421
454
  return True
422
455
  token = token.title()
423
- for (name, typ) in win32.CONTEXT._fields_:
456
+ for name, typ in win32.CONTEXT._fields_:
424
457
  if name == token:
425
458
  return win32.sizeof(typ) == win32.sizeof(win32.DWORD)
426
- elif win32.arch == 'amd64':
459
+ elif win32.arch == "amd64":
427
460
  if token in self.register_aliases_full_64:
428
461
  return True
429
462
  token = token.title()
430
- for (name, typ) in win32.CONTEXT._fields_:
463
+ for name, typ in win32.CONTEXT._fields_:
431
464
  if name == token:
432
465
  return win32.sizeof(typ) == win32.sizeof(win32.DWORD64)
433
466
  return False
@@ -449,10 +482,9 @@ class ConsoleDebugger (Cmd, EventHandler):
449
482
  if title in ctx:
450
483
  return ctx.get(title) # eax -> Eax
451
484
 
452
- if ctx.arch == 'i386':
453
-
485
+ if ctx.arch == "i386":
454
486
  if token in self.segment_names:
455
- return ctx.get('Seg%s' % title) # cs -> SegCs
487
+ return ctx.get("Seg%s" % title) # cs -> SegCs
456
488
 
457
489
  if token in self.register_alias_32_to_16:
458
490
  return ctx.get(self.register_alias_32_to_16[token]) & 0xFFFF
@@ -463,10 +495,9 @@ class ConsoleDebugger (Cmd, EventHandler):
463
495
  if token in self.register_alias_32_to_8_high:
464
496
  return (ctx.get(self.register_alias_32_to_8_high[token]) & 0xFF00) >> 8
465
497
 
466
- elif ctx.arch == 'amd64':
467
-
498
+ elif ctx.arch == "amd64":
468
499
  if token in self.segment_names:
469
- return ctx.get('Seg%s' % title) # cs -> SegCs
500
+ return ctx.get("Seg%s" % title) # cs -> SegCs
470
501
 
471
502
  if token in self.register_alias_64_to_32:
472
503
  return ctx.get(self.register_alias_64_to_32[token]) & 0xFFFFFFFF
@@ -506,8 +537,8 @@ class ConsoleDebugger (Cmd, EventHandler):
506
537
  self.default_display_target = next_address
507
538
  return pid, tid, address, size
508
539
 
509
- #------------------------------------------------------------------------------
510
- # Output
540
+ # ------------------------------------------------------------------------------
541
+ # Output
511
542
 
512
543
  # Tell the user a module was loaded.
513
544
  def print_module_load(self, event):
@@ -515,7 +546,7 @@ class ConsoleDebugger (Cmd, EventHandler):
515
546
  base = mod.get_base()
516
547
  name = mod.get_filename()
517
548
  if not name:
518
- name = ''
549
+ name = ""
519
550
  msg = "Loaded module (%s) %s"
520
551
  msg = msg % (HexDump.address(base), name)
521
552
  print(msg)
@@ -526,7 +557,7 @@ class ConsoleDebugger (Cmd, EventHandler):
526
557
  base = mod.get_base()
527
558
  name = mod.get_filename()
528
559
  if not name:
529
- name = ''
560
+ name = ""
530
561
  msg = "Unloaded module (%s) %s"
531
562
  msg = msg % (HexDump.address(base), name)
532
563
  print(msg)
@@ -577,10 +608,10 @@ class ConsoleDebugger (Cmd, EventHandler):
577
608
  name = event.get_event_name()
578
609
  desc = event.get_event_description()
579
610
  if code in desc:
580
- print('')
611
+ print("")
581
612
  print("%s: %s" % (name, desc))
582
613
  else:
583
- print('')
614
+ print("")
584
615
  print("%s (%s): %s" % (name, code, desc))
585
616
  self.print_event_location(event)
586
617
 
@@ -590,14 +621,14 @@ class ConsoleDebugger (Cmd, EventHandler):
590
621
  code = HexDump.integer(event.get_exception_code())
591
622
  desc = event.get_exception_description()
592
623
  if event.is_first_chance():
593
- chance = 'first'
624
+ chance = "first"
594
625
  else:
595
- chance = 'second'
626
+ chance = "second"
596
627
  if code in desc:
597
628
  msg = "%s at address %s (%s chance)" % (desc, address, chance)
598
629
  else:
599
630
  msg = "%s (%s) at address %s (%s chance)" % (desc, code, address, chance)
600
- print('')
631
+ print("")
601
632
  print(msg)
602
633
  self.print_event_location(event)
603
634
 
@@ -638,8 +669,10 @@ class ConsoleDebugger (Cmd, EventHandler):
638
669
  disasm = None
639
670
  except NotImplementedError:
640
671
  disasm = None
641
- print('')
642
- print(CrashDump.dump_registers(ctx),)
672
+ print("")
673
+ print(
674
+ CrashDump.dump_registers(ctx),
675
+ )
643
676
  print("%s:" % label)
644
677
  if disasm:
645
678
  print(CrashDump.dump_code_line(disasm[0], pc, bShowDump=True))
@@ -649,9 +682,9 @@ class ConsoleDebugger (Cmd, EventHandler):
649
682
  except Exception:
650
683
  data = None
651
684
  if data:
652
- print('%s: %s' % (HexDump.address(pc), HexDump.hexblock_byte(data)))
685
+ print("%s: %s" % (HexDump.address(pc), HexDump.hexblock_byte(data)))
653
686
  else:
654
- print('%s: ???' % HexDump.address(pc))
687
+ print("%s: ???" % HexDump.address(pc))
655
688
 
656
689
  # Display memory contents using a given method.
657
690
  def print_memory_display(self, arg, method):
@@ -663,10 +696,12 @@ class ConsoleDebugger (Cmd, EventHandler):
663
696
  data = self.read_memory(address, size, pid)
664
697
  if data:
665
698
  print("%s:" % label)
666
- print(method(data, address),)
699
+ print(
700
+ method(data, address),
701
+ )
667
702
 
668
- #------------------------------------------------------------------------------
669
- # Debugging
703
+ # ------------------------------------------------------------------------------
704
+ # Debugging
670
705
 
671
706
  # Get the process ID from the prefix or the last event.
672
707
  def get_process_id_from_prefix(self):
@@ -783,7 +818,6 @@ class ConsoleDebugger (Cmd, EventHandler):
783
818
 
784
819
  # Change a register value.
785
820
  def change_register(self, register, value, tid=None):
786
-
787
821
  # Get the thread.
788
822
  if tid is None:
789
823
  if self.lastEvent is None:
@@ -806,7 +840,6 @@ class ConsoleDebugger (Cmd, EventHandler):
806
840
  # The finally clause ensures the thread is resumed before returning.
807
841
  thread.suspend()
808
842
  try:
809
-
810
843
  # Get the current context.
811
844
  ctx = thread.get_context()
812
845
 
@@ -819,7 +852,7 @@ class ConsoleDebugger (Cmd, EventHandler):
819
852
 
820
853
  # Segment (16 bit) registers.
821
854
  if register in self.segment_names:
822
- register = 'Seg%s' % register.title() # cs -> SegCs
855
+ register = "Seg%s" % register.title() # cs -> SegCs
823
856
  value = value & 0x0000FFFF
824
857
 
825
858
  # Integer 16 bits registers.
@@ -866,7 +899,7 @@ class ConsoleDebugger (Cmd, EventHandler):
866
899
  p = data.find(query)
867
900
  while p >= 0:
868
901
  q = p + len(query)
869
- d = data[ p: min(q, p + width) ]
902
+ d = data[p : min(q, p + width)]
870
903
  h = HexDump.hexline(d, width=width)
871
904
  a = HexDump.address(address + p)
872
905
  print("%s: %s" % (a, h))
@@ -896,8 +929,8 @@ class ConsoleDebugger (Cmd, EventHandler):
896
929
  except Exception:
897
930
  print("Error trying to kill thread (%d)" % tid)
898
931
 
899
- #------------------------------------------------------------------------------
900
- # Command prompt input
932
+ # ------------------------------------------------------------------------------
933
+ # Command prompt input
901
934
 
902
935
  # Prompt the user for commands.
903
936
  def prompt_user(self):
@@ -910,14 +943,15 @@ class ConsoleDebugger (Cmd, EventHandler):
910
943
  print("*** Error: %s" % str(e))
911
944
  except Exception:
912
945
  traceback.print_exc()
913
- # # self.debuggerExit = True
946
+
947
+ # # self.debuggerExit = True
914
948
 
915
949
  # Prompt the user for a YES/NO kind of question.
916
950
  def ask_user(self, msg, prompt="Are you sure? (y/N): "):
917
951
  print(msg)
918
952
  answer = raw_input(prompt)
919
953
  answer = answer.strip()[:1].lower()
920
- return answer == 'y'
954
+ return answer == "y"
921
955
 
922
956
  # Autocomplete the given command when not ambiguous.
923
957
  # Convert it to lowercase (so commands are seen as case insensitive).
@@ -936,42 +970,41 @@ class ConsoleDebugger (Cmd, EventHandler):
936
970
  def get_help(self, commands):
937
971
  msg = set()
938
972
  for name in commands:
939
- if name != 'do_help':
973
+ if name != "do_help":
940
974
  try:
941
- doc = getattr(self, name).__doc__.split('\n')
975
+ doc = getattr(self, name).__doc__.split("\n")
942
976
  except Exception:
943
- return ("No help available when Python"
944
- " is run with the -OO switch.")
977
+ return "No help available when Python" " is run with the -OO switch."
945
978
  for x in doc:
946
979
  x = x.strip()
947
980
  if x:
948
- msg.add(' %s' % x)
981
+ msg.add(" %s" % x)
949
982
  msg = list(msg)
950
983
  msg.sort()
951
- msg = '\n'.join(msg)
984
+ msg = "\n".join(msg)
952
985
  return msg
953
986
 
954
987
  # Parse the prefix and remove it from the command line.
955
988
  def split_prefix(self, line):
956
989
  prefix = None
957
- if line.startswith('~'):
958
- pos = line.find(' ')
990
+ if line.startswith("~"):
991
+ pos = line.find(" ")
959
992
  if pos == 1:
960
- pos = line.find(' ', pos + 1)
993
+ pos = line.find(" ", pos + 1)
961
994
  if not pos < 0:
962
- prefix = line[ 1: pos ].strip()
963
- line = line[ pos: ].strip()
995
+ prefix = line[1:pos].strip()
996
+ line = line[pos:].strip()
964
997
  return prefix, line
965
998
 
966
- #------------------------------------------------------------------------------
967
- # Cmd() hacks
999
+ # ------------------------------------------------------------------------------
1000
+ # Cmd() hacks
968
1001
 
969
1002
  # Header for help page.
970
- doc_header = 'Available commands (type help * or help <command>)'
1003
+ doc_header = "Available commands (type help * or help <command>)"
971
1004
 
972
- # # # Read and write directly to stdin and stdout.
973
- # # # This prevents the use of raw_input and print.
974
- # # use_rawinput = False
1005
+ # # # Read and write directly to stdin and stdout.
1006
+ # # # This prevents the use of raw_input and print.
1007
+ # # use_rawinput = False
975
1008
 
976
1009
  @property
977
1010
  def prompt(self):
@@ -979,15 +1012,15 @@ class ConsoleDebugger (Cmd, EventHandler):
979
1012
  pid = self.lastEvent.get_pid()
980
1013
  tid = self.lastEvent.get_tid()
981
1014
  if self.debug.is_debugee(pid):
982
- # # return '~%d(%d)> ' % (tid, pid)
983
- return '%d:%d> ' % (pid, tid)
984
- return '> '
1015
+ # # return '~%d(%d)> ' % (tid, pid)
1016
+ return "%d:%d> " % (pid, tid)
1017
+ return "> "
985
1018
 
986
1019
  # Return a sorted list of method names.
987
1020
  # Only returns the methods that implement commands.
988
1021
  def get_names(self):
989
1022
  names = Cmd.get_names(self)
990
- names = [ x for x in set(names) if x.startswith('do_') ]
1023
+ names = [x for x in set(names) if x.startswith("do_")]
991
1024
  names.sort()
992
1025
  return names
993
1026
 
@@ -998,23 +1031,23 @@ class ConsoleDebugger (Cmd, EventHandler):
998
1031
  self.cmdprefix, line = self.split_prefix(line)
999
1032
  line = line.strip()
1000
1033
  if line:
1001
- if line[0] == '.':
1002
- line = 'plugin ' + line[1:]
1003
- elif line[0] == '#':
1004
- line = 'python ' + line[1:]
1034
+ if line[0] == ".":
1035
+ line = "plugin " + line[1:]
1036
+ elif line[0] == "#":
1037
+ line = "python " + line[1:]
1005
1038
  cmd, arg, line = Cmd.parseline(self, line)
1006
1039
  if cmd:
1007
1040
  cmd = self.autocomplete(cmd)
1008
1041
  return cmd, arg, line
1009
1042
 
1010
- # # # Don't repeat the last executed command.
1011
- # # def emptyline(self):
1012
- # # pass
1043
+ # # # Don't repeat the last executed command.
1044
+ # # def emptyline(self):
1045
+ # # pass
1013
1046
 
1014
1047
  # Reset the defaults for some commands.
1015
1048
  def preloop(self):
1016
- self.default_disasm_target = 'eip'
1017
- self.default_display_target = 'eip'
1049
+ self.default_disasm_target = "eip"
1050
+ self.default_display_target = "eip"
1018
1051
  self.last_display_command = self.do_db
1019
1052
 
1020
1053
  # Put the prefix back in the command line.
@@ -1023,7 +1056,7 @@ class ConsoleDebugger (Cmd, EventHandler):
1023
1056
 
1024
1057
  def set_lastcmd(self, lastcmd):
1025
1058
  if self.cmdprefix:
1026
- lastcmd = '~%s %s' % (self.cmdprefix, lastcmd)
1059
+ lastcmd = "~%s %s" % (self.cmdprefix, lastcmd)
1027
1060
  self.__lastcmd = lastcmd
1028
1061
 
1029
1062
  lastcmd = property(get_lastcmd, set_lastcmd)
@@ -1032,8 +1065,8 @@ class ConsoleDebugger (Cmd, EventHandler):
1032
1065
  def postcmd(self, stop, line):
1033
1066
  return stop or self.debuggerExit
1034
1067
 
1035
- #------------------------------------------------------------------------------
1036
- # Commands
1068
+ # ------------------------------------------------------------------------------
1069
+ # Commands
1037
1070
 
1038
1071
  # Each command contains a docstring with it's help text.
1039
1072
  # The help text consist of independent text lines,
@@ -1055,23 +1088,23 @@ class ConsoleDebugger (Cmd, EventHandler):
1055
1088
  """
1056
1089
  if not arg:
1057
1090
  Cmd.do_help(self, arg)
1058
- elif arg in ('?', 'help'):
1091
+ elif arg in ("?", "help"):
1059
1092
  # An easter egg :)
1060
1093
  print(" Help! I need somebody...")
1061
1094
  print(" Help! Not just anybody...")
1062
1095
  print(" Help! You know, I need someone...")
1063
1096
  print(" Heeelp!")
1064
1097
  else:
1065
- if arg == '*':
1098
+ if arg == "*":
1066
1099
  commands = self.get_names()
1067
- commands = [ x for x in commands if x.startswith('do_') ]
1100
+ commands = [x for x in commands if x.startswith("do_")]
1068
1101
  else:
1069
1102
  commands = set()
1070
- for x in arg.split(' '):
1103
+ for x in arg.split(" "):
1071
1104
  x = x.strip()
1072
1105
  if x:
1073
1106
  for n in self.completenames(x):
1074
- commands.add('do_%s' % n)
1107
+ commands.add("do_%s" % n)
1075
1108
  commands = list(commands)
1076
1109
  commands.sort()
1077
1110
  print(self.get_help(commands))
@@ -1090,12 +1123,12 @@ class ConsoleDebugger (Cmd, EventHandler):
1090
1123
  # If not found, it's usually OK to just use the filename,
1091
1124
  # since cmd.exe is one of those "magic" programs that
1092
1125
  # can be automatically found by CreateProcess.
1093
- shell = os.getenv('ComSpec', 'cmd.exe')
1126
+ shell = os.getenv("ComSpec", "cmd.exe")
1094
1127
 
1095
1128
  # When given a command, run it and return.
1096
1129
  # When no command is given, spawn a shell.
1097
1130
  if arg:
1098
- arg = '%s /c %s' % (shell, arg)
1131
+ arg = "%s /c %s" % (shell, arg)
1099
1132
  else:
1100
1133
  arg = shell
1101
1134
  process = self.debug.system.start_process(arg, bConsole=True)
@@ -1104,7 +1137,6 @@ class ConsoleDebugger (Cmd, EventHandler):
1104
1137
  # This hack fixes a bug in Python, the interpreter console is closing the
1105
1138
  # stdin pipe when calling the exit() function (Ctrl+Z seems to work fine).
1106
1139
  class _PythonExit(object):
1107
-
1108
1140
  def __repr__(self):
1109
1141
  return "Use exit() or Ctrl-Z plus Return to exit"
1110
1142
 
@@ -1117,21 +1149,23 @@ class ConsoleDebugger (Cmd, EventHandler):
1117
1149
  # module already imported. Also the console banner is improved.
1118
1150
  def _spawn_python_shell(self, arg):
1119
1151
  import winappdbg
1120
- banner = ('Python %s on %s\nType "help", "copyright", '
1121
- '"credits" or "license" for more information.\n')
1152
+
1153
+ banner = 'Python %s on %s\nType "help", "copyright", ' '"credits" or "license" for more information.\n'
1122
1154
  platform = winappdbg.version.lower()
1123
- platform = 'WinAppDbg %s' % platform
1155
+ platform = "WinAppDbg %s" % platform
1124
1156
  banner = banner % (sys.version, platform)
1125
1157
  local = {}
1126
1158
  local.update(__builtins__)
1127
- local.update({
1128
- '__name__': '__console__',
1129
- '__doc__': None,
1130
- 'exit': self._python_exit,
1131
- 'self': self,
1132
- 'arg': arg,
1133
- 'winappdbg': winappdbg,
1134
- })
1159
+ local.update(
1160
+ {
1161
+ "__name__": "__console__",
1162
+ "__doc__": None,
1163
+ "exit": self._python_exit,
1164
+ "self": self,
1165
+ "arg": arg,
1166
+ "winappdbg": winappdbg,
1167
+ }
1168
+ )
1135
1169
  try:
1136
1170
  code.interact(banner=banner, local=local)
1137
1171
  except SystemExit:
@@ -1161,8 +1195,7 @@ class ConsoleDebugger (Cmd, EventHandler):
1161
1195
  self._spawn_python_shell(arg)
1162
1196
  except Exception:
1163
1197
  e = sys.exc_info()[1]
1164
- raise CmdError(
1165
- "unhandled exception when running Python console: %s" % e)
1198
+ raise CmdError("unhandled exception when running Python console: %s" % e)
1166
1199
 
1167
1200
  def do_quit(self, arg):
1168
1201
  """
@@ -1219,7 +1252,7 @@ class ConsoleDebugger (Cmd, EventHandler):
1219
1252
  if not targets:
1220
1253
  if self.lastEvent is None:
1221
1254
  raise CmdError("no current process set")
1222
- targets = [ self.lastEvent.get_pid() ]
1255
+ targets = [self.lastEvent.get_pid()]
1223
1256
  for pid in targets:
1224
1257
  try:
1225
1258
  debug.detach(pid)
@@ -1235,9 +1268,7 @@ class ConsoleDebugger (Cmd, EventHandler):
1235
1268
  raise CmdError("prefix not allowed")
1236
1269
  cmdline = self.input_command_line(arg)
1237
1270
  try:
1238
- process = self.debug.execl(arg,
1239
- bConsole=False,
1240
- bFollow=self.options.follow)
1271
+ process = self.debug.execl(arg, bConsole=False, bFollow=self.options.follow)
1241
1272
  print("Spawned process (%d)" % process.get_pid())
1242
1273
  except Exception:
1243
1274
  raise CmdError("can't execute")
@@ -1251,9 +1282,7 @@ class ConsoleDebugger (Cmd, EventHandler):
1251
1282
  raise CmdError("prefix not allowed")
1252
1283
  cmdline = self.input_command_line(arg)
1253
1284
  try:
1254
- process = self.debug.execl(arg,
1255
- bConsole=True,
1256
- bFollow=self.options.follow)
1285
+ process = self.debug.execl(arg, bConsole=True, bFollow=self.options.follow)
1257
1286
  print("Spawned process (%d)" % process.get_pid())
1258
1287
  except Exception:
1259
1288
  raise CmdError("can't execute")
@@ -1326,7 +1355,7 @@ class ConsoleDebugger (Cmd, EventHandler):
1326
1355
  if pid_list:
1327
1356
  print("Process ID File name")
1328
1357
  for pid in pid_list:
1329
- if pid == 0:
1358
+ if pid == 0:
1330
1359
  filename = "System Idle Process"
1331
1360
  elif pid == 4:
1332
1361
  filename = "System"
@@ -1373,7 +1402,7 @@ class ConsoleDebugger (Cmd, EventHandler):
1373
1402
  kill <processes and/or threads...> - kill the given processes and threads
1374
1403
  """
1375
1404
  if arg:
1376
- if arg == '*':
1405
+ if arg == "*":
1377
1406
  target_pids = self.debug.get_debugee_pids()
1378
1407
  target_tids = list()
1379
1408
  else:
@@ -1458,7 +1487,9 @@ class ConsoleDebugger (Cmd, EventHandler):
1458
1487
  try:
1459
1488
  stack_trace = thread.get_stack_trace_with_labels()
1460
1489
  if stack_trace:
1461
- print(CrashDump.dump_stack_trace_with_labels(stack_trace),)
1490
+ print(
1491
+ CrashDump.dump_stack_trace_with_labels(stack_trace),
1492
+ )
1462
1493
  else:
1463
1494
  print("No stack trace available for thread (%d)" % tid)
1464
1495
  except WindowsError:
@@ -1507,12 +1538,12 @@ class ConsoleDebugger (Cmd, EventHandler):
1507
1538
  code = thread.disassemble(pc, 16)[0]
1508
1539
  size = code[1]
1509
1540
  opcode = code[2].lower()
1510
- if ' ' in opcode:
1511
- opcode = opcode[: opcode.find(' ') ]
1512
- if opcode in self.jump_instructions or opcode in ('int', 'ret', 'retn'):
1541
+ if " " in opcode:
1542
+ opcode = opcode[: opcode.find(" ")]
1543
+ if opcode in self.jump_instructions or opcode in ("int", "ret", "retn"):
1513
1544
  return self.do_trace(arg)
1514
1545
  address = pc + size
1515
- # # print(hex(pc), hex(address), size # XXX DEBUG
1546
+ # # print(hex(pc), hex(address), size # XXX DEBUG
1516
1547
  self.debug.stalk_at(pid, address)
1517
1548
  return True
1518
1549
 
@@ -1571,21 +1602,21 @@ class ConsoleDebugger (Cmd, EventHandler):
1571
1602
  access = token_list[0].lower()
1572
1603
  size = token_list[1]
1573
1604
  address = token_list[2]
1574
- if access == 'a':
1605
+ if access == "a":
1575
1606
  access = debug.BP_BREAK_ON_ACCESS
1576
- elif access == 'w':
1607
+ elif access == "w":
1577
1608
  access = debug.BP_BREAK_ON_WRITE
1578
- elif access == 'e':
1609
+ elif access == "e":
1579
1610
  access = debug.BP_BREAK_ON_EXECUTION
1580
1611
  else:
1581
1612
  raise CmdError("bad access type: %s" % token_list[0])
1582
- if size == '1':
1613
+ if size == "1":
1583
1614
  size = debug.BP_WATCH_BYTE
1584
- elif size == '2':
1615
+ elif size == "2":
1585
1616
  size = debug.BP_WATCH_WORD
1586
- elif size == '4':
1617
+ elif size == "4":
1587
1618
  size = debug.BP_WATCH_DWORD
1588
- elif size == '8':
1619
+ elif size == "8":
1589
1620
  size = debug.BP_WATCH_QWORD
1590
1621
  else:
1591
1622
  raise CmdError("bad breakpoint size: %s" % size)
@@ -1620,7 +1651,7 @@ class ConsoleDebugger (Cmd, EventHandler):
1620
1651
  bl <process> [process...] - list the breakpoints for each given process
1621
1652
  """
1622
1653
  debug = self.debug
1623
- if arg == '*':
1654
+ if arg == "*":
1624
1655
  if self.cmdprefix:
1625
1656
  raise CmdError("prefix not supported")
1626
1657
  breakpoints = debug.get_debugee_pids()
@@ -1631,7 +1662,7 @@ class ConsoleDebugger (Cmd, EventHandler):
1631
1662
  if not targets:
1632
1663
  if self.lastEvent is None:
1633
1664
  raise CmdError("no current process is set")
1634
- targets = [ self.lastEvent.get_pid() ]
1665
+ targets = [self.lastEvent.get_pid()]
1635
1666
  for pid in targets:
1636
1667
  bplist = debug.get_process_code_breakpoints(pid)
1637
1668
  printed_process_banner = False
@@ -1640,20 +1671,18 @@ class ConsoleDebugger (Cmd, EventHandler):
1640
1671
  print("Process %d:" % pid)
1641
1672
  printed_process_banner = True
1642
1673
  for bp in bplist:
1643
- address = repr(bp)[1:-1].replace('remote address ', '')
1674
+ address = repr(bp)[1:-1].replace("remote address ", "")
1644
1675
  print(" %s" % address)
1645
1676
  dbplist = debug.get_process_deferred_code_breakpoints(pid)
1646
1677
  if dbplist:
1647
1678
  if not printed_process_banner:
1648
1679
  print("Process %d:" % pid)
1649
1680
  printed_process_banner = True
1650
- for (label, action, oneshot) in dbplist:
1681
+ for label, action, oneshot in dbplist:
1651
1682
  if oneshot:
1652
- address = " Deferred unconditional one-shot" \
1653
- " code breakpoint at %s"
1683
+ address = " Deferred unconditional one-shot" " code breakpoint at %s"
1654
1684
  else:
1655
- address = " Deferred unconditional" \
1656
- " code breakpoint at %s"
1685
+ address = " Deferred unconditional" " code breakpoint at %s"
1657
1686
  address = address % label
1658
1687
  print(" %s" % address)
1659
1688
  bplist = debug.get_process_page_breakpoints(pid)
@@ -1662,14 +1691,14 @@ class ConsoleDebugger (Cmd, EventHandler):
1662
1691
  print("Process %d:" % pid)
1663
1692
  printed_process_banner = True
1664
1693
  for bp in bplist:
1665
- address = repr(bp)[1:-1].replace('remote address ', '')
1694
+ address = repr(bp)[1:-1].replace("remote address ", "")
1666
1695
  print(" %s" % address)
1667
1696
  for tid in debug.system.get_process(pid).iter_thread_ids():
1668
1697
  bplist = debug.get_thread_hardware_breakpoints(tid)
1669
1698
  if bplist:
1670
1699
  print("Thread %d:" % tid)
1671
1700
  for bp in bplist:
1672
- address = repr(bp)[1:-1].replace('remote address ', '')
1701
+ address = repr(bp)[1:-1].replace("remote address ", "")
1673
1702
  print(" %s" % address)
1674
1703
 
1675
1704
  def do_bo(self, arg):
@@ -1806,7 +1835,7 @@ class ConsoleDebugger (Cmd, EventHandler):
1806
1835
  next_address = HexOutput.integer(next_address)
1807
1836
  self.default_disasm_target = next_address
1808
1837
  print("%s:" % label)
1809
- # # print(CrashDump.dump_code(code))
1838
+ # # print(CrashDump.dump_code(code))
1810
1839
  for line in code:
1811
1840
  print(CrashDump.dump_code_line(line, bShowDump=False))
1812
1841
 
@@ -1863,20 +1892,22 @@ class ConsoleDebugger (Cmd, EventHandler):
1863
1892
  else:
1864
1893
  addr_width = 16
1865
1894
  for addr, bytes in iter:
1866
- print(HexDump.hexblock(bytes, addr, addr_width),)
1895
+ print(
1896
+ HexDump.hexblock(bytes, addr, addr_width),
1897
+ )
1867
1898
 
1868
1899
  do_sh = do_searchhex
1869
1900
 
1870
- # # def do_strings(self, arg):
1871
- # # """
1872
- # # [~process] strings - extract ASCII strings from memory
1873
- # # """
1874
- # # if arg:
1875
- # # raise CmdError("too many arguments")
1876
- # # pid, tid = self.get_process_and_thread_ids_from_prefix()
1877
- # # process = self.get_process(pid)
1878
- # # for addr, size, data in process.strings():
1879
- # # print("%s: %r" % (HexDump.address(addr), data)
1901
+ # # def do_strings(self, arg):
1902
+ # # """
1903
+ # # [~process] strings - extract ASCII strings from memory
1904
+ # # """
1905
+ # # if arg:
1906
+ # # raise CmdError("too many arguments")
1907
+ # # pid, tid = self.get_process_and_thread_ids_from_prefix()
1908
+ # # process = self.get_process(pid)
1909
+ # # for addr, size, data in process.strings():
1910
+ # # print("%s: %r" % (HexDump.address(addr), data)
1880
1911
 
1881
1912
  def do_d(self, arg):
1882
1913
  """
@@ -1983,12 +2014,12 @@ class ConsoleDebugger (Cmd, EventHandler):
1983
2014
  if not arg:
1984
2015
  self.print_current_location()
1985
2016
  else:
1986
- equ = arg.find('=')
2017
+ equ = arg.find("=")
1987
2018
  if equ >= 0:
1988
2019
  register = arg[:equ].strip()
1989
- value = arg[equ + 1:].strip()
2020
+ value = arg[equ + 1 :].strip()
1990
2021
  if not value:
1991
- value = '0'
2022
+ value = "0"
1992
2023
  self.change_register(register, value)
1993
2024
  else:
1994
2025
  value = self.input_register(arg)
@@ -2021,7 +2052,7 @@ class ConsoleDebugger (Cmd, EventHandler):
2021
2052
  pid = self.get_process_id_from_prefix()
2022
2053
  token_list = self.split_tokens(arg, 2)
2023
2054
  address = self.input_address(token_list[0], pid)
2024
- data = HexInput.hexadecimal(' '.join(token_list[1:]))
2055
+ data = HexInput.hexadecimal(" ".join(token_list[1:]))
2025
2056
  self.write_memory(address, data, pid)
2026
2057
 
2027
2058
  # XXX TODO
@@ -2050,7 +2081,7 @@ class ConsoleDebugger (Cmd, EventHandler):
2050
2081
  try:
2051
2082
  memoryMap = process.get_memory_map()
2052
2083
  mappedFilenames = process.get_mapped_filenames()
2053
- print('')
2084
+ print("")
2054
2085
  print(CrashDump.dump_memory_map(memoryMap, mappedFilenames))
2055
2086
  except WindowsError:
2056
2087
  msg = "can't get memory information for process (%d)"
@@ -2058,11 +2089,11 @@ class ConsoleDebugger (Cmd, EventHandler):
2058
2089
 
2059
2090
  do_m = do_memory
2060
2091
 
2061
- #------------------------------------------------------------------------------
2062
- # Event handling
2092
+ # ------------------------------------------------------------------------------
2093
+ # Event handling
2063
2094
 
2064
- # TODO
2065
- # * add configurable stop/don't stop behavior on events and exceptions
2095
+ # TODO
2096
+ # * add configurable stop/don't stop behavior on events and exceptions
2066
2097
 
2067
2098
  # Stop for all events, unless stated otherwise.
2068
2099
  def event(self, event):
@@ -2076,7 +2107,7 @@ class ConsoleDebugger (Cmd, EventHandler):
2076
2107
 
2077
2108
  # Stop for breakpoint exceptions.
2078
2109
  def breakpoint(self, event):
2079
- if hasattr(event, 'breakpoint') and event.breakpoint:
2110
+ if hasattr(event, "breakpoint") and event.breakpoint:
2080
2111
  self.print_breakpoint_location(event)
2081
2112
  else:
2082
2113
  self.print_exception(event)
@@ -2130,8 +2161,8 @@ class ConsoleDebugger (Cmd, EventHandler):
2130
2161
  def output_string(self, event):
2131
2162
  self.print_debug_string(event)
2132
2163
 
2133
- #------------------------------------------------------------------------------
2134
- # History file
2164
+ # ------------------------------------------------------------------------------
2165
+ # History file
2135
2166
 
2136
2167
  def load_history(self):
2137
2168
  global readline
@@ -2141,15 +2172,14 @@ class ConsoleDebugger (Cmd, EventHandler):
2141
2172
  except ImportError:
2142
2173
  return
2143
2174
  if self.history_file_full_path is None:
2144
- folder = os.environ.get('USERPROFILE', '')
2175
+ folder = os.environ.get("USERPROFILE", "")
2145
2176
  if not folder:
2146
- folder = os.environ.get('HOME', '')
2177
+ folder = os.environ.get("HOME", "")
2147
2178
  if not folder:
2148
2179
  folder = os.path.split(sys.argv[0])[1]
2149
2180
  if not folder:
2150
2181
  folder = os.path.curdir
2151
- self.history_file_full_path = os.path.join(folder,
2152
- self.history_file)
2182
+ self.history_file_full_path = os.path.join(folder, self.history_file)
2153
2183
  try:
2154
2184
  if os.path.exists(self.history_file_full_path):
2155
2185
  readline.read_history_file(self.history_file_full_path)
@@ -2171,8 +2201,8 @@ class ConsoleDebugger (Cmd, EventHandler):
2171
2201
  e = sys.exc_info()[1]
2172
2202
  warnings.warn("Cannot save history file, reason: %s" % str(e))
2173
2203
 
2174
- #------------------------------------------------------------------------------
2175
- # Main loop
2204
+ # ------------------------------------------------------------------------------
2205
+ # Main loop
2176
2206
 
2177
2207
  # Debugging loop.
2178
2208
  def loop(self):
@@ -2181,14 +2211,12 @@ class ConsoleDebugger (Cmd, EventHandler):
2181
2211
 
2182
2212
  # Stop on the initial event, if any.
2183
2213
  if self.lastEvent is not None:
2184
- self.cmdqueue.append('r')
2214
+ self.cmdqueue.append("r")
2185
2215
  self.prompt_user()
2186
2216
 
2187
2217
  # Loop until the debugger is told to quit.
2188
2218
  while not self.debuggerExit:
2189
-
2190
2219
  try:
2191
-
2192
2220
  # If for some reason the last event wasn't continued,
2193
2221
  # continue it here. This won't be done more than once
2194
2222
  # for a given Event instance, though.
@@ -2203,7 +2231,6 @@ class ConsoleDebugger (Cmd, EventHandler):
2203
2231
  # Some debug events may cause the command prompt to be shown.
2204
2232
  if self.debug.get_debugee_count() > 0:
2205
2233
  try:
2206
-
2207
2234
  # Get the next debug event.
2208
2235
  debug.wait()
2209
2236