1 %feature("docstring", 2 "Represents a thread of execution. :py:class:`SBProcess` contains SBThread(s). 3 4 SBThreads can be referred to by their ID, which maps to the system specific thread 5 identifier, or by IndexID. The ID may or may not be unique depending on whether the 6 system reuses its thread identifiers. The IndexID is a monotonically increasing identifier 7 that will always uniquely reference a particular thread, and when that thread goes 8 away it will not be reused. 9 10 SBThread supports frame iteration. For example (from test/python_api/ 11 lldbutil/iter/TestLLDBIterator.py), :: 12 13 from lldbutil import print_stacktrace 14 stopped_due_to_breakpoint = False 15 for thread in process: 16 if self.TraceOn(): 17 print_stacktrace(thread) 18 ID = thread.GetThreadID() 19 if thread.GetStopReason() == lldb.eStopReasonBreakpoint: 20 stopped_due_to_breakpoint = True 21 for frame in thread: 22 self.assertTrue(frame.GetThread().GetThreadID() == ID) 23 if self.TraceOn(): 24 print frame 25 26 self.assertTrue(stopped_due_to_breakpoint) 27 28 See also :py:class:`SBFrame` ." 29 ) lldb::SBThread; 30 31 %feature("docstring", " 32 Get the number of words associated with the stop reason. 33 See also GetStopReasonDataAtIndex()." 34 ) lldb::SBThread::GetStopReasonDataCount; 35 36 %feature("docstring", " 37 Get information associated with a stop reason. 38 39 Breakpoint stop reasons will have data that consists of pairs of 40 breakpoint IDs followed by the breakpoint location IDs (they always come 41 in pairs). 42 43 Stop Reason Count Data Type 44 ======================== ===== ========================================= 45 eStopReasonNone 0 46 eStopReasonTrace 0 47 eStopReasonBreakpoint N duple: {breakpoint id, location id} 48 eStopReasonWatchpoint 1 watchpoint id 49 eStopReasonSignal 1 unix signal number 50 eStopReasonException N exception data 51 eStopReasonExec 0 52 eStopReasonFork 1 pid of the child process 53 eStopReasonVFork 1 pid of the child process 54 eStopReasonVForkDone 0 55 eStopReasonPlanComplete 0" 56 ) lldb::SBThread::GetStopReasonDataAtIndex; 57 58 %feature("autodoc", " 59 Collects a thread's stop reason extended information dictionary and prints it 60 into the SBStream in a JSON format. The format of this JSON dictionary depends 61 on the stop reason and is currently used only for instrumentation plugins." 62 ) lldb::SBThread::GetStopReasonExtendedInfoAsJSON; 63 64 %feature("autodoc", " 65 Returns a collection of historical stack traces that are significant to the 66 current stop reason. Used by ThreadSanitizer, where we provide various stack 67 traces that were involved in a data race or other type of detected issue." 68 ) lldb::SBThread::GetStopReasonExtendedBacktraces; 69 70 %feature("autodoc", " 71 Pass only an (int)length and expect to get a Python string describing the 72 stop reason." 73 ) lldb::SBThread::GetStopDescription; 74 75 %feature("autodoc", " 76 Returns a unique thread identifier (type lldb::tid_t, typically a 64-bit type) 77 for the current SBThread that will remain constant throughout the thread's 78 lifetime in this process and will not be reused by another thread during this 79 process lifetime. On Mac OS X systems, this is a system-wide unique thread 80 identifier; this identifier is also used by other tools like sample which helps 81 to associate data from those tools with lldb. See related GetIndexID." 82 ) lldb::SBThread::GetThreadID; 83 84 %feature("autodoc", " 85 Return the index number for this SBThread. The index number is the same thing 86 that a user gives as an argument to 'thread select' in the command line lldb. 87 These numbers start at 1 (for the first thread lldb sees in a debug session) 88 and increments up throughout the process lifetime. An index number will not be 89 reused for a different thread later in a process - thread 1 will always be 90 associated with the same thread. See related GetThreadID. 91 This method returns a uint32_t index number, takes no arguments." 92 ) lldb::SBThread::GetIndexID; 93 94 %feature("autodoc", " 95 Return the queue name associated with this thread, if any, as a str. 96 For example, with a libdispatch (aka Grand Central Dispatch) queue." 97 ) lldb::SBThread::GetQueueName; 98 99 %feature("autodoc", " 100 Return the dispatch_queue_id for this thread, if any, as a lldb::queue_id_t. 101 For example, with a libdispatch (aka Grand Central Dispatch) queue." 102 ) lldb::SBThread::GetQueueID; 103 104 %feature("docstring", " 105 Takes a path string and a SBStream reference as parameters, returns a bool. 106 Collects the thread's 'info' dictionary from the remote system, uses the path 107 argument to descend into the dictionary to an item of interest, and prints 108 it into the SBStream in a natural format. Return bool is to indicate if 109 anything was printed into the stream (true) or not (false)." 110 ) lldb::SBThread::GetInfoItemByPathAsString; 111 112 %feature("autodoc", " 113 Return the SBQueue for this thread. If this thread is not currently associated 114 with a libdispatch queue, the SBQueue object's IsValid() method will return false. 115 If this SBThread is actually a HistoryThread, we may be able to provide QueueID 116 and QueueName, but not provide an SBQueue. Those individual attributes may have 117 been saved for the HistoryThread without enough information to reconstitute the 118 entire SBQueue at that time. 119 This method takes no arguments, returns an SBQueue." 120 ) lldb::SBThread::GetQueue; 121 122 %feature("docstring", 123 "Do a source level single step over in the currently selected thread." 124 ) lldb::SBThread::StepOver; 125 126 %feature("docstring", " 127 Step the current thread from the current source line to the line given by end_line, stopping if 128 the thread steps into the function given by target_name. If target_name is None, then stepping will stop 129 in any of the places we would normally stop." 130 ) lldb::SBThread::StepInto; 131 132 %feature("docstring", 133 "Step out of the currently selected thread." 134 ) lldb::SBThread::StepOut; 135 136 %feature("docstring", 137 "Step out of the specified frame." 138 ) lldb::SBThread::StepOutOfFrame; 139 140 %feature("docstring", 141 "Do an instruction level single step in the currently selected thread." 142 ) lldb::SBThread::StepInstruction; 143 144 %feature("autodoc", " 145 Force a return from the frame passed in (and any frames younger than it) 146 without executing any more code in those frames. If return_value contains 147 a valid SBValue, that will be set as the return value from frame. Note, at 148 present only scalar return values are supported." 149 ) lldb::SBThread::ReturnFromFrame; 150 151 %feature("autodoc", " 152 Unwind the stack frames from the innermost expression evaluation. 153 This API is equivalent to 'thread return -x'." 154 ) lldb::SBThread::UnwindInnermostExpression; 155 156 %feature("docstring", " 157 LLDB currently supports process centric debugging which means when any 158 thread in a process stops, all other threads are stopped. The Suspend() 159 call here tells our process to suspend a thread and not let it run when 160 the other threads in a process are allowed to run. So when 161 SBProcess::Continue() is called, any threads that aren't suspended will 162 be allowed to run. If any of the SBThread functions for stepping are 163 called (StepOver, StepInto, StepOut, StepInstruction, RunToAddres), the 164 thread will now be allowed to run and these functions will simply return. 165 166 Eventually we plan to add support for thread centric debugging where 167 each thread is controlled individually and each thread would broadcast 168 its state, but we haven't implemented this yet. 169 170 Likewise the SBThread::Resume() call will again allow the thread to run 171 when the process is continued. 172 173 Suspend() and Resume() functions are not currently reference counted, if 174 anyone has the need for them to be reference counted, please let us 175 know." 176 ) lldb::SBThread::Suspend; 177 178 %feature("docstring", " 179 Get the description strings for this thread that match what the 180 lldb driver will present, using the thread-format (stop_format==false) 181 or thread-stop-format (stop_format = true)." 182 ) lldb::SBThread::GetDescription; 183 184 %feature("autodoc"," 185 Given an argument of str to specify the type of thread-origin extended 186 backtrace to retrieve, query whether the origin of this thread is 187 available. An SBThread is retured; SBThread.IsValid will return true 188 if an extended backtrace was available. The returned SBThread is not 189 a part of the SBProcess' thread list and it cannot be manipulated like 190 normal threads -- you cannot step or resume it, for instance -- it is 191 intended to used primarily for generating a backtrace. You may request 192 the returned thread's own thread origin in turn." 193 ) lldb::SBThread::GetExtendedBacktraceThread; 194 195 %feature("autodoc"," 196 Takes no arguments, returns a uint32_t. 197 If this SBThread is an ExtendedBacktrace thread, get the IndexID of the 198 original thread that this ExtendedBacktrace thread represents, if 199 available. The thread that was running this backtrace in the past may 200 not have been registered with lldb's thread index (if it was created, 201 did its work, and was destroyed without lldb ever stopping execution). 202 In that case, this ExtendedBacktrace thread's IndexID will be returned." 203 ) lldb::SBThread::GetExtendedBacktraceOriginatingIndexID; 204 205 %feature("autodoc"," 206 Returns an SBValue object represeting the current exception for the thread, 207 if there is any. Currently, this works for Obj-C code and returns an SBValue 208 representing the NSException object at the throw site or that's currently 209 being processes." 210 ) lldb::SBThread::GetCurrentException; 211 212 %feature("autodoc"," 213 Returns a historical (fake) SBThread representing the stack trace of an 214 exception, if there is one for the thread. Currently, this works for Obj-C 215 code, and can retrieve the throw-site backtrace of an NSException object 216 even when the program is no longer at the throw site." 217 ) lldb::SBThread::GetCurrentExceptionBacktrace; 218 219 %feature("autodoc"," 220 Takes no arguments, returns a bool. 221 lldb may be able to detect that function calls should not be executed 222 on a given thread at a particular point in time. It is recommended that 223 this is checked before performing an inferior function call on a given 224 thread." 225 ) lldb::SBThread::SafeToCallFunctions; 226 227 %feature("autodoc"," 228 Retruns a SBValue object representing the siginfo for the current signal. 229 " 230 ) lldb::SBThread::GetSiginfo; 231