<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.18"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Crashpad: crashpad::ProcessReaderLinux Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="crashpad_doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Crashpad
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespacecrashpad.html">crashpad</a></li><li class="navelem"><a class="el" href="classcrashpad_1_1ProcessReaderLinux.html">ProcessReaderLinux</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classcrashpad_1_1ProcessReaderLinux-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">crashpad::ProcessReaderLinux Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Accesses information about another process, identified by a process ID.  
 <a href="classcrashpad_1_1ProcessReaderLinux.html#details">More...</a></p>

<p><code>#include &quot;snapshot/linux/process_reader_linux.h&quot;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1ProcessReaderLinux_1_1Module.html">Module</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Contains information about a module loaded into a process.  <a href="structcrashpad_1_1ProcessReaderLinux_1_1Module.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1ProcessReaderLinux_1_1Thread.html">Thread</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Contains information about a thread that belongs to a process.  <a href="structcrashpad_1_1ProcessReaderLinux_1_1Thread.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aeccfb99bc8d10ef1425bc0d5ff1ed8ab"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ProcessReaderLinux.html#aeccfb99bc8d10ef1425bc0d5ff1ed8ab">Initialize</a> (<a class="el" href="classcrashpad_1_1PtraceConnection.html">PtraceConnection</a> *connection)</td></tr>
<tr class="memdesc:aeccfb99bc8d10ef1425bc0d5ff1ed8ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes this object.  <a href="classcrashpad_1_1ProcessReaderLinux.html#aeccfb99bc8d10ef1425bc0d5ff1ed8ab">More...</a><br /></td></tr>
<tr class="separator:aeccfb99bc8d10ef1425bc0d5ff1ed8ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab28b9ef9fff6a54f68e0ced27c9c70a4"><td class="memItemLeft" align="right" valign="top"><a id="ab28b9ef9fff6a54f68e0ced27c9c70a4"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ProcessReaderLinux.html#ab28b9ef9fff6a54f68e0ced27c9c70a4">Is64Bit</a> () const</td></tr>
<tr class="memdesc:ab28b9ef9fff6a54f68e0ced27c9c70a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return <code>true</code> if the target task is a 64-bit process. <br /></td></tr>
<tr class="separator:ab28b9ef9fff6a54f68e0ced27c9c70a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2aed192b15e9c349b289bfc7667a9c75"><td class="memItemLeft" align="right" valign="top"><a id="a2aed192b15e9c349b289bfc7667a9c75"></a>
pid_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ProcessReaderLinux.html#a2aed192b15e9c349b289bfc7667a9c75">ProcessID</a> () const</td></tr>
<tr class="memdesc:a2aed192b15e9c349b289bfc7667a9c75"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the target process' process ID. <br /></td></tr>
<tr class="separator:a2aed192b15e9c349b289bfc7667a9c75"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1efafe7eefe2c9d23695ce53e405b154"><td class="memItemLeft" align="right" valign="top"><a id="a1efafe7eefe2c9d23695ce53e405b154"></a>
pid_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ProcessReaderLinux.html#a1efafe7eefe2c9d23695ce53e405b154">ParentProcessID</a> () const</td></tr>
<tr class="memdesc:a1efafe7eefe2c9d23695ce53e405b154"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the target process' parent process ID. <br /></td></tr>
<tr class="separator:a1efafe7eefe2c9d23695ce53e405b154"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a36be160eb9e6969bdad9fa29d98ee47b"><td class="memItemLeft" align="right" valign="top"><a id="a36be160eb9e6969bdad9fa29d98ee47b"></a>
const <a class="el" href="classcrashpad_1_1ProcessMemory.html">ProcessMemory</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ProcessReaderLinux.html#a36be160eb9e6969bdad9fa29d98ee47b">Memory</a> () const</td></tr>
<tr class="memdesc:a36be160eb9e6969bdad9fa29d98ee47b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a memory reader for the target process. <br /></td></tr>
<tr class="separator:a36be160eb9e6969bdad9fa29d98ee47b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb4f75965d3d3b250e23a94f3c455e0d"><td class="memItemLeft" align="right" valign="top"><a id="abb4f75965d3d3b250e23a94f3c455e0d"></a>
<a class="el" href="classcrashpad_1_1MemoryMap.html">MemoryMap</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ProcessReaderLinux.html#abb4f75965d3d3b250e23a94f3c455e0d">GetMemoryMap</a> ()</td></tr>
<tr class="memdesc:abb4f75965d3d3b250e23a94f3c455e0d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a memory map of the target process. <br /></td></tr>
<tr class="separator:abb4f75965d3d3b250e23a94f3c455e0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6966b2847801bb4f26c6e0e87a17d64b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ProcessReaderLinux.html#a6966b2847801bb4f26c6e0e87a17d64b">StartTime</a> (timeval *start_time) const</td></tr>
<tr class="memdesc:a6966b2847801bb4f26c6e0e87a17d64b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines the target process’&#160;start time.  <a href="classcrashpad_1_1ProcessReaderLinux.html#a6966b2847801bb4f26c6e0e87a17d64b">More...</a><br /></td></tr>
<tr class="separator:a6966b2847801bb4f26c6e0e87a17d64b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ef39d8c1b54fe2ad6aafb809b7bb47b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ProcessReaderLinux.html#a4ef39d8c1b54fe2ad6aafb809b7bb47b">CPUTimes</a> (timeval *user_time, timeval *system_time) const</td></tr>
<tr class="memdesc:a4ef39d8c1b54fe2ad6aafb809b7bb47b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines the target process’&#160;execution time.  <a href="classcrashpad_1_1ProcessReaderLinux.html#a4ef39d8c1b54fe2ad6aafb809b7bb47b">More...</a><br /></td></tr>
<tr class="separator:a4ef39d8c1b54fe2ad6aafb809b7bb47b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa531c107080217b2756375b077458c0f"><td class="memItemLeft" align="right" valign="top"><a id="aa531c107080217b2756375b077458c0f"></a>
const std::vector&lt; <a class="el" href="structcrashpad_1_1ProcessReaderLinux_1_1Thread.html">Thread</a> &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ProcessReaderLinux.html#aa531c107080217b2756375b077458c0f">Threads</a> ()</td></tr>
<tr class="memdesc:aa531c107080217b2756375b077458c0f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a vector of threads that are in the task process. If the main thread is able to be identified and traced, it will be placed at index <code>0</code>. <br /></td></tr>
<tr class="separator:aa531c107080217b2756375b077458c0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4f48a14f9cf5630fa0ace63ff0e61602"><td class="memItemLeft" align="right" valign="top">const std::vector&lt; <a class="el" href="structcrashpad_1_1ProcessReaderLinux_1_1Module.html">Module</a> &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ProcessReaderLinux.html#a4f48a14f9cf5630fa0ace63ff0e61602">Modules</a> ()</td></tr>
<tr class="separator:a4f48a14f9cf5630fa0ace63ff0e61602"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a78f635e7801233ea0976321e7a0f4a04"><td class="memItemLeft" align="right" valign="top">const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ProcessReaderLinux.html#a78f635e7801233ea0976321e7a0f4a04">AbortMessage</a> ()</td></tr>
<tr class="separator:a78f635e7801233ea0976321e7a0f4a04"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Accesses information about another process, identified by a process ID. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a78f635e7801233ea0976321e7a0f4a04"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a78f635e7801233ea0976321e7a0f4a04">&#9670;&nbsp;</a></span>AbortMessage()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const std::string &amp; crashpad::ProcessReaderLinux::AbortMessage </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>On Android, the abort message that was passed to android_set_abort_message(). This is only available on Q or later. </dd></dl>

</div>
</div>
<a id="a4ef39d8c1b54fe2ad6aafb809b7bb47b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4ef39d8c1b54fe2ad6aafb809b7bb47b">&#9670;&nbsp;</a></span>CPUTimes()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool crashpad::ProcessReaderLinux::CPUTimes </td>
          <td>(</td>
          <td class="paramtype">timeval *&#160;</td>
          <td class="paramname"><em>user_time</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">timeval *&#160;</td>
          <td class="paramname"><em>system_time</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Determines the target process’&#160;execution time. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">user_time</td><td>The amount of time the process has executed code in user mode. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">system_time</td><td>The amount of time the process has executed code in system mode.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> on success, <code>false</code> on failure, with a warning logged. On failure, <em>user_time</em> and <em>system_time</em> will be set to represent no time spent executing code in user or system mode. </dd></dl>

</div>
</div>
<a id="aeccfb99bc8d10ef1425bc0d5ff1ed8ab"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeccfb99bc8d10ef1425bc0d5ff1ed8ab">&#9670;&nbsp;</a></span>Initialize()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool crashpad::ProcessReaderLinux::Initialize </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classcrashpad_1_1PtraceConnection.html">PtraceConnection</a> *&#160;</td>
          <td class="paramname"><em>connection</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initializes this object. </p>
<p>This method must be successfully called before calling any other method in this class and may only be called once.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">connection</td><td>A <a class="el" href="classcrashpad_1_1PtraceConnection.html" title="Provides an interface for making ptrace requests against a process and its threads.">PtraceConnection</a> to the target process. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> on success. <code>false</code> on failure with a message logged. </dd></dl>

</div>
</div>
<a id="a4f48a14f9cf5630fa0ace63ff0e61602"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4f48a14f9cf5630fa0ace63ff0e61602">&#9670;&nbsp;</a></span>Modules()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const std::vector&lt; <a class="el" href="structcrashpad_1_1ProcessReaderLinux_1_1Module.html">ProcessReaderLinux::Module</a> &gt; &amp; crashpad::ProcessReaderLinux::Modules </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The modules loaded in the process. The first element (at index <code>0</code>) corresponds to the main executable. </dd></dl>

</div>
</div>
<a id="a6966b2847801bb4f26c6e0e87a17d64b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6966b2847801bb4f26c6e0e87a17d64b">&#9670;&nbsp;</a></span>StartTime()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool crashpad::ProcessReaderLinux::StartTime </td>
          <td>(</td>
          <td class="paramtype">timeval *&#160;</td>
          <td class="paramname"><em>start_time</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Determines the target process’&#160;start time. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">start_time</td><td>The time that the process started. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> on success with <em>start_time</em> set. Otherwise <code>false</code> with a message logged. </dd></dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>snapshot/linux/process_reader_linux.h</li>
<li>snapshot/linux/process_reader_linux.cc</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.18
</small></address>
</body>
</html>
