SBThread.i revision a17a81a1a9ff6b8d87c4a1e47dd874f6ea8a4f1d
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();
49c3fba812b636dcdede81be622d557efbdc834240Johnny Chen
50c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    bool
51c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    IsValid() const;
52c3fba812b636dcdede81be622d557efbdc834240Johnny Chen
53c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    void
54c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    Clear ();
55c3fba812b636dcdede81be622d557efbdc834240Johnny Chen
56c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    lldb::StopReason
57c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    GetStopReason();
58c3fba812b636dcdede81be622d557efbdc834240Johnny Chen
59c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    %feature("docstring", "
60c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    /// Get the number of words associated with the stop reason.
61c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    /// See also GetStopReasonDataAtIndex().
62c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    ") GetStopReasonDataCount;
63c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    size_t
64c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    GetStopReasonDataCount();
65c3fba812b636dcdede81be622d557efbdc834240Johnny Chen
66c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    %feature("docstring", "
67c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    //--------------------------------------------------------------------------
68c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    /// Get information associated with a stop reason.
69c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    ///
70c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    /// Breakpoint stop reasons will have data that consists of pairs of
71c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    /// breakpoint IDs followed by the breakpoint location IDs (they always come
72c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    /// in pairs).
73c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    ///
74c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    /// Stop Reason              Count Data Type
75c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    /// ======================== ===== =========================================
76c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    /// eStopReasonNone          0
77c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    /// eStopReasonTrace         0
78c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    /// eStopReasonBreakpoint    N     duple: {breakpoint id, location id}
79bcbefa8de7877c5d0674d5816cf96db48b103e6fJohnny Chen    /// eStopReasonWatchpoint    1     watchpoint id
80c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    /// eStopReasonSignal        1     unix signal number
81c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    /// eStopReasonException     N     exception data
82c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    /// eStopReasonPlanComplete  0
83c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    //--------------------------------------------------------------------------
84c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    ") GetStopReasonDataAtIndex;
85c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    uint64_t
86c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    GetStopReasonDataAtIndex(uint32_t idx);
87c3fba812b636dcdede81be622d557efbdc834240Johnny Chen
8865f4fb01ed41075a3efe9d2b5a337e5a8fe7f006Johnny Chen    %feature("autodoc", "
8965f4fb01ed41075a3efe9d2b5a337e5a8fe7f006Johnny Chen    Pass only an (int)length and expect to get a Python string describing the
9065f4fb01ed41075a3efe9d2b5a337e5a8fe7f006Johnny Chen    stop reason.
9165f4fb01ed41075a3efe9d2b5a337e5a8fe7f006Johnny Chen    ") GetStopDescription;
92c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    size_t
93c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    GetStopDescription (char *dst, size_t dst_len);
94c3fba812b636dcdede81be622d557efbdc834240Johnny Chen
951586d9720002e407a3a097baf302de5fa4ca9c1bJim Ingham    SBValue
961586d9720002e407a3a097baf302de5fa4ca9c1bJim Ingham    GetStopReturnValue ();
971586d9720002e407a3a097baf302de5fa4ca9c1bJim Ingham
98c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    lldb::tid_t
99c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    GetThreadID () const;
100c3fba812b636dcdede81be622d557efbdc834240Johnny Chen
101c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    uint32_t
102c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    GetIndexID () const;
103c3fba812b636dcdede81be622d557efbdc834240Johnny Chen
104c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    const char *
105c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    GetName () const;
106c3fba812b636dcdede81be622d557efbdc834240Johnny Chen
107c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    const char *
108c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    GetQueueName() const;
109c3fba812b636dcdede81be622d557efbdc834240Johnny Chen
110c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    void
111c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    StepOver (lldb::RunMode stop_other_threads = lldb::eOnlyDuringStepping);
112c3fba812b636dcdede81be622d557efbdc834240Johnny Chen
113c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    void
114c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    StepInto (lldb::RunMode stop_other_threads = lldb::eOnlyDuringStepping);
115c3fba812b636dcdede81be622d557efbdc834240Johnny Chen
116c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    void
117c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    StepOut ();
118c3fba812b636dcdede81be622d557efbdc834240Johnny Chen
119c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    void
120c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    StepOutOfFrame (lldb::SBFrame &frame);
121c3fba812b636dcdede81be622d557efbdc834240Johnny Chen
122c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    void
123c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    StepInstruction(bool step_over);
124c3fba812b636dcdede81be622d557efbdc834240Johnny Chen
125c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    SBError
126c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    StepOverUntil (lldb::SBFrame &frame,
127c3fba812b636dcdede81be622d557efbdc834240Johnny Chen                   lldb::SBFileSpec &file_spec,
128c3fba812b636dcdede81be622d557efbdc834240Johnny Chen                   uint32_t line);
129c3fba812b636dcdede81be622d557efbdc834240Johnny Chen
130c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    void
131c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    RunToAddress (lldb::addr_t addr);
132c3fba812b636dcdede81be622d557efbdc834240Johnny Chen
133a17a81a1a9ff6b8d87c4a1e47dd874f6ea8a4f1dJim Ingham    SBError
134a17a81a1a9ff6b8d87c4a1e47dd874f6ea8a4f1dJim Ingham    ReturnToFrame (SBFrame &frame, SBValue &return_value);
135a17a81a1a9ff6b8d87c4a1e47dd874f6ea8a4f1dJim Ingham
136c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    %feature("docstring", "
137c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    //--------------------------------------------------------------------------
138c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    /// LLDB currently supports process centric debugging which means when any
139c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    /// thread in a process stops, all other threads are stopped. The Suspend()
140c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    /// call here tells our process to suspend a thread and not let it run when
141c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    /// the other threads in a process are allowed to run. So when
142c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    /// SBProcess::Continue() is called, any threads that aren't suspended will
143c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    /// be allowed to run. If any of the SBThread functions for stepping are
144c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    /// called (StepOver, StepInto, StepOut, StepInstruction, RunToAddres), the
145c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    /// thread will now be allowed to run and these funtions will simply return.
146c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    ///
147c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    /// Eventually we plan to add support for thread centric debugging where
148c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    /// each thread is controlled individually and each thread would broadcast
149c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    /// its state, but we haven't implemented this yet.
150c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    ///
151c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    /// Likewise the SBThread::Resume() call will again allow the thread to run
152c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    /// when the process is continued.
153c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    ///
154c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    /// Suspend() and Resume() functions are not currently reference counted, if
155c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    /// anyone has the need for them to be reference counted, please let us
156c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    /// know.
157c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    //--------------------------------------------------------------------------
158c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    ") Suspend;
159c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    bool
160c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    Suspend();
161c3fba812b636dcdede81be622d557efbdc834240Johnny Chen
162c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    bool
163c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    Resume ();
164c3fba812b636dcdede81be622d557efbdc834240Johnny Chen
165c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    bool
166c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    IsSuspended();
167c3fba812b636dcdede81be622d557efbdc834240Johnny Chen
168c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    uint32_t
169c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    GetNumFrames ();
170c3fba812b636dcdede81be622d557efbdc834240Johnny Chen
171c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    lldb::SBFrame
172c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    GetFrameAtIndex (uint32_t idx);
173c3fba812b636dcdede81be622d557efbdc834240Johnny Chen
174c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    lldb::SBFrame
175c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    GetSelectedFrame ();
176c3fba812b636dcdede81be622d557efbdc834240Johnny Chen
177c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    lldb::SBFrame
178c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    SetSelectedFrame (uint32_t frame_idx);
179c3fba812b636dcdede81be622d557efbdc834240Johnny Chen
180c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    lldb::SBProcess
181c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    GetProcess ();
182c3fba812b636dcdede81be622d557efbdc834240Johnny Chen
183c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    bool
184c3fba812b636dcdede81be622d557efbdc834240Johnny Chen    GetDescription (lldb::SBStream &description) const;
1851b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton
1861b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton    %pythoncode %{
187b6a5ba60e326e695ce8996b513f46dee8c3368cdGreg Clayton        class frames_access(object):
188b302dffacdadeef509d28133a4c66299418122f8Greg Clayton            '''A helper object that will lazily hand out frames for a thread when supplied an index.'''
189b302dffacdadeef509d28133a4c66299418122f8Greg Clayton            def __init__(self, sbthread):
190b302dffacdadeef509d28133a4c66299418122f8Greg Clayton                self.sbthread = sbthread
191b302dffacdadeef509d28133a4c66299418122f8Greg Clayton
192b302dffacdadeef509d28133a4c66299418122f8Greg Clayton            def __len__(self):
193b302dffacdadeef509d28133a4c66299418122f8Greg Clayton                if self.sbthread:
1943cae38bc36877dbe1504c6fa2dedbcab71fe5780Filipe Cabecinhas                    return int(self.sbthread.GetNumFrames())
195b302dffacdadeef509d28133a4c66299418122f8Greg Clayton                return 0
196b302dffacdadeef509d28133a4c66299418122f8Greg Clayton
197b302dffacdadeef509d28133a4c66299418122f8Greg Clayton            def __getitem__(self, key):
198b302dffacdadeef509d28133a4c66299418122f8Greg Clayton                if type(key) is int and key < self.sbthread.GetNumFrames():
199b302dffacdadeef509d28133a4c66299418122f8Greg Clayton                    return self.sbthread.GetFrameAtIndex(key)
200b302dffacdadeef509d28133a4c66299418122f8Greg Clayton                return None
201b302dffacdadeef509d28133a4c66299418122f8Greg Clayton
202b6a5ba60e326e695ce8996b513f46dee8c3368cdGreg Clayton        def get_frames_access_object(self):
203b6a5ba60e326e695ce8996b513f46dee8c3368cdGreg Clayton            '''An accessor function that returns a frames_access() object which allows lazy frame access from a lldb.SBThread object.'''
204b6a5ba60e326e695ce8996b513f46dee8c3368cdGreg Clayton            return self.frames_access (self)
205b302dffacdadeef509d28133a4c66299418122f8Greg Clayton
206394da8e3d59e49ce3a02e6b287ccfc6f568c19a9Greg Clayton        def get_thread_frames(self):
207b6a5ba60e326e695ce8996b513f46dee8c3368cdGreg Clayton            '''An accessor function that returns a list() that contains all frames in a lldb.SBThread object.'''
208394da8e3d59e49ce3a02e6b287ccfc6f568c19a9Greg Clayton            frames = []
209394da8e3d59e49ce3a02e6b287ccfc6f568c19a9Greg Clayton            for frame in self:
210394da8e3d59e49ce3a02e6b287ccfc6f568c19a9Greg Clayton                frames.append(frame)
211394da8e3d59e49ce3a02e6b287ccfc6f568c19a9Greg Clayton            return frames
212b302dffacdadeef509d28133a4c66299418122f8Greg Clayton
2131b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton        __swig_getmethods__["id"] = GetThreadID
2142a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg Clayton        if _newclass: id = property(GetThreadID, None, doc='''A read only property that returns the thread ID as an integer.''')
2151b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton
2161b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton        __swig_getmethods__["idx"] = GetIndexID
2172a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg 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.''')
2181b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton
2191b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton        __swig_getmethods__["return_value"] = GetStopReturnValue
2202a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg 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.''')
2211b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton
2221b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton        __swig_getmethods__["process"] = GetProcess
2232a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg 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.''')
2241b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton
2251b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton        __swig_getmethods__["num_frames"] = GetNumFrames
2262a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg 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.''')
2271b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton
228394da8e3d59e49ce3a02e6b287ccfc6f568c19a9Greg Clayton        __swig_getmethods__["frames"] = get_thread_frames
2292a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg 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.''')
230394da8e3d59e49ce3a02e6b287ccfc6f568c19a9Greg Clayton
231b6a5ba60e326e695ce8996b513f46dee8c3368cdGreg Clayton        __swig_getmethods__["frame"] = get_frames_access_object
2322a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg 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]").''')
233b302dffacdadeef509d28133a4c66299418122f8Greg Clayton
2341b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton        __swig_getmethods__["name"] = GetName
2352a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg Clayton        if _newclass: name = property(GetName, None, doc='''A read only property that returns the name of this thread as a string.''')
2361b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton
2371b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton        __swig_getmethods__["queue"] = GetQueueName
2382a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg Clayton        if _newclass: queue = property(GetQueueName, None, doc='''A read only property that returns the dispatch queue name of this thread as a string.''')
2391b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton
2401b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton        __swig_getmethods__["stop_reason"] = GetStopReason
2412a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg 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.''')
2421b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton
2431b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton        __swig_getmethods__["is_suspended"] = IsSuspended
2442a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg 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.''')
2451b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton    %}
2461b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton
247c3fba812b636dcdede81be622d557efbdc834240Johnny Chen};
248c3fba812b636dcdede81be622d557efbdc834240Johnny Chen
249c3fba812b636dcdede81be622d557efbdc834240Johnny Chen} // namespace lldb
250