You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
arthas/en/watch.html

567 lines
33 KiB
HTML

6 years ago
<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>watch &mdash; Arthas 3.0.6-SNAPSHOT documentation</title>
6 years ago
<link rel="shortcut icon" href="_static/favicon.ico"/>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="_static/overrides.css" type="text/css" />
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
6 years ago
<link rel="next" title="Fundamental Fields in Expressions" href="advice-class.html" />
6 years ago
<link rel="prev" title="monitor" href="monitor.html" />
<script src="_static/center_page.js"></script>
<script src="_static/js/modernizr.min.js"></script>
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search">
<a href="index.html" class="icon icon-home"> Arthas
</a>
<div class="version">
3.0.6-SNAPSHOT
6 years ago
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="install-detail.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="quick-start.html">Quick start</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="commands.html">Commands</a><ul class="current">
6 years ago
<li class="toctree-l2"><a class="reference internal" href="dashboard.html">dashboard</a></li>
<li class="toctree-l2"><a class="reference internal" href="thread.html">thread</a></li>
<li class="toctree-l2"><a class="reference internal" href="jvm.html">jvm</a></li>
<li class="toctree-l2"><a class="reference internal" href="sysprop.html">sysprop</a></li>
<li class="toctree-l2"><a class="reference internal" href="sysenv.html">sysenv</a></li>
6 years ago
<li class="toctree-l2"><a class="reference internal" href="getstatic.html">getstatic</a></li>
<li class="toctree-l2"><a class="reference internal" href="ognl.html">ognl</a></li>
6 years ago
<li class="toctree-l2"><a class="reference internal" href="sc.html">sc</a></li>
<li class="toctree-l2"><a class="reference internal" href="sm.html">sm</a></li>
<li class="toctree-l2"><a class="reference internal" href="dump.html">dump</a></li>
<li class="toctree-l2"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l2"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l2"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l2"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">watch</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#parameters-options">Parameters &amp; Options</a><ul>
<li class="toctree-l4"><a class="reference internal" href="advice-class.html">Critical fields in</a></li>
<li class="toctree-l4"><a class="reference external" href="https://github.com/alibaba/arthas/issues/71">Special usages</a></li>
<li class="toctree-l4"><a class="reference external" href="https://commons.apache.org/proper/commons-ognl/language-guide.html">OGNL official guide</a></li>
6 years ago
</ul>
</li>
6 years ago
<li class="toctree-l3"><a class="reference internal" href="#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#check-the-out-parameters-and-return-value">Check the <code class="docutils literal notranslate"><span class="pre">out</span> <span class="pre">parameters</span></code> and <code class="docutils literal notranslate"><span class="pre">return</span> <span class="pre">value</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="#check-in-parameters">Check <code class="docutils literal notranslate"><span class="pre">in</span> <span class="pre">parameters</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="#check-before-and-after-at-the-same-time">Check <em>before</em> and <em>after</em> at the same time</a></li>
<li class="toctree-l4"><a class="reference internal" href="#use-x-to-check-more-details">Use <code class="docutils literal notranslate"><span class="pre">-x</span></code> to check more details</a></li>
<li class="toctree-l4"><a class="reference internal" href="#use-condition-expressions-to-locate-specific-call">Use condition expressions to locate specific call</a></li>
<li class="toctree-l4"><a class="reference internal" href="#check-exceptions">Check <code class="docutils literal notranslate"><span class="pre">exceptions</span></code></a></li>
6 years ago
<li class="toctree-l4"><a class="reference internal" href="#filter-by-time-cost">Filter by time cost</a></li>
<li class="toctree-l4"><a class="reference internal" href="#check-the-field-of-the-target-object">Check the field of the target object</a></li>
6 years ago
</ul>
</li>
</ul>
</li>
6 years ago
<li class="toctree-l2"><a class="reference internal" href="trace.html">trace</a></li>
<li class="toctree-l2"><a class="reference internal" href="stack.html">stack</a></li>
<li class="toctree-l2"><a class="reference internal" href="tt.html">tt</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>
6 years ago
<li class="toctree-l2"><a class="reference internal" href="commands.html#basic-arthas-commands">Basic Arthas Commands</a></li>
6 years ago
</ul>
</li>
6 years ago
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Auser-case">User cases</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li>
6 years ago
<li class="toctree-l1"><a class="reference internal" href="release-notes.html">Release Notes</a></li>
6 years ago
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="index.html">Arthas</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html">Docs</a> &raquo;</li>
6 years ago
<li><a href="commands.html">All Commands</a> &raquo;</li>
6 years ago
<li>watch</li>
<li class="wy-breadcrumbs-aside">
6 years ago
<a href="https://github.com/alibaba/arthas/blob/master/site/src/site/sphinx/en/watch.md" class="fa fa-github"> Edit on GitHub</a>
6 years ago
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="watch">
<span id="watch"></span><h1>watch<a class="headerlink" href="#watch" title="Permalink to this headline"></a></h1>
6 years ago
<p>Monitor methods in data aspect including <code class="docutils literal notranslate"><span class="pre">return</span> <span class="pre">values</span></code>, <code class="docutils literal notranslate"><span class="pre">exceptions</span></code> and <code class="docutils literal notranslate"><span class="pre">parameters</span></code>.</p>
6 years ago
<p>With the help of <a class="reference external" href="https://commons.apache.org/proper/commons-ognl/index.html">OGNL</a>, you can easily check the details of variables when methods being invoked.</p>
6 years ago
<div class="section" id="parameters-options">
<span id="parameters-options"></span><h2>Parameters &amp; Options<a class="headerlink" href="#parameters-options" title="Permalink to this headline"></a></h2>
6 years ago
<p>There are four different scenarios for <code class="docutils literal notranslate"><span class="pre">watch</span></code> command, which makes it rather complicated.</p>
6 years ago
<table border="1" class="docutils">
<thead>
<tr>
<th align="right">Name</th>
<th align="left">Specification</th>
</tr>
</thead>
<tbody>
<tr>
<td align="right"><em>class-pattern</em></td>
<td align="left">pattern for the class name</td>
</tr>
<tr>
<td align="right"><em>method-pattern</em></td>
<td align="left">pattern for the method name</td>
</tr>
<tr>
6 years ago
<td align="right"><em>expression</em></td>
6 years ago
<td align="left">expression to monitor</td>
</tr>
<tr>
6 years ago
<td align="right"><em>condition-expression</em></td>
<td align="left">condition expression to filter</td>
6 years ago
</tr>
<tr>
<td align="right">[b]</td>
6 years ago
<td align="left">before method being invoked</td>
6 years ago
</tr>
<tr>
<td align="right">[e]</td>
6 years ago
<td align="left">when method encountering exceptions</td>
6 years ago
</tr>
<tr>
<td align="right">[s]</td>
6 years ago
<td align="left">when method exits normally</td>
6 years ago
</tr>
<tr>
<td align="right">[f]</td>
6 years ago
<td align="left">when method exits (either succeed or fail with exceptions)</td>
6 years ago
</tr>
<tr>
<td align="right">[E]</td>
6 years ago
<td align="left">turn on regex matching while the default is wildcard matching</td>
6 years ago
</tr>
<tr>
<td align="right">[x:]</td>
<td align="left">the depth to print the specified property with default value: 1</td>
</tr>
</tbody>
</table><p>F.Y.I</p>
<ol class="simple">
<li>any valid OGNL expression as <code class="docutils literal notranslate"><span class="pre">&quot;{params,returnObj}&quot;</span></code> supported</li>
<li>there are four <em>watching</em> points: <code class="docutils literal notranslate"><span class="pre">-b</span></code>, <code class="docutils literal notranslate"><span class="pre">-e</span></code>, <code class="docutils literal notranslate"><span class="pre">-s</span></code> and <code class="docutils literal notranslate"><span class="pre">-f</span></code> (the first three are off in default while <code class="docutils literal notranslate"><span class="pre">-f</span></code> on);</li>
6 years ago
<li>at the <em>watching</em> point, Arthas will use the <em>expression</em> to evaluate the variables and print them out;</li>
<li><code class="docutils literal notranslate"><span class="pre">in</span> <span class="pre">parameters</span></code> and <code class="docutils literal notranslate"><span class="pre">out</span> <span class="pre">parameters</span></code> are different since they can be modified within the invoked methods; <code class="docutils literal notranslate"><span class="pre">params</span></code> stands for <code class="docutils literal notranslate"><span class="pre">in</span> <span class="pre">parameters</span></code> in <code class="docutils literal notranslate"><span class="pre">-b</span></code>while <code class="docutils literal notranslate"><span class="pre">out</span> <span class="pre">parameters</span></code> in other <em>watching</em> points;</li>
<li>there are no <code class="docutils literal notranslate"><span class="pre">return</span> <span class="pre">values</span></code> and <code class="docutils literal notranslate"><span class="pre">exceptions</span></code> when using <code class="docutils literal notranslate"><span class="pre">-b</span></code>.</li>
6 years ago
</ol>
<p>Advanced:</p>
<div class="toctree-wrapper compound">
<ul>
6 years ago
<li class="toctree-l1"><a class="reference internal" href="advice-class.html">Critical fields in</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues/71">Special usages</a></li>
6 years ago
<li class="toctree-l1"><a class="reference external" href="https://commons.apache.org/proper/commons-ognl/language-guide.html">OGNL official guide</a></li>
</ul>
</div>
</div>
<div class="section" id="usage">
<span id="usage"></span><h2>Usage<a class="headerlink" href="#usage" title="Permalink to this headline"></a></h2>
6 years ago
<p>Start <code class="docutils literal notranslate"><span class="pre">arthas-demo</span></code> in <a class="reference internal" href="quick-start.html"><span class="doc">Quick Start</span></a>.</p>
6 years ago
<div class="section" id="check-the-out-parameters-and-return-value">
<span id="check-the-out-parameters-and-return-value"></span><h3>Check the <code class="docutils literal notranslate"><span class="pre">out</span> <span class="pre">parameters</span></code> and <code class="docutils literal notranslate"><span class="pre">return</span> <span class="pre">value</span></code><a class="headerlink" href="#check-the-out-parameters-and-return-value" title="Permalink to this headline"></a></h3>
6 years ago
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$ watch demo.MathGame primeFactors <span class="s2">&quot;{params,returnObj}&quot;</span> -x <span class="m">2</span>
6 years ago
Press Ctrl+C to abort.
Affect<span class="o">(</span>class-cnt:1 , method-cnt:1<span class="o">)</span> cost in <span class="m">44</span> ms.
6 years ago
<span class="nv">ts</span><span class="o">=</span><span class="m">2018</span>-12-03 <span class="m">19</span>:16:51<span class="p">;</span> <span class="o">[</span><span class="nv">cost</span><span class="o">=</span><span class="m">1</span>.280502ms<span class="o">]</span> <span class="nv">result</span><span class="o">=</span>@ArrayList<span class="o">[</span>
6 years ago
@Object<span class="o">[][</span>
6 years ago
@Integer<span class="o">[</span><span class="m">535629513</span><span class="o">]</span>,
<span class="o">]</span>,
@ArrayList<span class="o">[</span>
@Integer<span class="o">[</span><span class="m">3</span><span class="o">]</span>,
@Integer<span class="o">[</span><span class="m">19</span><span class="o">]</span>,
@Integer<span class="o">[</span><span class="m">191</span><span class="o">]</span>,
@Integer<span class="o">[</span><span class="m">49199</span><span class="o">]</span>,
6 years ago
<span class="o">]</span>,
<span class="o">]</span>
</pre></div>
</div>
</div>
<div class="section" id="check-in-parameters">
6 years ago
<span id="check-in-parameters"></span><h3>Check <code class="docutils literal notranslate"><span class="pre">in</span> <span class="pre">parameters</span></code><a class="headerlink" href="#check-in-parameters" title="Permalink to this headline"></a></h3>
6 years ago
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$ watch demo.MathGame primeFactors <span class="s2">&quot;{params,returnObj}&quot;</span> -x <span class="m">2</span> -b
6 years ago
Press Ctrl+C to abort.
6 years ago
Affect<span class="o">(</span>class-cnt:1 , method-cnt:1<span class="o">)</span> cost in <span class="m">50</span> ms.
<span class="nv">ts</span><span class="o">=</span><span class="m">2018</span>-12-03 <span class="m">19</span>:23:23<span class="p">;</span> <span class="o">[</span><span class="nv">cost</span><span class="o">=</span><span class="m">0</span>.0353ms<span class="o">]</span> <span class="nv">result</span><span class="o">=</span>@ArrayList<span class="o">[</span>
6 years ago
@Object<span class="o">[][</span>
6 years ago
@Integer<span class="o">[</span>-1077465243<span class="o">]</span>,
6 years ago
<span class="o">]</span>,
null,
<span class="o">]</span>
</pre></div>
</div>
6 years ago
<p>Compared to the previous <em>check</em>:</p>
<ul class="simple">
6 years ago
<li><code class="docutils literal notranslate"><span class="pre">return</span> <span class="pre">value</span></code> is <code class="docutils literal notranslate"><span class="pre">null</span></code> since its <code class="docutils literal notranslate"><span class="pre">-b</span></code>.</li>
6 years ago
</ul>
6 years ago
</div>
<div class="section" id="check-before-and-after-at-the-same-time">
<span id="check-before-and-after-at-the-same-time"></span><h3>Check <em>before</em> and <em>after</em> at the same time<a class="headerlink" href="#check-before-and-after-at-the-same-time" title="Permalink to this headline"></a></h3>
6 years ago
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$ watch demo.MathGame primeFactors <span class="s2">&quot;{params,target,returnObj}&quot;</span> -x <span class="m">2</span> -b -s -n <span class="m">2</span>
6 years ago
Press Ctrl+C to abort.
6 years ago
Affect<span class="o">(</span>class-cnt:1 , method-cnt:1<span class="o">)</span> cost in <span class="m">46</span> ms.
<span class="nv">ts</span><span class="o">=</span><span class="m">2018</span>-12-03 <span class="m">19</span>:29:54<span class="p">;</span> <span class="o">[</span><span class="nv">cost</span><span class="o">=</span><span class="m">0</span>.01696ms<span class="o">]</span> <span class="nv">result</span><span class="o">=</span>@ArrayList<span class="o">[</span>
6 years ago
@Object<span class="o">[][</span>
6 years ago
@Integer<span class="o">[</span><span class="m">1544665400</span><span class="o">]</span>,
<span class="o">]</span>,
@MathGame<span class="o">[</span>
<span class="nv">random</span><span class="o">=</span>@Random<span class="o">[</span>java.util.Random@522b408a<span class="o">]</span>,
<span class="nv">illegalArgumentCount</span><span class="o">=</span>@Integer<span class="o">[</span><span class="m">13038</span><span class="o">]</span>,
6 years ago
<span class="o">]</span>,
null,
<span class="o">]</span>
6 years ago
<span class="nv">ts</span><span class="o">=</span><span class="m">2018</span>-12-03 <span class="m">19</span>:29:54<span class="p">;</span> <span class="o">[</span><span class="nv">cost</span><span class="o">=</span><span class="m">4</span>.277392ms<span class="o">]</span> <span class="nv">result</span><span class="o">=</span>@ArrayList<span class="o">[</span>
6 years ago
@Object<span class="o">[][</span>
6 years ago
@Integer<span class="o">[</span><span class="m">1544665400</span><span class="o">]</span>,
<span class="o">]</span>,
@MathGame<span class="o">[</span>
<span class="nv">random</span><span class="o">=</span>@Random<span class="o">[</span>java.util.Random@522b408a<span class="o">]</span>,
<span class="nv">illegalArgumentCount</span><span class="o">=</span>@Integer<span class="o">[</span><span class="m">13038</span><span class="o">]</span>,
<span class="o">]</span>,
@ArrayList<span class="o">[</span>
@Integer<span class="o">[</span><span class="m">2</span><span class="o">]</span>,
@Integer<span class="o">[</span><span class="m">2</span><span class="o">]</span>,
@Integer<span class="o">[</span><span class="m">2</span><span class="o">]</span>,
@Integer<span class="o">[</span><span class="m">5</span><span class="o">]</span>,
@Integer<span class="o">[</span><span class="m">5</span><span class="o">]</span>,
@Integer<span class="o">[</span><span class="m">73</span><span class="o">]</span>,
@Integer<span class="o">[</span><span class="m">241</span><span class="o">]</span>,
@Integer<span class="o">[</span><span class="m">439</span><span class="o">]</span>,
6 years ago
<span class="o">]</span>,
<span class="o">]</span>
</pre></div>
</div>
<p>F.Y.I</p>
6 years ago
<ul class="simple">
<li><code class="docutils literal notranslate"><span class="pre">-n</span> <span class="pre">2</span></code>: threshold of execution times is 2.</li>
6 years ago
<li>the first block of output is the <em>before watching</em> point;</li>
6 years ago
<li>*the order of the output determined by the <em>watching</em> order itself (nothing to do with the order of the options <code class="docutils literal notranslate"><span class="pre">-b</span> <span class="pre">-s</span></code>).</li>
</ul>
6 years ago
</div>
6 years ago
<div class="section" id="use-x-to-check-more-details">
<span id="use-x-to-check-more-details"></span><h3>Use <code class="docutils literal notranslate"><span class="pre">-x</span></code> to check more details<a class="headerlink" href="#use-x-to-check-more-details" title="Permalink to this headline"></a></h3>
6 years ago
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$ watch demo.MathGame primeFactors <span class="s2">&quot;{params,target}&quot;</span> -x <span class="m">3</span>
6 years ago
Press Ctrl+C to abort.
6 years ago
Affect<span class="o">(</span>class-cnt:1 , method-cnt:1<span class="o">)</span> cost in <span class="m">58</span> ms.
<span class="nv">ts</span><span class="o">=</span><span class="m">2018</span>-12-03 <span class="m">19</span>:34:19<span class="p">;</span> <span class="o">[</span><span class="nv">cost</span><span class="o">=</span><span class="m">0</span>.587833ms<span class="o">]</span> <span class="nv">result</span><span class="o">=</span>@ArrayList<span class="o">[</span>
6 years ago
@Object<span class="o">[][</span>
6 years ago
@Integer<span class="o">[</span><span class="m">47816758</span><span class="o">]</span>,
<span class="o">]</span>,
@MathGame<span class="o">[</span>
<span class="nv">random</span><span class="o">=</span>@Random<span class="o">[</span>
<span class="nv">serialVersionUID</span><span class="o">=</span>@Long<span class="o">[</span><span class="m">3905348978240129619</span><span class="o">]</span>,
<span class="nv">seed</span><span class="o">=</span>@AtomicLong<span class="o">[</span><span class="m">3133719055989</span><span class="o">]</span>,
<span class="nv">multiplier</span><span class="o">=</span>@Long<span class="o">[</span><span class="m">25214903917</span><span class="o">]</span>,
<span class="nv">addend</span><span class="o">=</span>@Long<span class="o">[</span><span class="m">11</span><span class="o">]</span>,
<span class="nv">mask</span><span class="o">=</span>@Long<span class="o">[</span><span class="m">281474976710655</span><span class="o">]</span>,
<span class="nv">DOUBLE_UNIT</span><span class="o">=</span>@Double<span class="o">[</span><span class="m">1</span>.1102230246251565E-16<span class="o">]</span>,
<span class="nv">BadBound</span><span class="o">=</span>@String<span class="o">[</span>bound must be positive<span class="o">]</span>,
<span class="nv">BadRange</span><span class="o">=</span>@String<span class="o">[</span>bound must be greater than origin<span class="o">]</span>,
<span class="nv">BadSize</span><span class="o">=</span>@String<span class="o">[</span>size must be non-negative<span class="o">]</span>,
<span class="nv">seedUniquifier</span><span class="o">=</span>@AtomicLong<span class="o">[</span>-3282039941672302964<span class="o">]</span>,
<span class="nv">nextNextGaussian</span><span class="o">=</span>@Double<span class="o">[</span><span class="m">0</span>.0<span class="o">]</span>,
<span class="nv">haveNextNextGaussian</span><span class="o">=</span>@Boolean<span class="o">[</span>false<span class="o">]</span>,
<span class="nv">serialPersistentFields</span><span class="o">=</span>@ObjectStreamField<span class="o">[][</span><span class="nv">isEmpty</span><span class="o">=</span>false<span class="p">;</span><span class="nv">size</span><span class="o">=</span><span class="m">3</span><span class="o">]</span>,
<span class="nv">unsafe</span><span class="o">=</span>@Unsafe<span class="o">[</span>sun.misc.Unsafe@2eaa1027<span class="o">]</span>,
<span class="nv">seedOffset</span><span class="o">=</span>@Long<span class="o">[</span><span class="m">24</span><span class="o">]</span>,
6 years ago
<span class="o">]</span>,
6 years ago
<span class="nv">illegalArgumentCount</span><span class="o">=</span>@Integer<span class="o">[</span><span class="m">13159</span><span class="o">]</span>,
6 years ago
<span class="o">]</span>,
<span class="o">]</span>
</pre></div>
</div>
6 years ago
<ul class="simple">
<li><code class="docutils literal notranslate"><span class="pre">-x</span></code>: Expand level of object (1 by default)</li>
</ul>
6 years ago
</div>
6 years ago
<div class="section" id="use-condition-expressions-to-locate-specific-call">
<span id="use-condition-expressions-to-locate-specific-call"></span><h3>Use condition expressions to locate specific call<a class="headerlink" href="#use-condition-expressions-to-locate-specific-call" title="Permalink to this headline"></a></h3>
6 years ago
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$ watch demo.MathGame primeFactors <span class="s2">&quot;{params[0],target}&quot;</span> <span class="s2">&quot;params[0]&lt;0&quot;</span>
6 years ago
Press Ctrl+C to abort.
6 years ago
Affect<span class="o">(</span>class-cnt:1 , method-cnt:1<span class="o">)</span> cost in <span class="m">68</span> ms.
<span class="nv">ts</span><span class="o">=</span><span class="m">2018</span>-12-03 <span class="m">19</span>:36:04<span class="p">;</span> <span class="o">[</span><span class="nv">cost</span><span class="o">=</span><span class="m">0</span>.530255ms<span class="o">]</span> <span class="nv">result</span><span class="o">=</span>@ArrayList<span class="o">[</span>
@Integer<span class="o">[</span>-18178089<span class="o">]</span>,
@MathGame<span class="o">[</span>demo.MathGame@41cf53f9<span class="o">]</span>,
6 years ago
<span class="o">]</span>
</pre></div>
</div>
</div>
<div class="section" id="check-exceptions">
<span id="check-exceptions"></span><h3>Check <code class="docutils literal notranslate"><span class="pre">exceptions</span></code><a class="headerlink" href="#check-exceptions" title="Permalink to this headline"></a></h3>
6 years ago
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$ watch demo.MathGame primeFactors <span class="s2">&quot;{params[0],throwExp}&quot;</span> -e -x <span class="m">2</span>
6 years ago
Press Ctrl+C to abort.
6 years ago
Affect<span class="o">(</span>class-cnt:1 , method-cnt:1<span class="o">)</span> cost in <span class="m">62</span> ms.
<span class="nv">ts</span><span class="o">=</span><span class="m">2018</span>-12-03 <span class="m">19</span>:38:00<span class="p">;</span> <span class="o">[</span><span class="nv">cost</span><span class="o">=</span><span class="m">1</span>.414993ms<span class="o">]</span> <span class="nv">result</span><span class="o">=</span>@ArrayList<span class="o">[</span>
@Integer<span class="o">[</span>-1120397038<span class="o">]</span>,
java.lang.IllegalArgumentException: number is: -1120397038, need &gt;<span class="o">=</span> <span class="m">2</span>
at demo.MathGame.primeFactors<span class="o">(</span>MathGame.java:46<span class="o">)</span>
at demo.MathGame.run<span class="o">(</span>MathGame.java:24<span class="o">)</span>
at demo.MathGame.main<span class="o">(</span>MathGame.java:16<span class="o">)</span>
,
6 years ago
<span class="o">]</span>
</pre></div>
</div>
6 years ago
<ul class="simple">
<li><code class="docutils literal notranslate"><span class="pre">-e</span></code>: Trigger when an exception is thrown</li>
<li><code class="docutils literal notranslate"><span class="pre">throwExp</span></code>: the exception object</li>
</ul>
6 years ago
</div>
6 years ago
<div class="section" id="filter-by-time-cost">
<span id="filter-by-time-cost"></span><h3>Filter by time cost<a class="headerlink" href="#filter-by-time-cost" title="Permalink to this headline"></a></h3>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$ watch demo.MathGame primeFactors <span class="s1">&#39;{params, returnObj}&#39;</span> <span class="s1">&#39;#cost&gt;200&#39;</span> -x <span class="m">2</span>
6 years ago
Press Ctrl+C to abort.
6 years ago
Affect<span class="o">(</span>class-cnt:1 , method-cnt:1<span class="o">)</span> cost in <span class="m">66</span> ms.
<span class="nv">ts</span><span class="o">=</span><span class="m">2018</span>-12-03 <span class="m">19</span>:40:28<span class="p">;</span> <span class="o">[</span><span class="nv">cost</span><span class="o">=</span><span class="m">2112</span>.168897ms<span class="o">]</span> <span class="nv">result</span><span class="o">=</span>@ArrayList<span class="o">[</span>
6 years ago
@Object<span class="o">[][</span>
6 years ago
@Integer<span class="o">[</span><span class="m">2141897465</span><span class="o">]</span>,
<span class="o">]</span>,
@ArrayList<span class="o">[</span>
@Integer<span class="o">[</span><span class="m">5</span><span class="o">]</span>,
@Integer<span class="o">[</span><span class="m">428379493</span><span class="o">]</span>,
6 years ago
<span class="o">]</span>,
<span class="o">]</span>
</pre></div>
</div>
6 years ago
<ul class="simple">
<li><code class="docutils literal notranslate"><span class="pre">#cost&gt;200</span></code> (<code class="docutils literal notranslate"><span class="pre">ms</span></code>) filter out all invokings that take less than <code class="docutils literal notranslate"><span class="pre">200ms</span></code>.</li>
</ul>
6 years ago
</div>
6 years ago
<div class="section" id="check-the-field-of-the-target-object">
<span id="check-the-field-of-the-target-object"></span><h3>Check the field of the target object<a class="headerlink" href="#check-the-field-of-the-target-object" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li><code class="docutils literal notranslate"><span class="pre">target</span></code> is the <code class="docutils literal notranslate"><span class="pre">this</span></code> object in java.</li>
</ul>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$ watch demo.MathGame primeFactors <span class="s1">&#39;target&#39;</span>
6 years ago
Press Ctrl+C to abort.
6 years ago
Affect<span class="o">(</span>class-cnt:1 , method-cnt:1<span class="o">)</span> cost in <span class="m">52</span> ms.
<span class="nv">ts</span><span class="o">=</span><span class="m">2018</span>-12-03 <span class="m">19</span>:41:52<span class="p">;</span> <span class="o">[</span><span class="nv">cost</span><span class="o">=</span><span class="m">0</span>.477882ms<span class="o">]</span> <span class="nv">result</span><span class="o">=</span>@MathGame<span class="o">[</span>
<span class="nv">random</span><span class="o">=</span>@Random<span class="o">[</span>java.util.Random@522b408a<span class="o">]</span>,
<span class="nv">illegalArgumentCount</span><span class="o">=</span>@Integer<span class="o">[</span><span class="m">13355</span><span class="o">]</span>,
<span class="o">]</span>
6 years ago
</pre></div>
</div>
6 years ago
<ul class="simple">
<li><code class="docutils literal notranslate"><span class="pre">target.field_name</span></code>: the field of the current object.</li>
</ul>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ watch demo.MathGame primeFactors &#39;target.illegalArgumentCount&#39;
6 years ago
Press Ctrl+C to abort.
6 years ago
Affect(class-cnt:1 , method-cnt:1) cost in 67 ms.
ts=2018-12-03 20:04:34; [cost=131.303498ms] result=@Integer[8]
ts=2018-12-03 20:04:35; [cost=0.961441ms] result=@Integer[8]
6 years ago
</pre></div>
</div>
</div>
</div>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
6 years ago
<a href="advice-class.html" class="btn btn-neutral float-right" title="Fundamental Fields in Expressions" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
6 years ago
<a href="monitor.html" class="btn btn-neutral" title="monitor" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright 2018, Alibaba Middleware Group, and contributors.
</p>
</div>
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'./',
VERSION:'3.0.6-SNAPSHOT',
6 years ago
LANGUAGE:'en',
6 years ago
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true,
SOURCELINK_SUFFIX: '.txt'
};
</script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<script type="text/javascript" src="_static/js/theme.js"></script>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
<div class="github-fork-ribbon-wrapper right">
<div class="github-fork-ribbon">
<a href="https://github.com/alibaba/arthas">Fork me at GitHub</a>
</div>
</div>
<script type="text/javascript" src="_static/add_badges.js"></script>
<script>
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?d5c5e25b100f0eb51a4c35c8a86ea9b4";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script>
</body>
</html>