pydevd-pycharm 241.12662.44__tar.gz → 241.13688.16__tar.gz
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.
Potentially problematic release.
This version of pydevd-pycharm might be problematic. Click here for more details.
- {pydevd-pycharm-241.12662.44/pydevd_pycharm.egg-info → pydevd-pycharm-241.13688.16}/PKG-INFO +1 -1
- pydevd-pycharm-241.13688.16/VERSION +1 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_comm.py +1 -1
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_cython_darwin_27_64.so +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_cython_darwin_310_64.cpython-310-darwin.so +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_cython_darwin_311_64.cpython-311-darwin.so +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_cython_darwin_312_64.cpython-312-darwin.so +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_cython_darwin_36_64.cpython-36m-darwin.so +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_cython_darwin_37_64.cpython-37m-darwin.so +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_cython_darwin_38_64.cpython-38-darwin.so +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_cython_darwin_39_64.cpython-39-darwin.so +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_pep_669_tracing.py +409 -37
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_pep_669_tracing_cython.cpython-312-darwin.so +0 -0
- pydevd-pycharm-241.13688.16/_pydevd_bundle/smart_step_into/__init__.py +47 -0
- pydevd-pycharm-241.13688.16/_pydevd_bundle/smart_step_into/pydevd_smart_step_into_27.py +84 -0
- pydevd-pycharm-241.13688.16/_pydevd_bundle/smart_step_into/pydevd_smart_step_into_311.py +61 -0
- pydevd-pycharm-241.13688.16/_pydevd_bundle/smart_step_into/pydevd_smart_step_into_36_310.py +89 -0
- pydevd-pycharm-241.13688.16/_pydevd_bundle/smart_step_into/pydevd_smart_step_into_util.py +16 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_frame_eval/pydevd_frame_evaluator_darwin_310_64.cpython-310-darwin.so +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_frame_eval/pydevd_frame_evaluator_darwin_36_64.cpython-36m-darwin.so +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_frame_eval/pydevd_frame_evaluator_darwin_37_64.cpython-37m-darwin.so +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_frame_eval/pydevd_frame_evaluator_darwin_38_64.cpython-38-darwin.so +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_frame_eval/pydevd_frame_evaluator_darwin_39_64.cpython-39-darwin.so +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/attach.dylib +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16/pydevd_pycharm.egg-info}/PKG-INFO +1 -1
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_pycharm.egg-info/SOURCES.txt +5 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/setup.py +1 -0
- pydevd-pycharm-241.12662.44/VERSION +0 -1
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/LICENSE +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/MANIFEST.in +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/README.rst +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydev_bundle/__init__.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydev_bundle/_pydev_calltip_util.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydev_bundle/_pydev_completer.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydev_bundle/_pydev_filesystem_encoding.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydev_bundle/_pydev_getopt.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydev_bundle/_pydev_imports_tipper.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydev_bundle/_pydev_jy_imports_tipper.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydev_bundle/_pydev_log.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydev_bundle/_pydev_tipper_common.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydev_bundle/fix_getpass.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydev_bundle/pydev_code_executor.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydev_bundle/pydev_console_commands.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydev_bundle/pydev_console_types.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydev_bundle/pydev_console_utils.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydev_bundle/pydev_import_hook.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydev_bundle/pydev_imports.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydev_bundle/pydev_ipython_code_executor.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydev_bundle/pydev_ipython_completer.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydev_bundle/pydev_ipython_console.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydev_bundle/pydev_ipython_console_011.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydev_bundle/pydev_ipython_rich_output.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydev_bundle/pydev_is_thread_alive.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydev_bundle/pydev_localhost.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydev_bundle/pydev_log.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydev_bundle/pydev_monkey.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydev_bundle/pydev_monkey_qt.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydev_bundle/pydev_override.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydev_bundle/pydev_stdin.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydev_bundle/pydev_umd.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydev_bundle/pydev_versioncheck.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydev_imps/__init__.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydev_imps/_pydev_BaseHTTPServer.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydev_imps/_pydev_SimpleXMLRPCServer.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydev_imps/_pydev_SocketServer.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydev_imps/_pydev_execfile.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydev_imps/_pydev_inspect.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydev_imps/_pydev_pkgutil_old.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydev_imps/_pydev_saved_modules.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydev_imps/_pydev_sys_patch.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydev_imps/_pydev_xmlrpclib.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydev_runfiles/__init__.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydev_runfiles/pydev_runfiles.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydev_runfiles/pydev_runfiles_coverage.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydev_runfiles/pydev_runfiles_nose.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydev_runfiles/pydev_runfiles_parallel.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydev_runfiles/pydev_runfiles_parallel_client.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydev_runfiles/pydev_runfiles_pytest2.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydev_runfiles/pydev_runfiles_unittest.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydev_runfiles/pydev_runfiles_xml_rpc.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/__init__.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevconsole_code_for_ironpython.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_additional_thread_info.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_additional_thread_info_regular.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_asyncio_provider.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_breakpointhook.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_breakpoints.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_bytecode_utils.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_collect_try_except_info.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_comm_constants.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_command_line_handling.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_console.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_console_integration.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_console_output.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_console_pytest.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_constants.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_custom_frames.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_cython.c +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_cython.pyx +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_cython_312.c +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_cython_win32_27_32.pyd +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_cython_win32_27_64.pyd +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_cython_win32_310_32.cp310-win32.pyd +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_cython_win32_310_64.cp310-win_amd64.pyd +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_cython_win32_311_32.cp311-win32.pyd +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_cython_win32_311_64.cp311-win_amd64.pyd +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_cython_win32_312_32.cp312-win32.pyd +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_cython_win32_312_64.cp312-win_amd64.pyd +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_cython_win32_36_32.cp36-win32.pyd +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_cython_win32_36_64.cp36-win_amd64.pyd +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_cython_win32_37_32.cp37-win32.pyd +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_cython_win32_37_64.cp37-win_amd64.pyd +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_cython_win32_38_32.cp38-win32.pyd +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_cython_win32_38_64.cp38-win_amd64.pyd +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_cython_win32_39_32.cp39-win32.pyd +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_cython_win32_39_64.cp39-win_amd64.pyd +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_cython_wrapper.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_dont_trace.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_dont_trace_files.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_exec.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_exec2.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_extension_api.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_extension_utils.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_frame.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_frame_type_handler.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_frame_utils.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_import_class.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_io.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_ipython_console_output.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_kill_all_pydevd_threads.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_pep_669_tracing_cython.c +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_pep_669_tracing_cython.cp312-win32.pyd +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_pep_669_tracing_cython.cp312-win_amd64.pyd +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_pep_669_tracing_cython.pyx +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_pep_669_tracing_wrapper.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_plugin_utils.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_process_net_command.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_referrers.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_reload.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_repr_utils.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_resolver.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_save_locals.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_signature.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_stackless.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_tables.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_thrift.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_trace_api.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_trace_dispatch.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_trace_dispatch_regular.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_traceproperty.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_user_type_renderers.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_user_type_renderers_utils.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_utils.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_vars.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_vm_type.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_xml.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_frame_eval/__init__.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_frame_eval/pydevd_frame_eval_cython_wrapper.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_frame_eval/pydevd_frame_eval_main.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_frame_eval/pydevd_frame_evaluator_36_38.c +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_frame_eval/pydevd_frame_evaluator_39_310.c +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_frame_eval/pydevd_frame_evaluator_win32_310_32.cp310-win32.pyd +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_frame_eval/pydevd_frame_evaluator_win32_310_64.cp310-win_amd64.pyd +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_frame_eval/pydevd_frame_evaluator_win32_36_32.cp36-win32.pyd +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_frame_eval/pydevd_frame_evaluator_win32_36_64.cp36-win_amd64.pyd +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_frame_eval/pydevd_frame_evaluator_win32_37_32.cp37-win32.pyd +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_frame_eval/pydevd_frame_evaluator_win32_37_64.cp37-win_amd64.pyd +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_frame_eval/pydevd_frame_evaluator_win32_38_32.cp38-win32.pyd +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_frame_eval/pydevd_frame_evaluator_win32_38_64.cp38-win_amd64.pyd +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_frame_eval/pydevd_frame_evaluator_win32_39_32.cp39-win32.pyd +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_frame_eval/pydevd_frame_evaluator_win32_39_64.cp39-win_amd64.pyd +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_frame_eval/pydevd_frame_tracing.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_frame_eval/pydevd_modify_bytecode.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/build_tools/build.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/build_tools/build_binaries_osx.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/build_tools/build_binaries_windows.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/build_tools/build_common.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/build_tools/generate_code.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/build_tools/generate_debugger_import_errors/generate_import_error.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/build_tools/generate_debugger_import_errors/generation_utils.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/build_tools/generate_debugger_import_errors/start_generation.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/build_tools/msvccompiler_wrapper.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/build_tools/names_to_rename.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/build_tools/rename_pep8.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/merge_pydev_pycharm.txt +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pycharm-console.rst +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pycharm-readme.rst +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydev_app_engine_debug_startup.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydev_ipython/__init__.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydev_ipython/inputhook.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydev_ipython/inputhookglut.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydev_ipython/inputhookgtk.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydev_ipython/inputhookgtk3.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydev_ipython/inputhookpyglet.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydev_ipython/inputhookqt4.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydev_ipython/inputhookqt5.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydev_ipython/inputhookqt6.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydev_ipython/inputhooktk.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydev_ipython/inputhookwx.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydev_ipython/matplotlibtools.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydev_ipython/qt.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydev_ipython/qt_for_kernel.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydev_ipython/qt_loaders.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydev_ipython/version.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevconsole.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/README.txt +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/_always_live_program.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/_check.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/_test_attach_to_process.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/_test_attach_to_process_linux.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/add_code_to_python_process.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/attach_amd64.dll +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/attach_linux_aarch64.so +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/attach_linux_amd64.so +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/attach_linux_x86.so +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/attach_pydevd.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/attach_script.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/attach_x86.dll +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/common/python.h +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/linux_and_mac/attach.cpp +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/linux_and_mac/compile_linux.sh +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/linux_and_mac/compile_linux_aarch64.sh +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/linux_and_mac/compile_mac.sh +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/linux_and_mac/lldb_prepare.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/run_code_on_dllmain_amd64.dll +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/run_code_on_dllmain_x86.dll +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/winappdbg/__init__.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/winappdbg/breakpoint.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/winappdbg/compat.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/winappdbg/crash.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/winappdbg/debug.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/winappdbg/disasm.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/winappdbg/event.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/winappdbg/interactive.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/winappdbg/module.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/winappdbg/plugins/README +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/winappdbg/plugins/__init__.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/winappdbg/plugins/do_example.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/winappdbg/plugins/do_exchain.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/winappdbg/plugins/do_exploitable.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/winappdbg/plugins/do_symfix.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/winappdbg/process.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/winappdbg/registry.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/winappdbg/search.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/winappdbg/sql.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/winappdbg/system.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/winappdbg/textio.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/winappdbg/thread.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/winappdbg/util.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/winappdbg/win32/__init__.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/winappdbg/win32/advapi32.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/winappdbg/win32/context_amd64.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/winappdbg/win32/context_i386.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/winappdbg/win32/dbghelp.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/winappdbg/win32/defines.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/winappdbg/win32/gdi32.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/winappdbg/win32/kernel32.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/winappdbg/win32/ntdll.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/winappdbg/win32/peb_teb.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/winappdbg/win32/psapi.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/winappdbg/win32/shell32.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/winappdbg/win32/shlwapi.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/winappdbg/win32/user32.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/winappdbg/win32/version.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/winappdbg/win32/wtsapi32.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/winappdbg/window.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/windows/attach.cpp +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/windows/attach.h +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/windows/compile_windows.bat +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/windows/inject_dll.cpp +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/windows/run_code_on_dllmain.cpp +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/windows/stdafx.cpp +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/windows/stdafx.h +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_attach_to_process/windows/targetver.h +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_concurrency_analyser/__init__.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_concurrency_analyser/pydevd_concurrency_logger.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_concurrency_analyser/pydevd_thread_wrappers.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_file_utils.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_plugins/__init__.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_plugins/django_debug.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_plugins/extensions/__init__.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_plugins/jinja2_debug.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_pycharm.egg-info/dependency_links.txt +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_pycharm.egg-info/entry_points.txt +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_pycharm.egg-info/not-zip-safe +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_pycharm.egg-info/top_level.txt +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_pycharm.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/pydevd_tracing.py +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/setup.cfg +0 -0
- {pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/setup_cython.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
241.13688.16
|
|
@@ -148,7 +148,7 @@ from _pydevd_bundle.pydevd_comm_constants import (
|
|
|
148
148
|
MAX_IO_MSG_SIZE = 1000 #if the io is too big, we'll not send all (could make the debugger too non-responsive)
|
|
149
149
|
#this number can be changed if there's need to do so
|
|
150
150
|
|
|
151
|
-
VERSION_STRING = "241.
|
|
151
|
+
VERSION_STRING = "241.13688.16"
|
|
152
152
|
|
|
153
153
|
from _pydev_bundle._pydev_filesystem_encoding import getfilesystemencoding
|
|
154
154
|
file_system_encoding = getfilesystemencoding()
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
{pydevd-pycharm-241.12662.44 → pydevd-pycharm-241.13688.16}/_pydevd_bundle/pydevd_pep_669_tracing.py
RENAMED
|
@@ -17,7 +17,7 @@ from _pydevd_bundle.pydevd_comm_constants import CMD_STEP_OVER, CMD_SMART_STEP_I
|
|
|
17
17
|
CMD_SET_BREAK, CMD_STEP_INTO, CMD_STEP_INTO_MY_CODE, CMD_STEP_INTO_COROUTINE, \
|
|
18
18
|
CMD_STEP_RETURN
|
|
19
19
|
from _pydevd_bundle.pydevd_constants import get_current_thread_id, PYDEVD_TOOL_NAME, \
|
|
20
|
-
STATE_RUN, STATE_SUSPEND
|
|
20
|
+
STATE_RUN, STATE_SUSPEND, GlobalDebuggerHolder
|
|
21
21
|
from _pydevd_bundle.pydevd_dont_trace_files import DONT_TRACE
|
|
22
22
|
from _pydevd_bundle.pydevd_kill_all_pydevd_threads import kill_all_pydev_threads
|
|
23
23
|
from pydevd_file_utils import NORM_PATHS_AND_BASE_CONTAINER, \
|
|
@@ -30,6 +30,399 @@ global_cache_skips = {}
|
|
|
30
30
|
global_cache_frame_skips = {}
|
|
31
31
|
|
|
32
32
|
|
|
33
|
+
try:
|
|
34
|
+
monitoring = sys.monitoring
|
|
35
|
+
except AttributeError:
|
|
36
|
+
pass
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
def _make_frame_cache_key(code):
|
|
40
|
+
return code.co_firstlineno, code.co_name, code.co_filename
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
def _get_additional_info(thread):
|
|
44
|
+
# noinspection PyBroadException
|
|
45
|
+
try:
|
|
46
|
+
additional_info = thread.additional_info
|
|
47
|
+
if additional_info is None:
|
|
48
|
+
raise AttributeError()
|
|
49
|
+
except:
|
|
50
|
+
additional_info = set_additional_thread_info(thread)
|
|
51
|
+
return additional_info
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
def _get_abs_path_real_path_and_base_from_frame(frame):
|
|
55
|
+
try:
|
|
56
|
+
abs_path_real_path_and_base = NORM_PATHS_AND_BASE_CONTAINER[
|
|
57
|
+
frame.f_code.co_filename]
|
|
58
|
+
except:
|
|
59
|
+
abs_path_real_path_and_base \
|
|
60
|
+
= get_abs_path_real_path_and_base_from_frame(frame)
|
|
61
|
+
|
|
62
|
+
return abs_path_real_path_and_base
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
def _should_enable_line_events_for_code(frame, code, filename, info):
|
|
66
|
+
line_number = frame.f_lineno
|
|
67
|
+
|
|
68
|
+
# print('PY_START (should enable line events check) %s %s %s %s' % (line_number, code.co_name, filename, info.pydev_step_cmd))
|
|
69
|
+
|
|
70
|
+
py_db = GlobalDebuggerHolder.global_dbg
|
|
71
|
+
|
|
72
|
+
plugin_manager = py_db.plugin
|
|
73
|
+
|
|
74
|
+
stop_frame = info.pydev_step_stop
|
|
75
|
+
step_cmd = info.pydev_step_cmd
|
|
76
|
+
|
|
77
|
+
breakpoints_for_file = py_db.breakpoints.get(filename)
|
|
78
|
+
|
|
79
|
+
can_skip = False
|
|
80
|
+
|
|
81
|
+
if info.pydev_state == 1: # STATE_RUN = 1
|
|
82
|
+
can_skip = (step_cmd == -1 and stop_frame is None) \
|
|
83
|
+
or (step_cmd in (109, 108) and stop_frame is not frame)
|
|
84
|
+
|
|
85
|
+
if can_skip:
|
|
86
|
+
if plugin_manager is not None and py_db.has_plugin_line_breaks:
|
|
87
|
+
can_skip = not plugin_manager.can_not_skip(
|
|
88
|
+
py_db, frame, info)
|
|
89
|
+
|
|
90
|
+
# CMD_STEP_OVER = 108
|
|
91
|
+
if (can_skip and py_db.show_return_values
|
|
92
|
+
and info.pydev_step_cmd == 108
|
|
93
|
+
and frame.f_back is info.pydev_step_stop):
|
|
94
|
+
# trace function for showing return values after step over
|
|
95
|
+
can_skip = False
|
|
96
|
+
|
|
97
|
+
frame_cache_key = _make_frame_cache_key(code)
|
|
98
|
+
line_cache_key = (frame_cache_key, line_number)
|
|
99
|
+
|
|
100
|
+
if breakpoints_for_file:
|
|
101
|
+
if can_skip:
|
|
102
|
+
# When cached, 0 means we don't have a breakpoint
|
|
103
|
+
# and 1 means we have.
|
|
104
|
+
breakpoints_in_line_cache = global_cache_frame_skips.get(
|
|
105
|
+
line_cache_key, -1)
|
|
106
|
+
if breakpoints_in_line_cache == 0:
|
|
107
|
+
return False
|
|
108
|
+
|
|
109
|
+
breakpoints_in_frame_cache = global_cache_frame_skips.get(
|
|
110
|
+
frame_cache_key, -1)
|
|
111
|
+
if breakpoints_in_frame_cache != -1:
|
|
112
|
+
has_breakpoint_in_frame = breakpoints_in_frame_cache == 1
|
|
113
|
+
else:
|
|
114
|
+
has_breakpoint_in_frame = False
|
|
115
|
+
# Checks the breakpoint to see if there is a context
|
|
116
|
+
# match in some function.
|
|
117
|
+
curr_func_name = frame.f_code.co_name
|
|
118
|
+
|
|
119
|
+
# global context is set with an empty name
|
|
120
|
+
if curr_func_name in ('?', '<module>', '<lambda>'):
|
|
121
|
+
curr_func_name = ''
|
|
122
|
+
|
|
123
|
+
for breakpoint in breakpoints_for_file.values():
|
|
124
|
+
# will match either global or some function
|
|
125
|
+
if breakpoint.func_name in ('None', curr_func_name):
|
|
126
|
+
has_breakpoint_in_frame = True
|
|
127
|
+
break
|
|
128
|
+
|
|
129
|
+
# Cache the value (1 or 0 or -1 for default because of cython).
|
|
130
|
+
if has_breakpoint_in_frame:
|
|
131
|
+
global_cache_frame_skips[frame_cache_key] = 1
|
|
132
|
+
else:
|
|
133
|
+
global_cache_frame_skips[frame_cache_key] = 0
|
|
134
|
+
|
|
135
|
+
if can_skip and not has_breakpoint_in_frame:
|
|
136
|
+
return False
|
|
137
|
+
|
|
138
|
+
return True
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
def _clear_run_state(info):
|
|
142
|
+
info.pydev_step_stop = None
|
|
143
|
+
info.pydev_step_cmd = -1
|
|
144
|
+
info.pydev_state = STATE_RUN
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
def _stop_monitoring():
|
|
148
|
+
monitoring.set_events(monitoring.DEBUGGER_ID, 0)
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
def _enable_return_tracing(code):
|
|
152
|
+
local_events = monitoring.get_local_events(monitoring.DEBUGGER_ID, code)
|
|
153
|
+
monitoring.set_local_events(monitoring.DEBUGGER_ID, code,
|
|
154
|
+
local_events | monitoring.events.PY_RETURN)
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
def _enable_line_tracing(code):
|
|
158
|
+
local_events = monitoring.get_local_events(monitoring.DEBUGGER_ID, code)
|
|
159
|
+
monitoring.set_local_events(monitoring.DEBUGGER_ID, code,
|
|
160
|
+
local_events | monitoring.events.LINE)
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
def py_start_callback(code, instruction_offset):
|
|
164
|
+
frame = sys._getframe(1)
|
|
165
|
+
|
|
166
|
+
# print('ENTER: PY_START ', code.co_filename, frame.f_lineno, code.co_name)
|
|
167
|
+
|
|
168
|
+
py_db = GlobalDebuggerHolder.global_dbg
|
|
169
|
+
|
|
170
|
+
# noinspection PyBroadException
|
|
171
|
+
try:
|
|
172
|
+
if py_db._finish_debugging_session:
|
|
173
|
+
if not py_db._termination_event_set:
|
|
174
|
+
try:
|
|
175
|
+
if py_db.output_checker_thread is None:
|
|
176
|
+
kill_all_pydev_threads()
|
|
177
|
+
except:
|
|
178
|
+
traceback.print_exc()
|
|
179
|
+
py_db._termination_event_set = True
|
|
180
|
+
_stop_monitoring()
|
|
181
|
+
return
|
|
182
|
+
|
|
183
|
+
thread = threadingCurrentThread()
|
|
184
|
+
|
|
185
|
+
if not is_thread_alive(thread):
|
|
186
|
+
py_db.notify_thread_not_alive(get_current_thread_id(thread))
|
|
187
|
+
_stop_monitoring()
|
|
188
|
+
|
|
189
|
+
if py_db.thread_analyser is not None:
|
|
190
|
+
py_db.thread_analyser.log_event(frame)
|
|
191
|
+
|
|
192
|
+
if py_db.asyncio_analyser is not None:
|
|
193
|
+
py_db.asyncio_analyser.log_event(frame)
|
|
194
|
+
|
|
195
|
+
frame_cache_key = _make_frame_cache_key(code)
|
|
196
|
+
|
|
197
|
+
additional_info = _get_additional_info(thread)
|
|
198
|
+
pydev_step_cmd = additional_info.pydev_step_cmd
|
|
199
|
+
is_stepping = pydev_step_cmd != -1
|
|
200
|
+
|
|
201
|
+
if not is_stepping and frame_cache_key in global_cache_skips:
|
|
202
|
+
# print('skipped: PY_START (cache hit)', frame_cache_key, frame.f_lineno, code.co_name)
|
|
203
|
+
return
|
|
204
|
+
|
|
205
|
+
abs_path_real_path_and_base = \
|
|
206
|
+
_get_abs_path_real_path_and_base_from_frame(frame)
|
|
207
|
+
|
|
208
|
+
filename = abs_path_real_path_and_base[1]
|
|
209
|
+
file_type = get_file_type(abs_path_real_path_and_base[-1])
|
|
210
|
+
|
|
211
|
+
if file_type is not None:
|
|
212
|
+
if file_type == 1: # inlining LIB_FILE = 1
|
|
213
|
+
if not py_db.in_project_scope(filename):
|
|
214
|
+
# print('skipped: PY_START (not in scope)', abs_path_real_path_and_base[-1], frame.f_lineno, code.co_name, file_type)
|
|
215
|
+
global_cache_skips[frame_cache_key] = 1
|
|
216
|
+
return
|
|
217
|
+
else:
|
|
218
|
+
# print('skipped: PY_START', abs_path_real_path_and_base[-1], frame.f_lineno, code.co_name, file_type)
|
|
219
|
+
global_cache_skips[frame_cache_key] = 1
|
|
220
|
+
return
|
|
221
|
+
|
|
222
|
+
breakpoints_for_file = py_db.breakpoints.get(filename)
|
|
223
|
+
if not breakpoints_for_file and not is_stepping:
|
|
224
|
+
return
|
|
225
|
+
|
|
226
|
+
if is_stepping:
|
|
227
|
+
if (pydev_step_cmd == CMD_STEP_OVER
|
|
228
|
+
and frame is not additional_info.pydev_step_stop):
|
|
229
|
+
if frame.f_back is additional_info.pydev_step_stop:
|
|
230
|
+
_enable_return_tracing(code)
|
|
231
|
+
return
|
|
232
|
+
if (py_db.is_filter_enabled
|
|
233
|
+
and py_db.is_ignored_by_filters(filename)):
|
|
234
|
+
return
|
|
235
|
+
if (py_db.is_filter_libraries
|
|
236
|
+
and not py_db.in_project_scope(filename)):
|
|
237
|
+
return
|
|
238
|
+
# We are stepping, and there is no reason to skip the frame
|
|
239
|
+
# at this point.
|
|
240
|
+
_enable_line_tracing(code)
|
|
241
|
+
_enable_return_tracing(code)
|
|
242
|
+
return
|
|
243
|
+
|
|
244
|
+
# print('PY_START', base, frame.f_lineno, code.co_name, file_type)
|
|
245
|
+
if additional_info.is_tracing:
|
|
246
|
+
return
|
|
247
|
+
|
|
248
|
+
if _should_enable_line_events_for_code(frame, code, filename, additional_info):
|
|
249
|
+
_enable_line_tracing(code)
|
|
250
|
+
_enable_return_tracing(code)
|
|
251
|
+
else:
|
|
252
|
+
global_cache_skips[frame_cache_key] = 1
|
|
253
|
+
return
|
|
254
|
+
|
|
255
|
+
except SystemExit:
|
|
256
|
+
return
|
|
257
|
+
except Exception:
|
|
258
|
+
try:
|
|
259
|
+
if traceback is not None:
|
|
260
|
+
traceback.print_exc()
|
|
261
|
+
except:
|
|
262
|
+
pass
|
|
263
|
+
_stop_monitoring()
|
|
264
|
+
|
|
265
|
+
|
|
266
|
+
def py_line_callback(code, line_number):
|
|
267
|
+
frame = sys._getframe(1)
|
|
268
|
+
thread = threadingCurrentThread()
|
|
269
|
+
info = _get_additional_info(thread)
|
|
270
|
+
|
|
271
|
+
# print('LINE %s %s %s %s' % (frame.f_lineno, code.co_name, code.co_filename, info.pydev_step_cmd))
|
|
272
|
+
|
|
273
|
+
if info.is_tracing:
|
|
274
|
+
return
|
|
275
|
+
|
|
276
|
+
try:
|
|
277
|
+
info.is_tracing = True
|
|
278
|
+
|
|
279
|
+
py_db = GlobalDebuggerHolder.global_dbg
|
|
280
|
+
|
|
281
|
+
if py_db._finish_debugging_session:
|
|
282
|
+
return monitoring.DISABLE
|
|
283
|
+
|
|
284
|
+
stop_frame = info.pydev_step_stop
|
|
285
|
+
step_cmd = info.pydev_step_cmd
|
|
286
|
+
|
|
287
|
+
filename = _get_abs_path_real_path_and_base_from_frame(frame)[1]
|
|
288
|
+
breakpoints_for_file = py_db.breakpoints.get(filename)
|
|
289
|
+
|
|
290
|
+
frame_cache_key = _make_frame_cache_key(code)
|
|
291
|
+
line_cache_key = (frame_cache_key, line_number)
|
|
292
|
+
|
|
293
|
+
try:
|
|
294
|
+
breakpoint = None
|
|
295
|
+
stop = False
|
|
296
|
+
smart_stop_frame = info.pydev_smart_step_context.smart_step_stop
|
|
297
|
+
context_start_line = info.pydev_smart_step_context.start_line
|
|
298
|
+
context_end_line = info.pydev_smart_step_context.end_line
|
|
299
|
+
is_within_context = (context_start_line <= line_number
|
|
300
|
+
<= context_end_line)
|
|
301
|
+
|
|
302
|
+
if breakpoints_for_file and line_number in breakpoints_for_file:
|
|
303
|
+
breakpoint = breakpoints_for_file[line_number]
|
|
304
|
+
new_frame = frame
|
|
305
|
+
stop = True
|
|
306
|
+
if step_cmd == CMD_STEP_OVER:
|
|
307
|
+
if stop_frame is frame:
|
|
308
|
+
stop = False
|
|
309
|
+
elif step_cmd == CMD_SMART_STEP_INTO and (
|
|
310
|
+
frame.f_back is smart_stop_frame and is_within_context):
|
|
311
|
+
stop = False
|
|
312
|
+
|
|
313
|
+
if breakpoint:
|
|
314
|
+
if stop:
|
|
315
|
+
eval_result = False
|
|
316
|
+
if breakpoint.has_condition:
|
|
317
|
+
eval_result = handle_breakpoint_condition(
|
|
318
|
+
py_db, info, breakpoint, new_frame)
|
|
319
|
+
|
|
320
|
+
if breakpoint.expression is not None:
|
|
321
|
+
handle_breakpoint_expression(breakpoint, info, new_frame)
|
|
322
|
+
if (breakpoint.is_logpoint
|
|
323
|
+
and info.pydev_message is not None
|
|
324
|
+
and len(info.pydev_message) > 0):
|
|
325
|
+
cmd = py_db.cmd_factory.make_io_message(
|
|
326
|
+
info.pydev_message + os.linesep, '1')
|
|
327
|
+
py_db.writer.add_command(cmd)
|
|
328
|
+
|
|
329
|
+
if breakpoint.has_condition and not eval_result:
|
|
330
|
+
return
|
|
331
|
+
else:
|
|
332
|
+
if step_cmd != -1:
|
|
333
|
+
if (py_db.is_filter_enabled
|
|
334
|
+
and py_db.is_ignored_by_filters(filename)):
|
|
335
|
+
# ignore files matching stepping filters
|
|
336
|
+
return
|
|
337
|
+
if (py_db.is_filter_libraries
|
|
338
|
+
and not py_db.in_project_scope(filename)):
|
|
339
|
+
# ignore library files while stepping
|
|
340
|
+
return
|
|
341
|
+
|
|
342
|
+
if stop:
|
|
343
|
+
py_db.set_suspend(
|
|
344
|
+
thread,
|
|
345
|
+
CMD_SET_BREAK,
|
|
346
|
+
suspend_other_threads=breakpoint
|
|
347
|
+
and breakpoint.suspend_policy == "ALL",
|
|
348
|
+
)
|
|
349
|
+
|
|
350
|
+
# if thread has a suspend flag, we suspend with a busy wait
|
|
351
|
+
if info.pydev_state == STATE_SUSPEND:
|
|
352
|
+
py_db.do_wait_suspend(thread, frame, 'line', None)
|
|
353
|
+
elif not breakpoint:
|
|
354
|
+
# No stop from anyone and no breakpoint found in line (cache that).
|
|
355
|
+
global_cache_frame_skips[line_cache_key] = 0
|
|
356
|
+
except KeyboardInterrupt:
|
|
357
|
+
_clear_run_state(info)
|
|
358
|
+
raise
|
|
359
|
+
except:
|
|
360
|
+
traceback.print_exc()
|
|
361
|
+
raise
|
|
362
|
+
|
|
363
|
+
# Step handling. We stop when we hit the right frame.
|
|
364
|
+
try:
|
|
365
|
+
stop = False
|
|
366
|
+
|
|
367
|
+
if step_cmd == CMD_SMART_STEP_INTO:
|
|
368
|
+
if smart_stop_frame is frame:
|
|
369
|
+
if not is_within_context:
|
|
370
|
+
# We don't stop on jumps in multiline statements, which
|
|
371
|
+
# the Python interpreter does in some cases, if we they
|
|
372
|
+
# happen in smart step into context.
|
|
373
|
+
info.pydev_func_name = '.invalid.' # Must match the type in cython
|
|
374
|
+
stop = True # act as if we did a step into
|
|
375
|
+
|
|
376
|
+
curr_func_name = frame.f_code.co_name
|
|
377
|
+
|
|
378
|
+
if curr_func_name in ('?', '<module>') or curr_func_name is None:
|
|
379
|
+
curr_func_name = ''
|
|
380
|
+
|
|
381
|
+
if smart_stop_frame and smart_stop_frame is frame.f_back:
|
|
382
|
+
try:
|
|
383
|
+
if curr_func_name != info.pydev_func_name and frame.f_back:
|
|
384
|
+
# try to find function call name using bytecode analysis
|
|
385
|
+
curr_func_name = find_last_call_name(frame.f_back)
|
|
386
|
+
if curr_func_name == info.pydev_func_name:
|
|
387
|
+
stop = (find_last_func_call_order(
|
|
388
|
+
frame.f_back, context_start_line)
|
|
389
|
+
== info.pydev_smart_step_context.call_order)
|
|
390
|
+
except:
|
|
391
|
+
pydev_log.debug("Exception while handling smart step into "
|
|
392
|
+
"in frame tracer, step into will be "
|
|
393
|
+
"performed instead.")
|
|
394
|
+
info.pydev_smart_step_context.reset()
|
|
395
|
+
stop = True # act as if we did a step into
|
|
396
|
+
|
|
397
|
+
elif step_cmd == CMD_STEP_INTO:
|
|
398
|
+
stop = True
|
|
399
|
+
|
|
400
|
+
elif step_cmd == CMD_STEP_INTO_MY_CODE:
|
|
401
|
+
stop = py_db.in_project_scope(frame.f_code.co_filename)
|
|
402
|
+
|
|
403
|
+
elif step_cmd in (CMD_STEP_OVER, CMD_STEP_INTO_COROUTINE):
|
|
404
|
+
stop = stop_frame is frame
|
|
405
|
+
if stop:
|
|
406
|
+
# The only case we shouldn't stop on a line, is when
|
|
407
|
+
# we are traversing though asynchronous framework machinery
|
|
408
|
+
if step_cmd == CMD_STEP_INTO_COROUTINE:
|
|
409
|
+
stop = py_db.in_project_scope(frame.f_code.co_filename)
|
|
410
|
+
|
|
411
|
+
if stop:
|
|
412
|
+
py_db.set_suspend(thread, step_cmd)
|
|
413
|
+
py_db.do_wait_suspend(thread, frame, 'line', None)
|
|
414
|
+
|
|
415
|
+
except KeyboardInterrupt:
|
|
416
|
+
_clear_run_state(info)
|
|
417
|
+
raise
|
|
418
|
+
except:
|
|
419
|
+
traceback.print_exc()
|
|
420
|
+
raise
|
|
421
|
+
|
|
422
|
+
finally:
|
|
423
|
+
info.is_tracing = False
|
|
424
|
+
|
|
425
|
+
|
|
33
426
|
class PEP669CallbackBase:
|
|
34
427
|
def __init__(self, py_db):
|
|
35
428
|
self.py_db = py_db
|
|
@@ -46,21 +439,6 @@ class PEP669CallbackBase:
|
|
|
46
439
|
def thread(self):
|
|
47
440
|
return threadingCurrentThread()
|
|
48
441
|
|
|
49
|
-
@staticmethod
|
|
50
|
-
def _make_frame_cache_key(code):
|
|
51
|
-
return code.co_firstlineno, code.co_name, code.co_filename
|
|
52
|
-
|
|
53
|
-
@staticmethod
|
|
54
|
-
def _get_additional_info(thread):
|
|
55
|
-
# noinspection PyBroadException
|
|
56
|
-
try:
|
|
57
|
-
additional_info = thread.additional_info
|
|
58
|
-
if additional_info is None:
|
|
59
|
-
raise AttributeError()
|
|
60
|
-
except:
|
|
61
|
-
additional_info = set_additional_thread_info(thread)
|
|
62
|
-
return additional_info
|
|
63
|
-
|
|
64
442
|
@staticmethod
|
|
65
443
|
def _get_abs_path_real_path_and_base_from_frame(frame):
|
|
66
444
|
try:
|
|
@@ -72,12 +450,6 @@ class PEP669CallbackBase:
|
|
|
72
450
|
|
|
73
451
|
return abs_path_real_path_and_base
|
|
74
452
|
|
|
75
|
-
@staticmethod
|
|
76
|
-
def clear_run_state(info):
|
|
77
|
-
info.pydev_step_stop = None
|
|
78
|
-
info.pydev_step_cmd = -1
|
|
79
|
-
info.pydev_state = STATE_RUN
|
|
80
|
-
|
|
81
453
|
|
|
82
454
|
class PyStartCallback(PEP669CallbackBase):
|
|
83
455
|
def __init__(self, py_db):
|
|
@@ -103,14 +475,14 @@ class PyStartCallback(PEP669CallbackBase):
|
|
|
103
475
|
except:
|
|
104
476
|
traceback.print_exc()
|
|
105
477
|
py_db._termination_event_set = True
|
|
106
|
-
|
|
478
|
+
_stop_monitoring()
|
|
107
479
|
return
|
|
108
480
|
|
|
109
481
|
thread = self.thread
|
|
110
482
|
|
|
111
483
|
if not is_thread_alive(thread):
|
|
112
484
|
py_db.notify_thread_not_alive(get_current_thread_id(thread))
|
|
113
|
-
|
|
485
|
+
_stop_monitoring()
|
|
114
486
|
|
|
115
487
|
if py_db.thread_analyser is not None:
|
|
116
488
|
py_db.thread_analyser.log_event(frame)
|
|
@@ -118,9 +490,9 @@ class PyStartCallback(PEP669CallbackBase):
|
|
|
118
490
|
if py_db.asyncio_analyser is not None:
|
|
119
491
|
py_db.asyncio_analyser.log_event(frame)
|
|
120
492
|
|
|
121
|
-
frame_cache_key =
|
|
493
|
+
frame_cache_key = _make_frame_cache_key(code)
|
|
122
494
|
|
|
123
|
-
additional_info =
|
|
495
|
+
additional_info = _get_additional_info(thread)
|
|
124
496
|
pydev_step_cmd = additional_info.pydev_step_cmd
|
|
125
497
|
is_stepping = pydev_step_cmd != -1
|
|
126
498
|
|
|
@@ -219,7 +591,7 @@ class PyStartCallback(PEP669CallbackBase):
|
|
|
219
591
|
# trace function for showing return values after step over
|
|
220
592
|
can_skip = False
|
|
221
593
|
|
|
222
|
-
frame_cache_key =
|
|
594
|
+
frame_cache_key = _make_frame_cache_key(code)
|
|
223
595
|
line_cache_key = (frame_cache_key, line_number)
|
|
224
596
|
|
|
225
597
|
if breakpoints_for_file:
|
|
@@ -300,7 +672,7 @@ class PyLineCallback(PEP669CallbackBase):
|
|
|
300
672
|
def __call__(self, code, line_number):
|
|
301
673
|
frame = self.frame
|
|
302
674
|
thread = self.thread
|
|
303
|
-
info =
|
|
675
|
+
info = _get_additional_info(thread)
|
|
304
676
|
|
|
305
677
|
# print('LINE %s %s %s %s' % (frame.f_lineno, code.co_name, code.co_filename, info.pydev_step_cmd))
|
|
306
678
|
|
|
@@ -320,7 +692,7 @@ class PyLineCallback(PEP669CallbackBase):
|
|
|
320
692
|
filename = self._get_abs_path_real_path_and_base_from_frame(frame)[1]
|
|
321
693
|
breakpoints_for_file = self.py_db.breakpoints.get(filename)
|
|
322
694
|
|
|
323
|
-
frame_cache_key =
|
|
695
|
+
frame_cache_key = _make_frame_cache_key(code)
|
|
324
696
|
line_cache_key = (frame_cache_key, line_number)
|
|
325
697
|
|
|
326
698
|
try:
|
|
@@ -387,7 +759,7 @@ class PyLineCallback(PEP669CallbackBase):
|
|
|
387
759
|
# No stop from anyone and no breakpoint found in line (cache that).
|
|
388
760
|
global_cache_frame_skips[line_cache_key] = 0
|
|
389
761
|
except KeyboardInterrupt:
|
|
390
|
-
|
|
762
|
+
_clear_run_state(info)
|
|
391
763
|
raise
|
|
392
764
|
except:
|
|
393
765
|
traceback.print_exc()
|
|
@@ -446,7 +818,7 @@ class PyLineCallback(PEP669CallbackBase):
|
|
|
446
818
|
self.py_db.do_wait_suspend(thread, frame, 'line', None)
|
|
447
819
|
|
|
448
820
|
except KeyboardInterrupt:
|
|
449
|
-
|
|
821
|
+
_clear_run_state(info)
|
|
450
822
|
raise
|
|
451
823
|
except:
|
|
452
824
|
traceback.print_exc()
|
|
@@ -496,7 +868,7 @@ class PyRaiseCallback(PEP669CallbackBase):
|
|
|
496
868
|
|
|
497
869
|
frame = self.frame
|
|
498
870
|
thread = self.thread
|
|
499
|
-
info =
|
|
871
|
+
info = _get_additional_info(thread)
|
|
500
872
|
|
|
501
873
|
try:
|
|
502
874
|
if frame is self._get_top_level_frame():
|
|
@@ -510,7 +882,7 @@ class PyRaiseCallback(PEP669CallbackBase):
|
|
|
510
882
|
args = (
|
|
511
883
|
self.py_db,
|
|
512
884
|
self._get_abs_path_real_path_and_base_from_frame(frame)[1],
|
|
513
|
-
|
|
885
|
+
_get_additional_info(self.thread), self.thread,
|
|
514
886
|
global_cache_skips,
|
|
515
887
|
global_cache_frame_skips
|
|
516
888
|
)
|
|
@@ -519,11 +891,11 @@ class PyRaiseCallback(PEP669CallbackBase):
|
|
|
519
891
|
if should_stop:
|
|
520
892
|
handle_exception(args, frame, 'exception', exc_info)
|
|
521
893
|
except KeyboardInterrupt:
|
|
522
|
-
|
|
894
|
+
_clear_run_state(info)
|
|
523
895
|
raise
|
|
524
896
|
|
|
525
897
|
def _stop_on_unhandled_exception(self, exc_info):
|
|
526
|
-
additional_info =
|
|
898
|
+
additional_info = _get_additional_info(self.thread)
|
|
527
899
|
if not additional_info.suspended_at_unhandled:
|
|
528
900
|
additional_info.suspended_at_unhandled = True
|
|
529
901
|
stop_on_unhandled_exception(self.py_db, self.thread, additional_info,
|
|
@@ -536,7 +908,7 @@ class PyReturnCallback(PEP669CallbackBase):
|
|
|
536
908
|
|
|
537
909
|
frame = self.frame
|
|
538
910
|
thread = self.thread
|
|
539
|
-
info =
|
|
911
|
+
info = _get_additional_info(thread)
|
|
540
912
|
|
|
541
913
|
try:
|
|
542
914
|
if self.py_db.show_return_values or self.py_db.remove_return_values_flag:
|
|
@@ -562,7 +934,7 @@ class PyReturnCallback(PEP669CallbackBase):
|
|
|
562
934
|
if back_code.co_name != '<module>':
|
|
563
935
|
PyReturnCallback.start_monitoring(back_code)
|
|
564
936
|
except KeyboardInterrupt:
|
|
565
|
-
|
|
937
|
+
_clear_run_state(info)
|
|
566
938
|
raise
|
|
567
939
|
finally:
|
|
568
940
|
self.stop_monitoring(code)
|
|
Binary file
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
|
2
|
+
"""Bytecode analyzing utils for extracting smart steps into variants."""
|
|
3
|
+
|
|
4
|
+
from collections import namedtuple
|
|
5
|
+
|
|
6
|
+
from _pydevd_bundle.pydevd_constants import IS_PY311_OR_GREATER, IS_PY36_OR_GREATER, \
|
|
7
|
+
IS_PY2, IS_CPYTHON
|
|
8
|
+
|
|
9
|
+
__all__ = [
|
|
10
|
+
'find_stepping_variants',
|
|
11
|
+
'get_stepping_variants',
|
|
12
|
+
]
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def _get_stepping_variants_dummy(_):
|
|
16
|
+
return []
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
get_stepping_variants = _get_stepping_variants_dummy
|
|
20
|
+
|
|
21
|
+
if not IS_CPYTHON:
|
|
22
|
+
pass
|
|
23
|
+
elif IS_PY311_OR_GREATER:
|
|
24
|
+
from _pydevd_bundle.smart_step_into.pydevd_smart_step_into_311 import (
|
|
25
|
+
get_stepping_variants)
|
|
26
|
+
elif IS_PY36_OR_GREATER:
|
|
27
|
+
from _pydevd_bundle.smart_step_into.pydevd_smart_step_into_36_310 import (
|
|
28
|
+
get_stepping_variants)
|
|
29
|
+
elif IS_PY2:
|
|
30
|
+
from _pydevd_bundle.smart_step_into.pydevd_smart_step_into_27 import (
|
|
31
|
+
get_stepping_variants)
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
_Variant = namedtuple('Variant', ['name', 'is_visited'])
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def find_stepping_variants(frame, start_line, end_line):
|
|
38
|
+
"""Finds the *ordered* stepping targets within the given line range."""
|
|
39
|
+
code = frame.f_code
|
|
40
|
+
last_instruction = frame.f_lasti
|
|
41
|
+
for instruction in get_stepping_variants(code):
|
|
42
|
+
if not instruction.lineno:
|
|
43
|
+
continue
|
|
44
|
+
if start_line <= instruction.lineno <= end_line:
|
|
45
|
+
yield _Variant(instruction.argval, instruction.offset < last_instruction)
|
|
46
|
+
if instruction.lineno > end_line:
|
|
47
|
+
break
|