1c3fba812b636dcdede81be622d557efbdc834240Johnny Chen//===-- SWIG Interface for SBThread -----------------------------*- C++ -*-===// 2c3fba812b636dcdede81be622d557efbdc834240Johnny Chen// 3c3fba812b636dcdede81be622d557efbdc834240Johnny Chen// The LLVM Compiler Infrastructure 4c3fba812b636dcdede81be622d557efbdc834240Johnny Chen// 5c3fba812b636dcdede81be622d557efbdc834240Johnny Chen// This file is distributed under the University of Illinois Open Source 6c3fba812b636dcdede81be622d557efbdc834240Johnny Chen// License. See LICENSE.TXT for details. 7c3fba812b636dcdede81be622d557efbdc834240Johnny Chen// 8c3fba812b636dcdede81be622d557efbdc834240Johnny Chen//===----------------------------------------------------------------------===// 9c3fba812b636dcdede81be622d557efbdc834240Johnny Chen 10c3fba812b636dcdede81be622d557efbdc834240Johnny Chennamespace lldb { 11c3fba812b636dcdede81be622d557efbdc834240Johnny Chen 12c3fba812b636dcdede81be622d557efbdc834240Johnny Chen%feature("docstring", 13c3fba812b636dcdede81be622d557efbdc834240Johnny Chen"Represents a thread of execution. SBProcess contains SBThread(s). 14c3fba812b636dcdede81be622d557efbdc834240Johnny Chen 15efbdd2280873cc87634bf4f4a37ab8b99662522aJim InghamSBThreads can be referred to by their ID, which maps to the system specific thread 16efbdd2280873cc87634bf4f4a37ab8b99662522aJim Inghamidentifier, or by IndexID. The ID may or may not be unique depending on whether the 17efbdd2280873cc87634bf4f4a37ab8b99662522aJim Inghamsystem reuses its thread identifiers. The IndexID is a monotonically increasing identifier 18efbdd2280873cc87634bf4f4a37ab8b99662522aJim Inghamthat will always uniquely reference a particular thread, and when that thread goes 19efbdd2280873cc87634bf4f4a37ab8b99662522aJim Inghamaway it will not be reused. 20efbdd2280873cc87634bf4f4a37ab8b99662522aJim Ingham 21c3fba812b636dcdede81be622d557efbdc834240Johnny ChenSBThread supports frame iteration. For example (from test/python_api/ 22c3fba812b636dcdede81be622d557efbdc834240Johnny Chenlldbutil/iter/TestLLDBIterator.py), 23c3fba812b636dcdede81be622d557efbdc834240Johnny Chen 24c3fba812b636dcdede81be622d557efbdc834240Johnny Chen from lldbutil import print_stacktrace 25c3fba812b636dcdede81be622d557efbdc834240Johnny Chen stopped_due_to_breakpoint = False 26c3fba812b636dcdede81be622d557efbdc834240Johnny Chen for thread in process: 27c3fba812b636dcdede81be622d557efbdc834240Johnny Chen if self.TraceOn(): 28c3fba812b636dcdede81be622d557efbdc834240Johnny Chen print_stacktrace(thread) 29c3fba812b636dcdede81be622d557efbdc834240Johnny Chen ID = thread.GetThreadID() 30c3fba812b636dcdede81be622d557efbdc834240Johnny Chen if thread.GetStopReason() == lldb.eStopReasonBreakpoint: 31c3fba812b636dcdede81be622d557efbdc834240Johnny Chen stopped_due_to_breakpoint = True 32c3fba812b636dcdede81be622d557efbdc834240Johnny Chen for frame in thread: 33c3fba812b636dcdede81be622d557efbdc834240Johnny Chen self.assertTrue(frame.GetThread().GetThreadID() == ID) 34c3fba812b636dcdede81be622d557efbdc834240Johnny Chen if self.TraceOn(): 35c3fba812b636dcdede81be622d557efbdc834240Johnny Chen print frame 36c3fba812b636dcdede81be622d557efbdc834240Johnny Chen 37c3fba812b636dcdede81be622d557efbdc834240Johnny Chen self.assertTrue(stopped_due_to_breakpoint) 38c3fba812b636dcdede81be622d557efbdc834240Johnny Chen 39c3fba812b636dcdede81be622d557efbdc834240Johnny ChenSee also SBProcess and SBFrame." 40c3fba812b636dcdede81be622d557efbdc834240Johnny Chen) SBThread; 41c3fba812b636dcdede81be622d557efbdc834240Johnny Chenclass SBThread 42c3fba812b636dcdede81be622d557efbdc834240Johnny Chen{ 43c3fba812b636dcdede81be622d557efbdc834240Johnny Chenpublic: 44c3fba812b636dcdede81be622d557efbdc834240Johnny Chen SBThread (); 45c3fba812b636dcdede81be622d557efbdc834240Johnny Chen 46c3fba812b636dcdede81be622d557efbdc834240Johnny Chen SBThread (const lldb::SBThread &thread); 47c3fba812b636dcdede81be622d557efbdc834240Johnny Chen 48c3fba812b636dcdede81be622d557efbdc834240Johnny Chen ~SBThread(); 4994a5d0de4433dce556db59758f3d6124eb0e1a2aJim Ingham 5094a5d0de4433dce556db59758f3d6124eb0e1a2aJim Ingham static bool 5194a5d0de4433dce556db59758f3d6124eb0e1a2aJim Ingham EventIsThreadEvent (const SBEvent &event); 5294a5d0de4433dce556db59758f3d6124eb0e1a2aJim Ingham 5394a5d0de4433dce556db59758f3d6124eb0e1a2aJim Ingham static SBFrame 5494a5d0de4433dce556db59758f3d6124eb0e1a2aJim Ingham GetStackFrameFromEvent (const SBEvent &event); 5594a5d0de4433dce556db59758f3d6124eb0e1a2aJim Ingham 5694a5d0de4433dce556db59758f3d6124eb0e1a2aJim Ingham static SBThread 5794a5d0de4433dce556db59758f3d6124eb0e1a2aJim Ingham GetThreadFromEvent (const SBEvent &event); 58c3fba812b636dcdede81be622d557efbdc834240Johnny Chen 59c3fba812b636dcdede81be622d557efbdc834240Johnny Chen bool 60c3fba812b636dcdede81be622d557efbdc834240Johnny Chen IsValid() const; 61c3fba812b636dcdede81be622d557efbdc834240Johnny Chen 62c3fba812b636dcdede81be622d557efbdc834240Johnny Chen void 63c3fba812b636dcdede81be622d557efbdc834240Johnny Chen Clear (); 64c3fba812b636dcdede81be622d557efbdc834240Johnny Chen 65c3fba812b636dcdede81be622d557efbdc834240Johnny Chen lldb::StopReason 66c3fba812b636dcdede81be622d557efbdc834240Johnny Chen GetStopReason(); 67c3fba812b636dcdede81be622d557efbdc834240Johnny Chen 68c3fba812b636dcdede81be622d557efbdc834240Johnny Chen %feature("docstring", " 69c3fba812b636dcdede81be622d557efbdc834240Johnny Chen /// Get the number of words associated with the stop reason. 70c3fba812b636dcdede81be622d557efbdc834240Johnny Chen /// See also GetStopReasonDataAtIndex(). 71c3fba812b636dcdede81be622d557efbdc834240Johnny Chen ") GetStopReasonDataCount; 72c3fba812b636dcdede81be622d557efbdc834240Johnny Chen size_t 73c3fba812b636dcdede81be622d557efbdc834240Johnny Chen GetStopReasonDataCount(); 74c3fba812b636dcdede81be622d557efbdc834240Johnny Chen 75c3fba812b636dcdede81be622d557efbdc834240Johnny Chen %feature("docstring", " 76c3fba812b636dcdede81be622d557efbdc834240Johnny Chen //-------------------------------------------------------------------------- 77c3fba812b636dcdede81be622d557efbdc834240Johnny Chen /// Get information associated with a stop reason. 78c3fba812b636dcdede81be622d557efbdc834240Johnny Chen /// 79c3fba812b636dcdede81be622d557efbdc834240Johnny Chen /// Breakpoint stop reasons will have data that consists of pairs of 80c3fba812b636dcdede81be622d557efbdc834240Johnny Chen /// breakpoint IDs followed by the breakpoint location IDs (they always come 81c3fba812b636dcdede81be622d557efbdc834240Johnny Chen /// in pairs). 82c3fba812b636dcdede81be622d557efbdc834240Johnny Chen /// 83c3fba812b636dcdede81be622d557efbdc834240Johnny Chen /// Stop Reason Count Data Type 84c3fba812b636dcdede81be622d557efbdc834240Johnny Chen /// ======================== ===== ========================================= 85c3fba812b636dcdede81be622d557efbdc834240Johnny Chen /// eStopReasonNone 0 86c3fba812b636dcdede81be622d557efbdc834240Johnny Chen /// eStopReasonTrace 0 87c3fba812b636dcdede81be622d557efbdc834240Johnny Chen /// eStopReasonBreakpoint N duple: {breakpoint id, location id} 88bcbefa8de7877c5d0674d5816cf96db48b103e6fJohnny Chen /// eStopReasonWatchpoint 1 watchpoint id 89c3fba812b636dcdede81be622d557efbdc834240Johnny Chen /// eStopReasonSignal 1 unix signal number 90c3fba812b636dcdede81be622d557efbdc834240Johnny Chen /// eStopReasonException N exception data 910bce9a22354df3f00e68ffd912119a0741753b7fGreg Clayton /// eStopReasonExec 0 92c3fba812b636dcdede81be622d557efbdc834240Johnny Chen /// eStopReasonPlanComplete 0 93c3fba812b636dcdede81be622d557efbdc834240Johnny Chen //-------------------------------------------------------------------------- 94c3fba812b636dcdede81be622d557efbdc834240Johnny Chen ") GetStopReasonDataAtIndex; 95c3fba812b636dcdede81be622d557efbdc834240Johnny Chen uint64_t 96c3fba812b636dcdede81be622d557efbdc834240Johnny Chen GetStopReasonDataAtIndex(uint32_t idx); 97c3fba812b636dcdede81be622d557efbdc834240Johnny Chen 9865f4fb01ed41075a3efe9d2b5a337e5a8fe7f006Johnny Chen %feature("autodoc", " 9965f4fb01ed41075a3efe9d2b5a337e5a8fe7f006Johnny Chen Pass only an (int)length and expect to get a Python string describing the 10065f4fb01ed41075a3efe9d2b5a337e5a8fe7f006Johnny Chen stop reason. 10165f4fb01ed41075a3efe9d2b5a337e5a8fe7f006Johnny Chen ") GetStopDescription; 102c3fba812b636dcdede81be622d557efbdc834240Johnny Chen size_t 103c3fba812b636dcdede81be622d557efbdc834240Johnny Chen GetStopDescription (char *dst, size_t dst_len); 104c3fba812b636dcdede81be622d557efbdc834240Johnny Chen 1051586d9720002e407a3a097baf302de5fa4ca9c1bJim Ingham SBValue 1061586d9720002e407a3a097baf302de5fa4ca9c1bJim Ingham GetStopReturnValue (); 1071586d9720002e407a3a097baf302de5fa4ca9c1bJim Ingham 108c3fba812b636dcdede81be622d557efbdc834240Johnny Chen lldb::tid_t 109c3fba812b636dcdede81be622d557efbdc834240Johnny Chen GetThreadID () const; 110c3fba812b636dcdede81be622d557efbdc834240Johnny Chen 111c3fba812b636dcdede81be622d557efbdc834240Johnny Chen uint32_t 112c3fba812b636dcdede81be622d557efbdc834240Johnny Chen GetIndexID () const; 113c3fba812b636dcdede81be622d557efbdc834240Johnny Chen 114c3fba812b636dcdede81be622d557efbdc834240Johnny Chen const char * 115c3fba812b636dcdede81be622d557efbdc834240Johnny Chen GetName () const; 116c3fba812b636dcdede81be622d557efbdc834240Johnny Chen 117c3fba812b636dcdede81be622d557efbdc834240Johnny Chen const char * 118c3fba812b636dcdede81be622d557efbdc834240Johnny Chen GetQueueName() const; 119c3fba812b636dcdede81be622d557efbdc834240Johnny Chen 120c3fba812b636dcdede81be622d557efbdc834240Johnny Chen void 121c3fba812b636dcdede81be622d557efbdc834240Johnny Chen StepOver (lldb::RunMode stop_other_threads = lldb::eOnlyDuringStepping); 122c3fba812b636dcdede81be622d557efbdc834240Johnny Chen 123c3fba812b636dcdede81be622d557efbdc834240Johnny Chen void 124c3fba812b636dcdede81be622d557efbdc834240Johnny Chen StepInto (lldb::RunMode stop_other_threads = lldb::eOnlyDuringStepping); 125c3fba812b636dcdede81be622d557efbdc834240Johnny Chen 126c3fba812b636dcdede81be622d557efbdc834240Johnny Chen void 127f2ca573e8dc034ecc5050a874d8f01ace0703e18Jim Ingham StepInto (const char *target_name, lldb::RunMode stop_other_threads = lldb::eOnlyDuringStepping); 128f2ca573e8dc034ecc5050a874d8f01ace0703e18Jim Ingham 129f2ca573e8dc034ecc5050a874d8f01ace0703e18Jim Ingham void 130c3fba812b636dcdede81be622d557efbdc834240Johnny Chen StepOut (); 131c3fba812b636dcdede81be622d557efbdc834240Johnny Chen 132c3fba812b636dcdede81be622d557efbdc834240Johnny Chen void 133c3fba812b636dcdede81be622d557efbdc834240Johnny Chen StepOutOfFrame (lldb::SBFrame &frame); 134c3fba812b636dcdede81be622d557efbdc834240Johnny Chen 135c3fba812b636dcdede81be622d557efbdc834240Johnny Chen void 136c3fba812b636dcdede81be622d557efbdc834240Johnny Chen StepInstruction(bool step_over); 137c3fba812b636dcdede81be622d557efbdc834240Johnny Chen 138c3fba812b636dcdede81be622d557efbdc834240Johnny Chen SBError 139c3fba812b636dcdede81be622d557efbdc834240Johnny Chen StepOverUntil (lldb::SBFrame &frame, 140c3fba812b636dcdede81be622d557efbdc834240Johnny Chen lldb::SBFileSpec &file_spec, 141c3fba812b636dcdede81be622d557efbdc834240Johnny Chen uint32_t line); 142c3fba812b636dcdede81be622d557efbdc834240Johnny Chen 143c3fba812b636dcdede81be622d557efbdc834240Johnny Chen void 144c3fba812b636dcdede81be622d557efbdc834240Johnny Chen RunToAddress (lldb::addr_t addr); 145c3fba812b636dcdede81be622d557efbdc834240Johnny Chen 146a17a81a1a9ff6b8d87c4a1e47dd874f6ea8a4f1dJim Ingham SBError 147f59388aa57559d7d074613d65b88abacfd699845Jim Ingham ReturnFromFrame (SBFrame &frame, SBValue &return_value); 148a17a81a1a9ff6b8d87c4a1e47dd874f6ea8a4f1dJim Ingham 149c3fba812b636dcdede81be622d557efbdc834240Johnny Chen %feature("docstring", " 150c3fba812b636dcdede81be622d557efbdc834240Johnny Chen //-------------------------------------------------------------------------- 151c3fba812b636dcdede81be622d557efbdc834240Johnny Chen /// LLDB currently supports process centric debugging which means when any 152c3fba812b636dcdede81be622d557efbdc834240Johnny Chen /// thread in a process stops, all other threads are stopped. The Suspend() 153c3fba812b636dcdede81be622d557efbdc834240Johnny Chen /// call here tells our process to suspend a thread and not let it run when 154c3fba812b636dcdede81be622d557efbdc834240Johnny Chen /// the other threads in a process are allowed to run. So when 155c3fba812b636dcdede81be622d557efbdc834240Johnny Chen /// SBProcess::Continue() is called, any threads that aren't suspended will 156c3fba812b636dcdede81be622d557efbdc834240Johnny Chen /// be allowed to run. If any of the SBThread functions for stepping are 157c3fba812b636dcdede81be622d557efbdc834240Johnny Chen /// called (StepOver, StepInto, StepOut, StepInstruction, RunToAddres), the 158c3fba812b636dcdede81be622d557efbdc834240Johnny Chen /// thread will now be allowed to run and these funtions will simply return. 159c3fba812b636dcdede81be622d557efbdc834240Johnny Chen /// 160c3fba812b636dcdede81be622d557efbdc834240Johnny Chen /// Eventually we plan to add support for thread centric debugging where 161c3fba812b636dcdede81be622d557efbdc834240Johnny Chen /// each thread is controlled individually and each thread would broadcast 162c3fba812b636dcdede81be622d557efbdc834240Johnny Chen /// its state, but we haven't implemented this yet. 163c3fba812b636dcdede81be622d557efbdc834240Johnny Chen /// 164c3fba812b636dcdede81be622d557efbdc834240Johnny Chen /// Likewise the SBThread::Resume() call will again allow the thread to run 165c3fba812b636dcdede81be622d557efbdc834240Johnny Chen /// when the process is continued. 166c3fba812b636dcdede81be622d557efbdc834240Johnny Chen /// 167c3fba812b636dcdede81be622d557efbdc834240Johnny Chen /// Suspend() and Resume() functions are not currently reference counted, if 168c3fba812b636dcdede81be622d557efbdc834240Johnny Chen /// anyone has the need for them to be reference counted, please let us 169c3fba812b636dcdede81be622d557efbdc834240Johnny Chen /// know. 170c3fba812b636dcdede81be622d557efbdc834240Johnny Chen //-------------------------------------------------------------------------- 171c3fba812b636dcdede81be622d557efbdc834240Johnny Chen ") Suspend; 172c3fba812b636dcdede81be622d557efbdc834240Johnny Chen bool 173c3fba812b636dcdede81be622d557efbdc834240Johnny Chen Suspend(); 174c3fba812b636dcdede81be622d557efbdc834240Johnny Chen 175c3fba812b636dcdede81be622d557efbdc834240Johnny Chen bool 176c3fba812b636dcdede81be622d557efbdc834240Johnny Chen Resume (); 177c3fba812b636dcdede81be622d557efbdc834240Johnny Chen 178c3fba812b636dcdede81be622d557efbdc834240Johnny Chen bool 179c3fba812b636dcdede81be622d557efbdc834240Johnny Chen IsSuspended(); 180c3fba812b636dcdede81be622d557efbdc834240Johnny Chen 1812c354722318f0fcad087c76f2bc0dc8db9200b4bAndrew Kaylor bool 1822c354722318f0fcad087c76f2bc0dc8db9200b4bAndrew Kaylor IsStopped(); 1832c354722318f0fcad087c76f2bc0dc8db9200b4bAndrew Kaylor 184c3fba812b636dcdede81be622d557efbdc834240Johnny Chen uint32_t 185c3fba812b636dcdede81be622d557efbdc834240Johnny Chen GetNumFrames (); 186c3fba812b636dcdede81be622d557efbdc834240Johnny Chen 187c3fba812b636dcdede81be622d557efbdc834240Johnny Chen lldb::SBFrame 188c3fba812b636dcdede81be622d557efbdc834240Johnny Chen GetFrameAtIndex (uint32_t idx); 189c3fba812b636dcdede81be622d557efbdc834240Johnny Chen 190c3fba812b636dcdede81be622d557efbdc834240Johnny Chen lldb::SBFrame 191c3fba812b636dcdede81be622d557efbdc834240Johnny Chen GetSelectedFrame (); 192c3fba812b636dcdede81be622d557efbdc834240Johnny Chen 193c3fba812b636dcdede81be622d557efbdc834240Johnny Chen lldb::SBFrame 194c3fba812b636dcdede81be622d557efbdc834240Johnny Chen SetSelectedFrame (uint32_t frame_idx); 195c3fba812b636dcdede81be622d557efbdc834240Johnny Chen 196c3fba812b636dcdede81be622d557efbdc834240Johnny Chen lldb::SBProcess 197c3fba812b636dcdede81be622d557efbdc834240Johnny Chen GetProcess (); 198c3fba812b636dcdede81be622d557efbdc834240Johnny Chen 199c3fba812b636dcdede81be622d557efbdc834240Johnny Chen bool 200c3fba812b636dcdede81be622d557efbdc834240Johnny Chen GetDescription (lldb::SBStream &description) const; 2011b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton 20294a5d0de4433dce556db59758f3d6124eb0e1a2aJim Ingham bool 20394a5d0de4433dce556db59758f3d6124eb0e1a2aJim Ingham GetStatus (lldb::SBStream &status) const; 20494a5d0de4433dce556db59758f3d6124eb0e1a2aJim Ingham 2050765e3274aab0551fea7678bee565c7d68e0b786Enrico Granata bool 2060765e3274aab0551fea7678bee565c7d68e0b786Enrico Granata operator == (const lldb::SBThread &rhs) const; 2070765e3274aab0551fea7678bee565c7d68e0b786Enrico Granata 2080765e3274aab0551fea7678bee565c7d68e0b786Enrico Granata bool 2090765e3274aab0551fea7678bee565c7d68e0b786Enrico Granata operator != (const lldb::SBThread &rhs) const; 2100765e3274aab0551fea7678bee565c7d68e0b786Enrico Granata 2111b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton %pythoncode %{ 212b6a5ba60e326e695ce8996b513f46dee8c3368cdGreg Clayton class frames_access(object): 213b302dffacdadeef509d28133a4c66299418122f8Greg Clayton '''A helper object that will lazily hand out frames for a thread when supplied an index.''' 214b302dffacdadeef509d28133a4c66299418122f8Greg Clayton def __init__(self, sbthread): 215b302dffacdadeef509d28133a4c66299418122f8Greg Clayton self.sbthread = sbthread 216b302dffacdadeef509d28133a4c66299418122f8Greg Clayton 217b302dffacdadeef509d28133a4c66299418122f8Greg Clayton def __len__(self): 218b302dffacdadeef509d28133a4c66299418122f8Greg Clayton if self.sbthread: 2193cae38bc36877dbe1504c6fa2dedbcab71fe5780Filipe Cabecinhas return int(self.sbthread.GetNumFrames()) 220b302dffacdadeef509d28133a4c66299418122f8Greg Clayton return 0 221b302dffacdadeef509d28133a4c66299418122f8Greg Clayton 222b302dffacdadeef509d28133a4c66299418122f8Greg Clayton def __getitem__(self, key): 223b302dffacdadeef509d28133a4c66299418122f8Greg Clayton if type(key) is int and key < self.sbthread.GetNumFrames(): 224b302dffacdadeef509d28133a4c66299418122f8Greg Clayton return self.sbthread.GetFrameAtIndex(key) 225b302dffacdadeef509d28133a4c66299418122f8Greg Clayton return None 226b302dffacdadeef509d28133a4c66299418122f8Greg Clayton 227b6a5ba60e326e695ce8996b513f46dee8c3368cdGreg Clayton def get_frames_access_object(self): 228b6a5ba60e326e695ce8996b513f46dee8c3368cdGreg Clayton '''An accessor function that returns a frames_access() object which allows lazy frame access from a lldb.SBThread object.''' 229b6a5ba60e326e695ce8996b513f46dee8c3368cdGreg Clayton return self.frames_access (self) 230b302dffacdadeef509d28133a4c66299418122f8Greg Clayton 231394da8e3d59e49ce3a02e6b287ccfc6f568c19a9Greg Clayton def get_thread_frames(self): 232b6a5ba60e326e695ce8996b513f46dee8c3368cdGreg Clayton '''An accessor function that returns a list() that contains all frames in a lldb.SBThread object.''' 233394da8e3d59e49ce3a02e6b287ccfc6f568c19a9Greg Clayton frames = [] 234394da8e3d59e49ce3a02e6b287ccfc6f568c19a9Greg Clayton for frame in self: 235394da8e3d59e49ce3a02e6b287ccfc6f568c19a9Greg Clayton frames.append(frame) 236394da8e3d59e49ce3a02e6b287ccfc6f568c19a9Greg Clayton return frames 237b302dffacdadeef509d28133a4c66299418122f8Greg Clayton 2381b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton __swig_getmethods__["id"] = GetThreadID 2392a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg Clayton if _newclass: id = property(GetThreadID, None, doc='''A read only property that returns the thread ID as an integer.''') 2401b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton 2411b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton __swig_getmethods__["idx"] = GetIndexID 2422a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg Clayton if _newclass: idx = property(GetIndexID, None, doc='''A read only property that returns the thread index ID as an integer. Thread index ID values start at 1 and increment as threads come and go and can be used to uniquely identify threads.''') 2431b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton 2441b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton __swig_getmethods__["return_value"] = GetStopReturnValue 2452a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg Clayton if _newclass: return_value = property(GetStopReturnValue, None, doc='''A read only property that returns an lldb object that represents the return value from the last stop (lldb.SBValue) if we just stopped due to stepping out of a function.''') 2461b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton 2471b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton __swig_getmethods__["process"] = GetProcess 2482a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg Clayton if _newclass: process = property(GetProcess, None, doc='''A read only property that returns an lldb object that represents the process (lldb.SBProcess) that owns this thread.''') 2491b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton 2501b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton __swig_getmethods__["num_frames"] = GetNumFrames 2512a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg Clayton if _newclass: num_frames = property(GetNumFrames, None, doc='''A read only property that returns the number of stack frames in this thread as an integer.''') 2521b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton 253394da8e3d59e49ce3a02e6b287ccfc6f568c19a9Greg Clayton __swig_getmethods__["frames"] = get_thread_frames 2542a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg Clayton if _newclass: frames = property(get_thread_frames, None, doc='''A read only property that returns a list() of lldb.SBFrame objects for all frames in this thread.''') 255394da8e3d59e49ce3a02e6b287ccfc6f568c19a9Greg Clayton 256b6a5ba60e326e695ce8996b513f46dee8c3368cdGreg Clayton __swig_getmethods__["frame"] = get_frames_access_object 2572a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg Clayton if _newclass: frame = property(get_frames_access_object, None, doc='''A read only property that returns an object that can be used to access frames as an array ("frame_12 = lldb.thread.frame[12]").''') 258b302dffacdadeef509d28133a4c66299418122f8Greg Clayton 2591b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton __swig_getmethods__["name"] = GetName 2602a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg Clayton if _newclass: name = property(GetName, None, doc='''A read only property that returns the name of this thread as a string.''') 2611b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton 2621b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton __swig_getmethods__["queue"] = GetQueueName 2632a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg Clayton if _newclass: queue = property(GetQueueName, None, doc='''A read only property that returns the dispatch queue name of this thread as a string.''') 2641b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton 2651b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton __swig_getmethods__["stop_reason"] = GetStopReason 2662a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg Clayton if _newclass: stop_reason = property(GetStopReason, None, doc='''A read only property that returns an lldb enumeration value (see enumerations that start with "lldb.eStopReason") that represents the reason this thread stopped.''') 2671b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton 2681b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton __swig_getmethods__["is_suspended"] = IsSuspended 2692a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg Clayton if _newclass: is_suspended = property(IsSuspended, None, doc='''A read only property that returns a boolean value that indicates if this thread is suspended.''') 2702c354722318f0fcad087c76f2bc0dc8db9200b4bAndrew Kaylor 2712c354722318f0fcad087c76f2bc0dc8db9200b4bAndrew Kaylor __swig_getmethods__["is_stopped"] = IsStopped 2722c354722318f0fcad087c76f2bc0dc8db9200b4bAndrew Kaylor if _newclass: is_stopped = property(IsStopped, None, doc='''A read only property that returns a boolean value that indicates if this thread is stopped but not exited.''') 2731b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton %} 2741b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton 275c3fba812b636dcdede81be622d557efbdc834240Johnny Chen}; 276c3fba812b636dcdede81be622d557efbdc834240Johnny Chen 277c3fba812b636dcdede81be622d557efbdc834240Johnny Chen} // namespace lldb 278