1CMD_RUN = 101 2CMD_LIST_THREADS = 102 3CMD_THREAD_CREATE = 103 4CMD_THREAD_KILL = 104 5CMD_THREAD_SUSPEND = 105 6CMD_THREAD_RUN = 106 7CMD_STEP_INTO = 107 8CMD_STEP_OVER = 108 9CMD_STEP_RETURN = 109 10CMD_GET_VARIABLE = 110 11CMD_SET_BREAK = 111 12CMD_REMOVE_BREAK = 112 13CMD_EVALUATE_EXPRESSION = 113 14CMD_GET_FRAME = 114 15CMD_EXEC_EXPRESSION = 115 16CMD_WRITE_TO_CONSOLE = 116 17CMD_CHANGE_VARIABLE = 117 18CMD_RUN_TO_LINE = 118 19CMD_RELOAD_CODE = 119 20CMD_GET_COMPLETIONS = 120 21 22# Note: renumbered (conflicted on merge) 23CMD_CONSOLE_EXEC = 121 24CMD_ADD_EXCEPTION_BREAK = 122 25CMD_REMOVE_EXCEPTION_BREAK = 123 26CMD_LOAD_SOURCE = 124 27CMD_ADD_DJANGO_EXCEPTION_BREAK = 125 28CMD_REMOVE_DJANGO_EXCEPTION_BREAK = 126 29CMD_SET_NEXT_STATEMENT = 127 30CMD_SMART_STEP_INTO = 128 31CMD_EXIT = 129 32CMD_SIGNATURE_CALL_TRACE = 130 33 34CMD_SET_PY_EXCEPTION = 131 35CMD_GET_FILE_CONTENTS = 132 36CMD_SET_PROPERTY_TRACE = 133 37# Pydev debug console commands 38CMD_EVALUATE_CONSOLE_EXPRESSION = 134 39CMD_RUN_CUSTOM_OPERATION = 135 40CMD_GET_BREAKPOINT_EXCEPTION = 136 41CMD_STEP_CAUGHT_EXCEPTION = 137 42CMD_SEND_CURR_EXCEPTION_TRACE = 138 43CMD_SEND_CURR_EXCEPTION_TRACE_PROCEEDED = 139 44CMD_IGNORE_THROWN_EXCEPTION_AT = 140 45CMD_ENABLE_DONT_TRACE = 141 46CMD_SHOW_CONSOLE = 142 47 48CMD_GET_ARRAY = 143 49CMD_STEP_INTO_MY_CODE = 144 50CMD_GET_CONCURRENCY_EVENT = 145 51CMD_SHOW_RETURN_VALUES = 146 52CMD_INPUT_REQUESTED = 147 53CMD_GET_DESCRIPTION = 148 54 55CMD_PROCESS_CREATED = 149 56CMD_SHOW_CYTHON_WARNING = 150 57CMD_LOAD_FULL_VALUE = 151 58 59CMD_GET_THREAD_STACK = 152 60 61# This is mostly for unit-tests to diagnose errors on ci. 62CMD_THREAD_DUMP_TO_STDERR = 153 63 64# Sent from the client to signal that we should stop when we start executing user code. 65CMD_STOP_ON_START = 154 66 67# When the debugger is stopped in an exception, this command will provide the details of the current exception (in the current thread). 68CMD_GET_EXCEPTION_DETAILS = 155 69 70# Allows configuring pydevd settings (can be called multiple times and only keys 71# available in the json will be configured -- keys not passed will not change the 72# previous configuration). 73CMD_PYDEVD_JSON_CONFIG = 156 74 75CMD_THREAD_SUSPEND_SINGLE_NOTIFICATION = 157 76CMD_THREAD_RESUME_SINGLE_NOTIFICATION = 158 77 78CMD_STEP_OVER_MY_CODE = 159 79CMD_STEP_RETURN_MY_CODE = 160 80 81CMD_SET_PY_EXCEPTION_JSON = 161 82CMD_SET_PATH_MAPPING_JSON = 162 83 84CMD_GET_SMART_STEP_INTO_VARIANTS = 163 # XXX: PyCharm has 160 for this (we're currently incompatible anyways). 85 86CMD_REDIRECT_OUTPUT = 200 87CMD_GET_NEXT_STATEMENT_TARGETS = 201 88CMD_SET_PROJECT_ROOTS = 202 89 90CMD_MODULE_EVENT = 203 91CMD_PROCESS_EVENT = 204 92 93CMD_AUTHENTICATE = 205 94 95CMD_STEP_INTO_COROUTINE = 206 96 97CMD_LOAD_SOURCE_FROM_FRAME_ID = 207 98 99CMD_SET_FUNCTION_BREAK = 208 100 101CMD_VERSION = 501 102CMD_RETURN = 502 103CMD_SET_PROTOCOL = 503 104CMD_ERROR = 901 105 106# this number can be changed if there's need to do so 107# if the io is too big, we'll not send all (could make the debugger too non-responsive) 108MAX_IO_MSG_SIZE = 10000 109 110VERSION_STRING = "@@BUILD_NUMBER@@" 111 112from _pydev_bundle._pydev_filesystem_encoding import getfilesystemencoding 113file_system_encoding = getfilesystemencoding() 114filesystem_encoding_is_utf8 = file_system_encoding.lower() in ('utf-8', 'utf_8', 'utf8') 115 116ID_TO_MEANING = { 117 '101': 'CMD_RUN', 118 '102': 'CMD_LIST_THREADS', 119 '103': 'CMD_THREAD_CREATE', 120 '104': 'CMD_THREAD_KILL', 121 '105': 'CMD_THREAD_SUSPEND', 122 '106': 'CMD_THREAD_RUN', 123 '107': 'CMD_STEP_INTO', 124 '108': 'CMD_STEP_OVER', 125 '109': 'CMD_STEP_RETURN', 126 '110': 'CMD_GET_VARIABLE', 127 '111': 'CMD_SET_BREAK', 128 '112': 'CMD_REMOVE_BREAK', 129 '113': 'CMD_EVALUATE_EXPRESSION', 130 '114': 'CMD_GET_FRAME', 131 '115': 'CMD_EXEC_EXPRESSION', 132 '116': 'CMD_WRITE_TO_CONSOLE', 133 '117': 'CMD_CHANGE_VARIABLE', 134 '118': 'CMD_RUN_TO_LINE', 135 '119': 'CMD_RELOAD_CODE', 136 '120': 'CMD_GET_COMPLETIONS', 137 '121': 'CMD_CONSOLE_EXEC', 138 '122': 'CMD_ADD_EXCEPTION_BREAK', 139 '123': 'CMD_REMOVE_EXCEPTION_BREAK', 140 '124': 'CMD_LOAD_SOURCE', 141 '125': 'CMD_ADD_DJANGO_EXCEPTION_BREAK', 142 '126': 'CMD_REMOVE_DJANGO_EXCEPTION_BREAK', 143 '127': 'CMD_SET_NEXT_STATEMENT', 144 '128': 'CMD_SMART_STEP_INTO', 145 '129': 'CMD_EXIT', 146 '130': 'CMD_SIGNATURE_CALL_TRACE', 147 148 '131': 'CMD_SET_PY_EXCEPTION', 149 '132': 'CMD_GET_FILE_CONTENTS', 150 '133': 'CMD_SET_PROPERTY_TRACE', 151 '134': 'CMD_EVALUATE_CONSOLE_EXPRESSION', 152 '135': 'CMD_RUN_CUSTOM_OPERATION', 153 '136': 'CMD_GET_BREAKPOINT_EXCEPTION', 154 '137': 'CMD_STEP_CAUGHT_EXCEPTION', 155 '138': 'CMD_SEND_CURR_EXCEPTION_TRACE', 156 '139': 'CMD_SEND_CURR_EXCEPTION_TRACE_PROCEEDED', 157 '140': 'CMD_IGNORE_THROWN_EXCEPTION_AT', 158 '141': 'CMD_ENABLE_DONT_TRACE', 159 '142': 'CMD_SHOW_CONSOLE', 160 '143': 'CMD_GET_ARRAY', 161 '144': 'CMD_STEP_INTO_MY_CODE', 162 '145': 'CMD_GET_CONCURRENCY_EVENT', 163 '146': 'CMD_SHOW_RETURN_VALUES', 164 '147': 'CMD_INPUT_REQUESTED', 165 '148': 'CMD_GET_DESCRIPTION', 166 167 '149': 'CMD_PROCESS_CREATED', # Note: this is actually a notification of a sub-process created. 168 '150': 'CMD_SHOW_CYTHON_WARNING', 169 '151': 'CMD_LOAD_FULL_VALUE', 170 '152': 'CMD_GET_THREAD_STACK', 171 '153': 'CMD_THREAD_DUMP_TO_STDERR', 172 '154': 'CMD_STOP_ON_START', 173 '155': 'CMD_GET_EXCEPTION_DETAILS', 174 '156': 'CMD_PYDEVD_JSON_CONFIG', 175 '157': 'CMD_THREAD_SUSPEND_SINGLE_NOTIFICATION', 176 '158': 'CMD_THREAD_RESUME_SINGLE_NOTIFICATION', 177 178 '159': 'CMD_STEP_OVER_MY_CODE', 179 '160': 'CMD_STEP_RETURN_MY_CODE', 180 181 '161': 'CMD_SET_PY_EXCEPTION_JSON', 182 '162': 'CMD_SET_PATH_MAPPING_JSON', 183 '163': 'CMD_GET_SMART_STEP_INTO_VARIANTS', 184 185 '200': 'CMD_REDIRECT_OUTPUT', 186 '201': 'CMD_GET_NEXT_STATEMENT_TARGETS', 187 '202': 'CMD_SET_PROJECT_ROOTS', 188 '203': 'CMD_MODULE_EVENT', 189 '204': 'CMD_PROCESS_EVENT', # DAP process event. 190 191 '205': 'CMD_AUTHENTICATE', 192 193 '206': 'CMD_STEP_INTO_COROUTINE', 194 195 '207': 'CMD_LOAD_SOURCE_FROM_FRAME_ID', 196 197 '501': 'CMD_VERSION', 198 '502': 'CMD_RETURN', 199 '503': 'CMD_SET_PROTOCOL', 200 '901': 'CMD_ERROR', 201} 202 203 204def constant_to_str(constant): 205 s = ID_TO_MEANING.get(str(constant)) 206 if not s: 207 s = '<Unknown: %s>' % (constant,) 208 return s 209