<?xml version="1.0" encoding="ascii"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
          "DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <title>lldb.SBProcess</title>
  <link rel="stylesheet" href="epydoc.css" type="text/css" />
  <script type="text/javascript" src="epydoc.js"></script>
</head>

<body bgcolor="white" text="black" link="blue" vlink="#204080"
      alink="#204080">
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
       bgcolor="#a0c0ff" cellspacing="0">
  <tr valign="middle">

  <!-- Tree link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Index link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Help link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Project homepage -->
      <th class="navbar" align="right" width="100%">
        <table border="0" cellpadding="0" cellspacing="0">
          <tr><th class="navbar" align="center"
            ><a class="navbar" target="_top" href="http://lldb.llvm.org">LLDB python API</a></th>
          </tr></table></th>
  </tr>
</table>
<table width="100%" cellpadding="0" cellspacing="0">
  <tr valign="top">
    <td width="100%">
      <span class="breadcrumbs">
        <a href="lldb-module.html">Package&nbsp;lldb</a> ::
        Class&nbsp;SBProcess
      </span>
    </td>
    <td>
      <table cellpadding="0" cellspacing="0">
        <!-- hide/show private -->
        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
        <tr><td align="right"><span class="options"
            >[<a href="frames.html" target="_top">frames</a
            >]&nbsp;|&nbsp;<a href="lldb.SBProcess-class.html"
            target="_top">no&nbsp;frames</a>]</span></td></tr>
      </table>
    </td>
  </tr>
</table>
<!-- ==================== CLASS DESCRIPTION ==================== -->
<h1 class="epydoc">Class SBProcess</h1><p class="nomargin-top"><span class="codelink"><a href="lldb-pysrc.html#SBProcess">source&nbsp;code</a></span></p>
<center>
<center>  <map id="uml_class_diagram_for_lldb_sbp" name="uml_class_diagram_for_lldb_sbp">
<area shape="rect" id="node35" href="lldb.SBProcess-class.html#__swig_setmethods__" title="lldb.SBProcess.__swig_setmethods__" alt="" coords="17,31,197,49"/>
<area shape="rect" id="node35" href="lldb.SBProcess-class.html#__swig_getmethods__" title="lldb.SBProcess.__swig_getmethods__" alt="" coords="17,49,197,68"/>
<area shape="rect" id="node35" href="lldb.SBProcess-class.html#eBroadcastBitStateChanged" title="lldb.SBProcess.eBroadcastBitStateChanged" alt="" coords="17,68,197,87"/>
<area shape="rect" id="node35" href="lldb.SBProcess-class.html#eBroadcastBitInterrupt" title="lldb.SBProcess.eBroadcastBitInterrupt" alt="" coords="17,87,197,105"/>
<area shape="rect" id="node35" href="lldb.SBProcess-class.html#eBroadcastBitSTDOUT" title="lldb.SBProcess.eBroadcastBitSTDOUT" alt="" coords="17,105,197,124"/>
<area shape="rect" id="node35" href="lldb.SBProcess-class.html#eBroadcastBitSTDERR" title="lldb.SBProcess.eBroadcastBitSTDERR" alt="" coords="17,124,197,143"/>
<area shape="rect" id="node35" href="lldb.SBProcess-class.html#eBroadcastBitProfileData" title="lldb.SBProcess.eBroadcastBitProfileData" alt="" coords="17,143,197,161"/>
<area shape="rect" id="node35" href="lldb.SBProcess.threads_access-class.html" title="A helper object that will lazily hand out thread for a process when &#160;supplied an index." alt="" coords="17,161,197,180"/>
<area shape="rect" id="node35" href="lldb.SBProcess-class.html#broadcaster" title="A read only property that an lldb object that represents the broadcaster &#160;(lldb.SBBroadcaster) for this process." alt="" coords="17,180,197,199"/>
<area shape="rect" id="node35" href="lldb.SBProcess-class.html#exit_description" title="A read only property that returns an exit description as a string of this &#160;process when the process state is lldb.eStateExited." alt="" coords="17,199,197,217"/>
<area shape="rect" id="node35" href="lldb.SBProcess-class.html#exit_state" title="A read only property that returns an exit status as an integer of this &#160;process when the process state is lldb.eStateExited." alt="" coords="17,217,197,236"/>
<area shape="rect" id="node35" href="lldb.SBProcess-class.html#id" title="A read only property that returns the process ID as an integer." alt="" coords="17,236,197,255"/>
<area shape="rect" id="node35" href="lldb.SBProcess-class.html#is_alive" title="A read only property that returns a boolean value that indicates if this &#160;process is currently alive." alt="" coords="17,255,197,273"/>
<area shape="rect" id="node35" href="lldb.SBProcess-class.html#threads" title="A read only property that returns a list() of lldb.SBThread objects for &#160;this process." alt="" coords="17,292,197,311"/>
<area shape="rect" id="node35" href="lldb.SBProcess-class.html#__setattr__" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,313,197,332"/>
<area shape="rect" id="node35" href="lldb.SBProcess-class.html#__getattr__" title="lldb.SBProcess.__getattr__" alt="" coords="17,332,197,351"/>
<area shape="rect" id="node35" href="lldb.SBProcess-class.html#__repr__" title="repr(x)" alt="" coords="17,351,197,369"/>
<area shape="rect" id="node35" href="lldb.SBProcess-class.html#__iter__" title="lldb.SBProcess.__iter__" alt="" coords="17,369,197,388"/>
<area shape="rect" id="node35" href="lldb.SBProcess-class.html#__len__" title="lldb.SBProcess.__len__" alt="" coords="17,388,197,407"/>
<area shape="rect" id="node35" href="lldb.SBProcess-class.html#__init__" title="__init__(lldb::SBProcess self) &#45;&gt; SBProcess __init__(lldb::SBProcess self, &#160;SBProcess rhs) &#45;&gt; SBProcess" alt="" coords="17,407,197,425"/>
<area shape="rect" id="node35" href="lldb.SBProcess-class.html#__swig_destroy__" title="delete_SBProcess(SBProcess self)" alt="" coords="17,425,197,444"/>
<area shape="rect" id="node35" href="lldb.SBProcess-class.html#__del__" title="lldb.SBProcess.__del__" alt="" coords="17,444,197,463"/>
<area shape="rect" id="node35" href="lldb.SBProcess-class.html#GetBroadcasterClassName" title="lldb.SBProcess.GetBroadcasterClassName" alt="" coords="17,463,197,481"/>
<area shape="rect" id="node35" href="lldb.SBProcess-class.html#GetPluginName" title="GetPluginName(SBProcess self) &#45;&gt; str const *" alt="" coords="17,481,197,500"/>
<area shape="rect" id="node35" href="lldb.SBProcess-class.html#GetShortPluginName" title="GetShortPluginName(SBProcess self) &#45;&gt; str const *" alt="" coords="17,500,197,519"/>
<area shape="rect" id="node35" href="lldb.SBProcess-class.html#Clear" title="Clear(SBProcess self)" alt="" coords="17,519,197,537"/>
<area shape="rect" id="node35" href="lldb.SBProcess-class.html#__nonzero__" title="lldb.SBProcess.__nonzero__" alt="" coords="17,537,197,556"/>
<area shape="rect" id="node35" href="lldb.SBProcess-class.html#__str__" title="__str__(SBProcess self) &#45;&gt; PyObject *" alt="" coords="17,575,197,593"/>
<area shape="rect" id="node1" href="lldb.SBProcess-class.html" title="Represents the process associated with the target program." alt="" coords="5,6,208,599"/>
</map>
  <img src="uml_class_diagram_for_lldb_sbp.gif" alt='' usemap="#uml_class_diagram_for_lldb_sbp" ismap="ismap" class="graph-without-title" />
</center>
</center>
<hr />
<pre class="literalblock">

Represents the process associated with the target program.

SBProcess supports thread iteration. For example (from test/lldbutil.py),

# ==================================================
# Utility functions related to Threads and Processes
# ==================================================

def get_stopped_threads(process, reason):
    '''Returns the thread(s) with the specified stop reason in a list.

    The list can be empty if no such thread exists.
    '''
    threads = []
    for t in process:
        if t.GetStopReason() == reason:
            threads.append(t)
    return threads

...

</pre>

<!-- ==================== NESTED CLASSES ==================== -->
<a name="section-NestedClasses"></a>
<table class="summary" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Nested Classes</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-NestedClasses"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
        <a href="lldb.SBProcess.threads_access-class.html" class="summary-name">threads_access</a><br />
      A helper object that will lazily hand out thread for a process when
        supplied an index.
    </td>
  </tr>
</table>
<!-- ==================== INSTANCE METHODS ==================== -->
<a name="section-InstanceMethods"></a>
<table class="summary" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Instance Methods</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-InstanceMethods"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="lldb.SBProcess-class.html#__setattr__" class="summary-sig-name">__setattr__</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">name</span>,
        <span class="summary-sig-arg">value</span>)</span><br />
      x.__setattr__('name', value) &lt;==&gt; x.name = value</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.__setattr__">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="__getattr__"></a><span class="summary-sig-name">__getattr__</span>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">name</span>)</span></td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.__getattr__">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="lldb.SBProcess-class.html#__repr__" class="summary-sig-name">__repr__</a>(<span class="summary-sig-arg">self</span>)</span><br />
      repr(x)</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#_swig_repr">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="__iter__"></a><span class="summary-sig-name">__iter__</span>(<span class="summary-sig-arg">self</span>)</span></td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.__iter__">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="__len__"></a><span class="summary-sig-name">__len__</span>(<span class="summary-sig-arg">self</span>)</span></td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.__len__">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="lldb.SBProcess-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">*args</span>)</span><br />
      __init__(lldb::SBProcess self) -&gt; SBProcess 
      __init__(lldb::SBProcess self, SBProcess rhs) -&gt; SBProcess</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.__init__">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="__swig_destroy__"></a><span class="summary-sig-name">__swig_destroy__</span>(<span class="summary-sig-arg">...</span>)</span><br />
      delete_SBProcess(SBProcess self)</td>
          <td align="right" valign="top">
            
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="__del__"></a><span class="summary-sig-name">__del__</span>(<span class="summary-sig-arg">self</span>)</span></td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.__del__">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="GetPluginName"></a><span class="summary-sig-name">GetPluginName</span>(<span class="summary-sig-arg">self</span>)</span><br />
      GetPluginName(SBProcess self) -&gt; str const *</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.GetPluginName">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="GetShortPluginName"></a><span class="summary-sig-name">GetShortPluginName</span>(<span class="summary-sig-arg">self</span>)</span><br />
      GetShortPluginName(SBProcess self) -&gt; str const *</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.GetShortPluginName">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="Clear"></a><span class="summary-sig-name">Clear</span>(<span class="summary-sig-arg">self</span>)</span><br />
      Clear(SBProcess self)</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.Clear">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="__nonzero__"></a><span class="summary-sig-name">__nonzero__</span>(<span class="summary-sig-arg">self</span>)</span></td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.__nonzero__">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="IsValid"></a><span class="summary-sig-name">IsValid</span>(<span class="summary-sig-arg">self</span>)</span><br />
      IsValid(SBProcess self) -&gt; bool</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.IsValid">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="GetTarget"></a><span class="summary-sig-name">GetTarget</span>(<span class="summary-sig-arg">self</span>)</span><br />
      GetTarget(SBProcess self) -&gt; SBTarget</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.GetTarget">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="GetByteOrder"></a><span class="summary-sig-name">GetByteOrder</span>(<span class="summary-sig-arg">self</span>)</span><br />
      GetByteOrder(SBProcess self) -&gt; lldb::ByteOrder</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.GetByteOrder">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="lldb.SBProcess-class.html#PutSTDIN" class="summary-sig-name">PutSTDIN</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">*args</span>)</span><br />
      Writes data into the current process's stdin.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.PutSTDIN">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="lldb.SBProcess-class.html#GetSTDOUT" class="summary-sig-name">GetSTDOUT</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">*args</span>)</span><br />
      Reads data from the current process's stdout stream.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.GetSTDOUT">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="lldb.SBProcess-class.html#GetSTDERR" class="summary-sig-name">GetSTDERR</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">*args</span>)</span><br />
      Reads data from the current process's stderr stream.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.GetSTDERR">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="GetAsyncProfileData"></a><span class="summary-sig-name">GetAsyncProfileData</span>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">*args</span>)</span><br />
      GetAsyncProfileData(SBProcess self, str * dst) -&gt; size_t</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.GetAsyncProfileData">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="ReportEventState"></a><span class="summary-sig-name">ReportEventState</span>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">*args</span>)</span><br />
      ReportEventState(SBProcess self, SBEvent event, FILE * out)</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.ReportEventState">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="AppendEventStateReport"></a><span class="summary-sig-name">AppendEventStateReport</span>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">*args</span>)</span><br />
      AppendEventStateReport(SBProcess self, SBEvent event, 
      SBCommandReturnObject result)</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.AppendEventStateReport">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="lldb.SBProcess-class.html#RemoteAttachToProcessWithID" class="summary-sig-name">RemoteAttachToProcessWithID</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">*args</span>)</span><br />
      RemoteAttachToProcessWithID(SBProcess self, lldb::pid_t pid, SBError 
      error) -&gt; bool</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.RemoteAttachToProcessWithID">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="lldb.SBProcess-class.html#RemoteLaunch" class="summary-sig-name">RemoteLaunch</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">*args</span>)</span><br />
      RemoteLaunch(SBProcess self, str const ** argv, str const ** envp, str const * stdin_path, str const * stdout_path, 
    str const * stderr_path, str const * working_directory, uint32_t launch_flags, 
    bool stop_at_entry, SBError error) -&gt; bool</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.RemoteLaunch">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="GetNumThreads"></a><span class="summary-sig-name">GetNumThreads</span>(<span class="summary-sig-arg">self</span>)</span><br />
      GetNumThreads(SBProcess self) -&gt; uint32_t</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.GetNumThreads">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="lldb.SBProcess-class.html#GetThreadAtIndex" class="summary-sig-name">GetThreadAtIndex</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">*args</span>)</span><br />
      Returns the INDEX'th thread from the list of current threads.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.GetThreadAtIndex">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="GetThreadByID"></a><span class="summary-sig-name">GetThreadByID</span>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">*args</span>)</span><br />
      Returns the thread with the given thread ID.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.GetThreadByID">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="GetThreadByIndexID"></a><span class="summary-sig-name">GetThreadByIndexID</span>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">*args</span>)</span><br />
      Returns the thread with the given thread IndexID.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.GetThreadByIndexID">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="GetSelectedThread"></a><span class="summary-sig-name">GetSelectedThread</span>(<span class="summary-sig-arg">self</span>)</span><br />
      Returns the currently selected thread.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.GetSelectedThread">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="CreateOSPluginThread"></a><span class="summary-sig-name">CreateOSPluginThread</span>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">*args</span>)</span><br />
      Lazily create a thread on demand through the current OperatingSystem 
      plug-in, if the current OperatingSystem plug-in supports it.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.CreateOSPluginThread">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="SetSelectedThread"></a><span class="summary-sig-name">SetSelectedThread</span>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">*args</span>)</span><br />
      SetSelectedThread(SBProcess self, SBThread thread) -&gt; bool</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.SetSelectedThread">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="SetSelectedThreadByID"></a><span class="summary-sig-name">SetSelectedThreadByID</span>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">*args</span>)</span><br />
      SetSelectedThreadByID(SBProcess self, lldb::tid_t tid) -&gt; bool</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.SetSelectedThreadByID">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="SetSelectedThreadByIndexID"></a><span class="summary-sig-name">SetSelectedThreadByIndexID</span>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">*args</span>)</span><br />
      SetSelectedThreadByIndexID(SBProcess self, uint32_t index_id) -&gt; 
      bool</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.SetSelectedThreadByIndexID">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="GetState"></a><span class="summary-sig-name">GetState</span>(<span class="summary-sig-arg">self</span>)</span><br />
      GetState(SBProcess self) -&gt; lldb::StateType</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.GetState">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="GetExitStatus"></a><span class="summary-sig-name">GetExitStatus</span>(<span class="summary-sig-arg">self</span>)</span><br />
      GetExitStatus(SBProcess self) -&gt; int</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.GetExitStatus">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="GetExitDescription"></a><span class="summary-sig-name">GetExitDescription</span>(<span class="summary-sig-arg">self</span>)</span><br />
      GetExitDescription(SBProcess self) -&gt; str const *</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.GetExitDescription">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="GetProcessID"></a><span class="summary-sig-name">GetProcessID</span>(<span class="summary-sig-arg">self</span>)</span><br />
      Returns the process ID of the process.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.GetProcessID">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="lldb.SBProcess-class.html#GetUniqueID" class="summary-sig-name">GetUniqueID</a>(<span class="summary-sig-arg">self</span>)</span><br />
      Returns an integer ID that is guaranteed to be unique across all 
      process instances.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.GetUniqueID">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="GetAddressByteSize"></a><span class="summary-sig-name">GetAddressByteSize</span>(<span class="summary-sig-arg">self</span>)</span><br />
      GetAddressByteSize(SBProcess self) -&gt; uint32_t</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.GetAddressByteSize">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="lldb.SBProcess-class.html#Destroy" class="summary-sig-name">Destroy</a>(<span class="summary-sig-arg">self</span>)</span><br />
      Destroy(SBProcess self) -&gt; SBError</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.Destroy">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="Continue"></a><span class="summary-sig-name">Continue</span>(<span class="summary-sig-arg">self</span>)</span><br />
      Continue(SBProcess self) -&gt; SBError</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.Continue">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="Stop"></a><span class="summary-sig-name">Stop</span>(<span class="summary-sig-arg">self</span>)</span><br />
      Stop(SBProcess self) -&gt; SBError</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.Stop">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="Kill"></a><span class="summary-sig-name">Kill</span>(<span class="summary-sig-arg">self</span>)</span><br />
      Kill(SBProcess self) -&gt; SBError</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.Kill">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="Detach"></a><span class="summary-sig-name">Detach</span>(<span class="summary-sig-arg">self</span>)</span><br />
      Detach(SBProcess self) -&gt; SBError</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.Detach">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="lldb.SBProcess-class.html#Signal" class="summary-sig-name">Signal</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">*args</span>)</span><br />
      Signal(SBProcess self, int signal) -&gt; SBError</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.Signal">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="lldb.SBProcess-class.html#GetStopID" class="summary-sig-name">GetStopID</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">include_expression_stops</span>=<span class="summary-sig-default">False</span>)</span><br />
      GetStopID(SBProcess self, bool include_expression_stops=False) -&gt; 
      uint32_t GetStopID(SBProcess self) -&gt; uint32_t</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.GetStopID">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="SendAsyncInterrupt"></a><span class="summary-sig-name">SendAsyncInterrupt</span>(<span class="summary-sig-arg">self</span>)</span><br />
      SendAsyncInterrupt(SBProcess self)</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.SendAsyncInterrupt">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="lldb.SBProcess-class.html#ReadMemory" class="summary-sig-name">ReadMemory</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">*args</span>)</span><br />
      Reads memory from the current process's address space and removes any
      traps that may have been inserted into the memory.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.ReadMemory">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="lldb.SBProcess-class.html#WriteMemory" class="summary-sig-name">WriteMemory</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">*args</span>)</span><br />
      Writes memory to the current process's address space and maintains any
traps that might be present due to software breakpoints.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.WriteMemory">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="lldb.SBProcess-class.html#ReadCStringFromMemory" class="summary-sig-name">ReadCStringFromMemory</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">*args</span>)</span><br />
      Reads a NULL terminated C string from the current process's address space.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.ReadCStringFromMemory">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="lldb.SBProcess-class.html#ReadUnsignedFromMemory" class="summary-sig-name">ReadUnsignedFromMemory</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">*args</span>)</span><br />
      Reads an unsigned integer from memory given a byte size and an address.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.ReadUnsignedFromMemory">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="lldb.SBProcess-class.html#ReadPointerFromMemory" class="summary-sig-name">ReadPointerFromMemory</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">*args</span>)</span><br />
      Reads a pointer from memory from an address and returns the value.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.ReadPointerFromMemory">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="GetBroadcaster"></a><span class="summary-sig-name">GetBroadcaster</span>(<span class="summary-sig-arg">self</span>)</span><br />
      GetBroadcaster(SBProcess self) -&gt; SBBroadcaster</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.GetBroadcaster">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="GetDescription"></a><span class="summary-sig-name">GetDescription</span>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">*args</span>)</span><br />
      GetDescription(SBProcess self, SBStream description) -&gt; bool</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.GetDescription">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="GetNumSupportedHardwareWatchpoints"></a><span class="summary-sig-name">GetNumSupportedHardwareWatchpoints</span>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">*args</span>)</span><br />
      GetNumSupportedHardwareWatchpoints(SBProcess self, SBError error) 
      -&gt; uint32_t</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.GetNumSupportedHardwareWatchpoints">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="LoadImage"></a><span class="summary-sig-name">LoadImage</span>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">*args</span>)</span><br />
      LoadImage(SBProcess self, SBFileSpec image_spec, SBError error) -&gt;
      uint32_t</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.LoadImage">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="UnloadImage"></a><span class="summary-sig-name">UnloadImage</span>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">*args</span>)</span><br />
      UnloadImage(SBProcess self, uint32_t image_token) -&gt; SBError</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.UnloadImage">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="__get_is_alive__"></a><span class="summary-sig-name">__get_is_alive__</span>(<span class="summary-sig-arg">self</span>)</span><br />
      Returns &quot;True&quot; if the process is currently alive, 
      &quot;False&quot; otherwise</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.__get_is_alive__">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="__get_is_running__"></a><span class="summary-sig-name">__get_is_running__</span>(<span class="summary-sig-arg">self</span>)</span><br />
      Returns &quot;True&quot; if the process is currently stopped, 
      &quot;False&quot; otherwise</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.__get_is_running__">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="get_threads_access_object"></a><span class="summary-sig-name">get_threads_access_object</span>(<span class="summary-sig-arg">self</span>)</span><br />
      An accessor function that returns a modules_access() object which 
      allows lazy thread access from a lldb.SBProcess object.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.get_threads_access_object">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="get_process_thread_list"></a><span class="summary-sig-name">get_process_thread_list</span>(<span class="summary-sig-arg">self</span>)</span><br />
      An accessor function that returns a list() that contains all threads 
      in a lldb.SBProcess object.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.get_process_thread_list">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="lldb.SBProcess-class.html#__str__" class="summary-sig-name">__str__</a>(<span class="summary-sig-arg">self</span>)</span><br />
      __str__(SBProcess self) -&gt; PyObject *</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.__str__">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
  <tr>
    <td colspan="2" class="summary">
    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
      <code>__delattr__</code>,
      <code>__format__</code>,
      <code>__getattribute__</code>,
      <code>__hash__</code>,
      <code>__new__</code>,
      <code>__reduce__</code>,
      <code>__reduce_ex__</code>,
      <code>__sizeof__</code>,
      <code>__subclasshook__</code>
      </p>
    </td>
  </tr>
</table>
<!-- ==================== STATIC METHODS ==================== -->
<a name="section-StaticMethods"></a>
<table class="summary" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Static Methods</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-StaticMethods"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">str const *</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="GetBroadcasterClassName"></a><span class="summary-sig-name">GetBroadcasterClassName</span>()</span></td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.GetBroadcasterClassName">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="GetStateFromEvent"></a><span class="summary-sig-name">GetStateFromEvent</span>(<span class="summary-sig-arg">*args</span>)</span><br />
      GetStateFromEvent(SBEvent event) -&gt; lldb::StateType</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.GetStateFromEvent">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="GetRestartedFromEvent"></a><span class="summary-sig-name">GetRestartedFromEvent</span>(<span class="summary-sig-arg">*args</span>)</span><br />
      GetRestartedFromEvent(SBEvent event) -&gt; bool</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.GetRestartedFromEvent">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="GetNumRestartedReasonsFromEvent"></a><span class="summary-sig-name">GetNumRestartedReasonsFromEvent</span>(<span class="summary-sig-arg">*args</span>)</span><br />
      GetNumRestartedReasonsFromEvent(SBEvent event) -&gt; size_t</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.GetNumRestartedReasonsFromEvent">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="GetRestartedReasonAtIndexFromEvent"></a><span class="summary-sig-name">GetRestartedReasonAtIndexFromEvent</span>(<span class="summary-sig-arg">*args</span>)</span><br />
      GetRestartedReasonAtIndexFromEvent(SBEvent event, size_t idx) -&gt; 
      str const *</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.GetRestartedReasonAtIndexFromEvent">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="GetProcessFromEvent"></a><span class="summary-sig-name">GetProcessFromEvent</span>(<span class="summary-sig-arg">*args</span>)</span><br />
      GetProcessFromEvent(SBEvent event) -&gt; SBProcess</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.GetProcessFromEvent">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="EventIsProcessEvent"></a><span class="summary-sig-name">EventIsProcessEvent</span>(<span class="summary-sig-arg">*args</span>)</span><br />
      EventIsProcessEvent(SBEvent event) -&gt; bool</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="lldb-pysrc.html#SBProcess.EventIsProcessEvent">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
</table>
<!-- ==================== CLASS VARIABLES ==================== -->
<a name="section-ClassVariables"></a>
<table class="summary" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Class Variables</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-ClassVariables"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
        <a name="__swig_setmethods__"></a><span class="summary-name">__swig_setmethods__</span> = <code title="{}">{}</code>
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
        <a name="__swig_getmethods__"></a><span class="summary-name">__swig_getmethods__</span> = <code title="{}">{}</code>
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
        <a name="eBroadcastBitStateChanged"></a><span class="summary-name">eBroadcastBitStateChanged</span> = <code title="1">1</code>
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
        <a name="eBroadcastBitInterrupt"></a><span class="summary-name">eBroadcastBitInterrupt</span> = <code title="2">2</code>
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
        <a name="eBroadcastBitSTDOUT"></a><span class="summary-name">eBroadcastBitSTDOUT</span> = <code title="4">4</code>
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
        <a name="eBroadcastBitSTDERR"></a><span class="summary-name">eBroadcastBitSTDERR</span> = <code title="8">8</code>
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
        <a name="eBroadcastBitProfileData"></a><span class="summary-name">eBroadcastBitProfileData</span> = <code title="16">16</code>
    </td>
  </tr>
</table>
<!-- ==================== PROPERTIES ==================== -->
<a name="section-Properties"></a>
<table class="summary" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Properties</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-Properties"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
        <a href="lldb.SBProcess-class.html#broadcaster" class="summary-name">broadcaster</a><br />
      A read only property that an lldb object that represents the 
      broadcaster (lldb.SBBroadcaster) for this process.
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
        <a href="lldb.SBProcess-class.html#exit_description" class="summary-name">exit_description</a><br />
      A read only property that returns an exit description as a string of 
      this process when the process state is lldb.eStateExited.
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
        <a href="lldb.SBProcess-class.html#exit_state" class="summary-name">exit_state</a><br />
      A read only property that returns an exit status as an integer of 
      this process when the process state is lldb.eStateExited.
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
        <a href="lldb.SBProcess-class.html#id" class="summary-name">id</a><br />
      A read only property that returns the process ID as an integer.
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
        <a href="lldb.SBProcess-class.html#is_alive" class="summary-name">is_alive</a><br />
      A read only property that returns a boolean value that indicates if 
      this process is currently alive.
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
        <a href="lldb.SBProcess-class.html#is_running" class="summary-name">is_running</a><br />
      A read only property that returns a boolean value that indicates if 
      this process is currently running.
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
        <a href="lldb.SBProcess-class.html#is_stopped" class="summary-name">is_stopped</a><br />
      A read only property that returns a boolean value that indicates if 
      this process is currently stopped.
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
        <a href="lldb.SBProcess-class.html#num_threads" class="summary-name">num_threads</a><br />
      A read only property that returns the number of threads in this 
      process as an integer.
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
        <a href="lldb.SBProcess-class.html#selected_thread" class="summary-name">selected_thread</a><br />
      A read/write property that gets/sets the currently selected thread in
      this process.
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
        <a href="lldb.SBProcess-class.html#state" class="summary-name">state</a><br />
      A read only property that returns an lldb enumeration value (see 
      enumerations that start with &quot;lldb.eState&quot;) that represents
      the current state of this process (running, stopped, exited, etc.).
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
        <a href="lldb.SBProcess-class.html#target" class="summary-name">target</a><br />
      A read only property that an lldb object that represents the target 
      (lldb.SBTarget) that owns this process.
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
        <a href="lldb.SBProcess-class.html#thread" class="summary-name">thread</a><br />
      A read only property that returns an object that can access threads 
      by thread index (thread = lldb.process.thread[12]).
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
        <a href="lldb.SBProcess-class.html#threads" class="summary-name">threads</a><br />
      A read only property that returns a list() of lldb.SBThread objects 
      for this process.
    </td>
  </tr>
  <tr>
    <td colspan="2" class="summary">
    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
      <code>__class__</code>
      </p>
    </td>
  </tr>
</table>
<!-- ==================== METHOD DETAILS ==================== -->
<a name="section-MethodDetails"></a>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Method Details</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-MethodDetails"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
</table>
<a name="__setattr__"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">__setattr__</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">name</span>,
        <span class="sig-arg">value</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="lldb-pysrc.html#SBProcess.__setattr__">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>x.__setattr__('name', value) &lt;==&gt; x.name = value</p>
  <dl class="fields">
    <dt>Overrides:
        object.__setattr__
        <dd><em class="note">(inherited documentation)</em></dd>
    </dt>
  </dl>
</td></tr></table>
</div>
<a name="__repr__"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">__repr__</span>(<span class="sig-arg">self</span>)</span>
    <br /><em class="fname">(Representation operator)</em>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="lldb-pysrc.html#_swig_repr">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>repr(x)</p>
  <dl class="fields">
    <dt>Overrides:
        object.__repr__
        <dd><em class="note">(inherited documentation)</em></dd>
    </dt>
  </dl>
</td></tr></table>
</div>
<a name="__init__"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">*args</span>)</span>
    <br /><em class="fname">(Constructor)</em>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="lldb-pysrc.html#SBProcess.__init__">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>__init__(lldb::SBProcess self) -&gt; SBProcess 
  __init__(lldb::SBProcess self, SBProcess rhs) -&gt; SBProcess</p>
  <dl class="fields">
    <dt>Overrides:
        object.__init__
    </dt>
  </dl>
</td></tr></table>
</div>
<a name="PutSTDIN"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">PutSTDIN</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">*args</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="lldb-pysrc.html#SBProcess.PutSTDIN">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Writes data into the current process's stdin. API client specifies a 
  Python string as the only argument.</p>
  <dl class="fields">
  </dl>
</td></tr></table>
</div>
<a name="GetSTDOUT"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">GetSTDOUT</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">*args</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="lldb-pysrc.html#SBProcess.GetSTDOUT">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Reads data from the current process's stdout stream. API client 
  specifies the size of the buffer to read data into. It returns the byte 
  buffer in a Python string.</p>
  <dl class="fields">
  </dl>
</td></tr></table>
</div>
<a name="GetSTDERR"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">GetSTDERR</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">*args</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="lldb-pysrc.html#SBProcess.GetSTDERR">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Reads data from the current process's stderr stream. API client 
  specifies the size of the buffer to read data into. It returns the byte 
  buffer in a Python string.</p>
  <dl class="fields">
  </dl>
</td></tr></table>
</div>
<a name="RemoteAttachToProcessWithID"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">RemoteAttachToProcessWithID</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">*args</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="lldb-pysrc.html#SBProcess.RemoteAttachToProcessWithID">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>RemoteAttachToProcessWithID(SBProcess self, lldb::pid_t pid, SBError 
  error) -&gt; bool</p>
  <p>Remote connection related functions. These will fail if the process is
  not in eStateConnected. They are intended for use when connecting to an 
  externally managed debugserver instance.</p>
  <dl class="fields">
  </dl>
</td></tr></table>
</div>
<a name="RemoteLaunch"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">RemoteLaunch</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">*args</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="lldb-pysrc.html#SBProcess.RemoteLaunch">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <pre class="literalblock">

RemoteLaunch(SBProcess self, str const ** argv, str const ** envp, str const * stdin_path, str const * stdout_path, 
    str const * stderr_path, str const * working_directory, uint32_t launch_flags, 
    bool stop_at_entry, SBError error) -&gt; bool

See SBTarget.Launch for argument description and usage.

</pre>
  <dl class="fields">
  </dl>
</td></tr></table>
</div>
<a name="GetThreadAtIndex"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">GetThreadAtIndex</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">*args</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="lldb-pysrc.html#SBProcess.GetThreadAtIndex">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Returns the INDEX'th thread from the list of current threads.  The 
  index of a thread is only valid for the current stop.  For a persistent 
  thread identifier use either the thread ID or the IndexID.  See help on 
  SBThread for more details.</p>
  <dl class="fields">
  </dl>
</td></tr></table>
</div>
<a name="GetUniqueID"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">GetUniqueID</span>(<span class="sig-arg">self</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="lldb-pysrc.html#SBProcess.GetUniqueID">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Returns an integer ID that is guaranteed to be unique across all 
  process instances. This is not the process ID, just a unique integer for 
  comparison and caching purposes.</p>
  <dl class="fields">
  </dl>
</td></tr></table>
</div>
<a name="Destroy"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">Destroy</span>(<span class="sig-arg">self</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="lldb-pysrc.html#SBProcess.Destroy">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Destroy(SBProcess self) -&gt; SBError</p>
  <p>Kills the process and shuts down all threads that were spawned to 
  track and monitor process.</p>
  <dl class="fields">
  </dl>
</td></tr></table>
</div>
<a name="Signal"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">Signal</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">*args</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="lldb-pysrc.html#SBProcess.Signal">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Signal(SBProcess self, int signal) -&gt; SBError</p>
  <p>Sends the process a unix signal.</p>
  <dl class="fields">
  </dl>
</td></tr></table>
</div>
<a name="GetStopID"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">GetStopID</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">include_expression_stops</span>=<span class="sig-default">False</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="lldb-pysrc.html#SBProcess.GetStopID">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>GetStopID(SBProcess self, bool include_expression_stops=False) -&gt; 
  uint32_t GetStopID(SBProcess self) -&gt; uint32_t</p>
  <p>Returns a stop id that will increase every time the process executes.
  If include_expression_stops is true, then stops caused by expression 
  evaluation will cause the returned value to increase, otherwise the 
  counter returned will only increase when execution is continued 
  explicitly by the user.  Note, the value will always increase, but may 
  increase by more than one per stop.</p>
  <dl class="fields">
  </dl>
</td></tr></table>
</div>
<a name="ReadMemory"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">ReadMemory</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">*args</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="lldb-pysrc.html#SBProcess.ReadMemory">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Reads memory from the current process's address space and removes any 
  traps that may have been inserted into the memory. It returns the byte 
  buffer in a Python string. Example:</p>
  <p># Read 4 bytes from address 'addr' and assume error.Success() is True.
  content = process.ReadMemory(addr, 4, error) # Use 'ascii' encoding as 
  each byte of 'content' is within [0..255]. new_bytes = bytearray(content,
  'ascii')</p>
  <dl class="fields">
  </dl>
</td></tr></table>
</div>
<a name="WriteMemory"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">WriteMemory</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">*args</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="lldb-pysrc.html#SBProcess.WriteMemory">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <pre class="literalblock">

Writes memory to the current process's address space and maintains any
traps that might be present due to software breakpoints. Example:

# Create a Python string from the byte array.
new_value = str(bytes)
result = process.WriteMemory(addr, new_value, error)
if not error.Success() or result != len(bytes):
    print 'SBProcess.WriteMemory() failed!'

</pre>
  <dl class="fields">
  </dl>
</td></tr></table>
</div>
<a name="ReadCStringFromMemory"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">ReadCStringFromMemory</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">*args</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="lldb-pysrc.html#SBProcess.ReadCStringFromMemory">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <pre class="literalblock">

Reads a NULL terminated C string from the current process's address space.
It returns a python string of the exact length, or truncates the string if
the maximum stracter limit is reached. Example:

# Read a C string of at most 256 bytes from address '0x1000' 
error = lldb.SBError()
cstring = process.ReadCStringFromMemory(0x1000, 256, error)
if error.Success():
    print 'cstring: ', cstring
else
    print 'error: ', error

</pre>
  <dl class="fields">
  </dl>
</td></tr></table>
</div>
<a name="ReadUnsignedFromMemory"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">ReadUnsignedFromMemory</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">*args</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="lldb-pysrc.html#SBProcess.ReadUnsignedFromMemory">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <pre class="literalblock">

Reads an unsigned integer from memory given a byte size and an address. 
Returns the unsigned integer that was read. Example:

# Read a 4 byte unsigned integer from address 0x1000
error = lldb.SBError()
uint = ReadUnsignedFromMemory(0x1000, 4, error)
if error.Success():
    print 'integer: %u' % uint
else
    print 'error: ', error

</pre>
  <dl class="fields">
  </dl>
</td></tr></table>
</div>
<a name="ReadPointerFromMemory"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">ReadPointerFromMemory</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">*args</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="lldb-pysrc.html#SBProcess.ReadPointerFromMemory">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <pre class="literalblock">

Reads a pointer from memory from an address and returns the value. Example:

# Read a pointer from address 0x1000
error = lldb.SBError()
ptr = ReadPointerFromMemory(0x1000, error)
if error.Success():
    print 'pointer: 0x%x' % ptr
else
    print 'error: ', error

</pre>
  <dl class="fields">
  </dl>
</td></tr></table>
</div>
<a name="__str__"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">__str__</span>(<span class="sig-arg">self</span>)</span>
    <br /><em class="fname">(Informal representation operator)</em>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="lldb-pysrc.html#SBProcess.__str__">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>__str__(SBProcess self) -&gt; PyObject *</p>
  <dl class="fields">
    <dt>Overrides:
        object.__str__
    </dt>
  </dl>
</td></tr></table>
</div>
<br />
<!-- ==================== PROPERTY DETAILS ==================== -->
<a name="section-PropertyDetails"></a>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Property Details</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-PropertyDetails"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
</table>
<a name="broadcaster"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <h3 class="epydoc">broadcaster</h3>
  <p>A read only property that an lldb object that represents the 
  broadcaster (lldb.SBBroadcaster) for this process.</p>
  <dl class="fields">
    <dt>Get Method:</dt>
    <dd class="value"><span class="summary-sig"><a href="lldb.SBProcess-class.html#GetBroadcaster" class="summary-sig-name">GetBroadcaster</a>(<span class="summary-sig-arg">self</span>)</span>
        - GetBroadcaster(SBProcess self) -&gt; SBBroadcaster
    </dd>
  </dl>
</td></tr></table>
</div>
<a name="exit_description"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <h3 class="epydoc">exit_description</h3>
  <p>A read only property that returns an exit description as a string of 
  this process when the process state is lldb.eStateExited.</p>
  <dl class="fields">
    <dt>Get Method:</dt>
    <dd class="value"><span class="summary-sig"><a href="lldb.SBProcess-class.html#GetExitDescription" class="summary-sig-name">GetExitDescription</a>(<span class="summary-sig-arg">self</span>)</span>
        - GetExitDescription(SBProcess self) -&gt; str const *
    </dd>
  </dl>
</td></tr></table>
</div>
<a name="exit_state"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <h3 class="epydoc">exit_state</h3>
  <p>A read only property that returns an exit status as an integer of this
  process when the process state is lldb.eStateExited.</p>
  <dl class="fields">
    <dt>Get Method:</dt>
    <dd class="value"><span class="summary-sig"><a href="lldb.SBProcess-class.html#GetExitStatus" class="summary-sig-name">GetExitStatus</a>(<span class="summary-sig-arg">self</span>)</span>
        - GetExitStatus(SBProcess self) -&gt; int
    </dd>
  </dl>
</td></tr></table>
</div>
<a name="id"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <h3 class="epydoc">id</h3>
  <p>A read only property that returns the process ID as an integer.</p>
  <dl class="fields">
    <dt>Get Method:</dt>
    <dd class="value"><span class="summary-sig"><a href="lldb.SBProcess-class.html#GetProcessID" class="summary-sig-name">GetProcessID</a>(<span class="summary-sig-arg">self</span>)</span>
        - Returns the process ID of the process.
    </dd>
  </dl>
</td></tr></table>
</div>
<a name="is_alive"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <h3 class="epydoc">is_alive</h3>
  <p>A read only property that returns a boolean value that indicates if 
  this process is currently alive.</p>
  <dl class="fields">
    <dt>Get Method:</dt>
    <dd class="value"><span class="summary-sig"><a href="lldb.SBProcess-class.html#__get_is_alive__" class="summary-sig-name">__get_is_alive__</a>(<span class="summary-sig-arg">self</span>)</span>
        - Returns &quot;True&quot; if the process is currently alive, 
      &quot;False&quot; otherwise
    </dd>
  </dl>
</td></tr></table>
</div>
<a name="is_running"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <h3 class="epydoc">is_running</h3>
  <p>A read only property that returns a boolean value that indicates if 
  this process is currently running.</p>
  <dl class="fields">
    <dt>Get Method:</dt>
    <dd class="value"><span class="summary-sig"><a href="lldb.SBProcess-class.html#__get_is_running__" class="summary-sig-name">__get_is_running__</a>(<span class="summary-sig-arg">self</span>)</span>
        - Returns &quot;True&quot; if the process is currently stopped, 
      &quot;False&quot; otherwise
    </dd>
  </dl>
</td></tr></table>
</div>
<a name="is_stopped"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <h3 class="epydoc">is_stopped</h3>
  <p>A read only property that returns a boolean value that indicates if 
  this process is currently stopped.</p>
  <dl class="fields">
    <dt>Get Method:</dt>
    <dd class="value"><span class="summary-sig"><a href="lldb.SBProcess-class.html#__get_is_running__" class="summary-sig-name">__get_is_running__</a>(<span class="summary-sig-arg">self</span>)</span>
        - Returns &quot;True&quot; if the process is currently stopped, 
      &quot;False&quot; otherwise
    </dd>
  </dl>
</td></tr></table>
</div>
<a name="num_threads"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <h3 class="epydoc">num_threads</h3>
  <p>A read only property that returns the number of threads in this 
  process as an integer.</p>
  <dl class="fields">
    <dt>Get Method:</dt>
    <dd class="value"><span class="summary-sig"><a href="lldb.SBProcess-class.html#GetNumThreads" class="summary-sig-name">GetNumThreads</a>(<span class="summary-sig-arg">self</span>)</span>
        - GetNumThreads(SBProcess self) -&gt; uint32_t
    </dd>
  </dl>
</td></tr></table>
</div>
<a name="selected_thread"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <h3 class="epydoc">selected_thread</h3>
  <p>A read/write property that gets/sets the currently selected thread in 
  this process. The getter returns a lldb.SBThread object and the setter 
  takes an lldb.SBThread object.</p>
  <dl class="fields">
    <dt>Get Method:</dt>
    <dd class="value"><span class="summary-sig"><a href="lldb.SBProcess-class.html#GetSelectedThread" class="summary-sig-name">GetSelectedThread</a>(<span class="summary-sig-arg">self</span>)</span>
        - Returns the currently selected thread.
    </dd>
    <dt>Set Method:</dt>
    <dd class="value"><span class="summary-sig"><a href="lldb.SBProcess-class.html#SetSelectedThread" class="summary-sig-name">SetSelectedThread</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">*args</span>)</span>
        - SetSelectedThread(SBProcess self, SBThread thread) -&gt; bool
    </dd>
  </dl>
</td></tr></table>
</div>
<a name="state"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <h3 class="epydoc">state</h3>
  <p>A read only property that returns an lldb enumeration value (see 
  enumerations that start with &quot;lldb.eState&quot;) that represents the
  current state of this process (running, stopped, exited, etc.).</p>
  <dl class="fields">
    <dt>Get Method:</dt>
    <dd class="value"><span class="summary-sig"><a href="lldb.SBProcess-class.html#GetState" class="summary-sig-name">GetState</a>(<span class="summary-sig-arg">self</span>)</span>
        - GetState(SBProcess self) -&gt; lldb::StateType
    </dd>
  </dl>
</td></tr></table>
</div>
<a name="target"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <h3 class="epydoc">target</h3>
  <p>A read only property that an lldb object that represents the target 
  (lldb.SBTarget) that owns this process.</p>
  <dl class="fields">
    <dt>Get Method:</dt>
    <dd class="value"><span class="summary-sig"><a href="lldb.SBProcess-class.html#GetTarget" class="summary-sig-name">GetTarget</a>(<span class="summary-sig-arg">self</span>)</span>
        - GetTarget(SBProcess self) -&gt; SBTarget
    </dd>
  </dl>
</td></tr></table>
</div>
<a name="thread"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <h3 class="epydoc">thread</h3>
  <p>A read only property that returns an object that can access threads by
  thread index (thread = lldb.process.thread[12]).</p>
  <dl class="fields">
    <dt>Get Method:</dt>
    <dd class="value"><span class="summary-sig"><a href="lldb.SBProcess-class.html#get_threads_access_object" class="summary-sig-name">get_threads_access_object</a>(<span class="summary-sig-arg">self</span>)</span>
        - An accessor function that returns a modules_access() object which 
      allows lazy thread access from a lldb.SBProcess object.
    </dd>
  </dl>
</td></tr></table>
</div>
<a name="threads"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <h3 class="epydoc">threads</h3>
  <p>A read only property that returns a list() of lldb.SBThread objects 
  for this process.</p>
  <dl class="fields">
    <dt>Get Method:</dt>
    <dd class="value"><span class="summary-sig"><a href="lldb.SBProcess-class.html#get_process_thread_list" class="summary-sig-name">get_process_thread_list</a>(<span class="summary-sig-arg">self</span>)</span>
        - An accessor function that returns a list() that contains all threads 
      in a lldb.SBProcess object.
    </dd>
  </dl>
</td></tr></table>
</div>
<br />
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
       bgcolor="#a0c0ff" cellspacing="0">
  <tr valign="middle">

  <!-- Tree link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Index link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Help link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Project homepage -->
      <th class="navbar" align="right" width="100%">
        <table border="0" cellpadding="0" cellspacing="0">
          <tr><th class="navbar" align="center"
            ><a class="navbar" target="_top" href="http://lldb.llvm.org">LLDB python API</a></th>
          </tr></table></th>
  </tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
  <tr>
    <td align="left" class="footer">
    Generated by Epydoc 3.0.1 on Fri Jul 19 13:22:35 2013
    </td>
    <td align="right" class="footer">
      <a target="mainFrame" href="http://epydoc.sourceforge.net"
        >http://epydoc.sourceforge.net</a>
    </td>
  </tr>
</table>

<script type="text/javascript">
  <!--
  // Private objects are initially displayed (because if
  // javascript is turned off then we want them to be
  // visible); but by default, we want to hide them.  So hide
  // them unless we have a cookie that says to show them.
  checkCookie();
  // -->
</script>
</body>
</html>
