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/assets/quick-start.html.e3846057.js

166 lines
41 KiB
JavaScript

import{_ as l,o as i,c as u,a as s,b as a,w as p,d as e,e as n,r as o}from"./app.391b0e4e.js";const r={},k=e(`<h1 id="quick-start" tabindex="-1"><a class="header-anchor" href="#quick-start" aria-hidden="true">#</a> Quick Start</h1><h2 id="_1-start-math-game" tabindex="-1"><a class="header-anchor" href="#_1-start-math-game" aria-hidden="true">#</a> 1. Start math-game</h2><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token function">curl</span> -O https://arthas.aliyun.com/math-game.jar
java -jar math-game.jar
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div></div></div><p><code>math-game</code> is a simple program that generates a random number every second, then it finds all prime factors of that number.</p>`,4),d=n("The source code of "),m=s("code",null,"math-game",-1),b=n(": "),v={href:"https://github.com/alibaba/arthas/blob/master/math-game/src/main/java/demo/MathGame.java",target:"_blank",rel:"noopener noreferrer"},h=n("View"),g=e(`<h2 id="_2-start-arthas" tabindex="-1"><a class="header-anchor" href="#_2-start-arthas" aria-hidden="true">#</a> 2. Start Arthas</h2><h3 id="linux-unix-mac" tabindex="-1"><a class="header-anchor" href="#linux-unix-mac" aria-hidden="true">#</a> Linux/Unix/Mac</h3><p>Execute the following command in the command line:</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token function">curl</span> -O https://arthas.aliyun.com/arthas-boot.jar
java -jar arthas-boot.jar
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div></div></div><ul><li>The user to run this command <em>MUST</em> have the same privilege as the owner of the target process, as a simple example you can try the following command if the target process is managed by user <code>admin</code>: <code>sudo su admin &amp;&amp; java -jar arthas-boot.jar</code> or <code>sudo -u admin -EH java -jar arthas-boot.jar</code></li><li>If you cannot be able to attach to the target process, please check the logs under <code>~/logs/arthas</code> for troubleshooting.</li><li><code>java -jar arthas-boot.jar -h</code> print usage.</li></ul><p>Select the target Java process to attach:</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ $ java -jar arthas-boot.jar
* <span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span>: <span class="token number">35542</span>
<span class="token punctuation">[</span><span class="token number">2</span><span class="token punctuation">]</span>: <span class="token number">71560</span> math-game.jar
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>The <code>math-game</code> process is the second as shown above, press &#39;2&#39; then &#39;Enter&#39;. Arthas will attach to the target process, and start to output:</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token punctuation">[</span>INFO<span class="token punctuation">]</span> Try to attach process <span class="token number">71560</span>
<span class="token punctuation">[</span>INFO<span class="token punctuation">]</span> Attach process <span class="token number">71560</span> success.
<span class="token punctuation">[</span>INFO<span class="token punctuation">]</span> arthas-client connect <span class="token number">127.0</span>.0.1 <span class="token number">3658</span>
,---. ,------. ,--------.,--. ,--. ,---. ,---.
/ O <span class="token punctuation">\\</span> <span class="token operator">|</span> .--. <span class="token string">&#39;&#39;</span>--. .--<span class="token string">&#39;| &#39;</span>--<span class="token string">&#39; | / O \\ &#39;</span> .-<span class="token string">&#39;
| .-. || &#39;</span>--<span class="token string">&#39;.&#39;</span> <span class="token operator">|</span> <span class="token operator">|</span> <span class="token operator">|</span> .--. <span class="token operator">||</span> .-. <span class="token operator">|</span><span class="token variable"><span class="token variable">\`</span><span class="token builtin class-name">.</span> <span class="token variable">\`</span></span>-.
<span class="token operator">|</span> <span class="token operator">|</span> <span class="token operator">|</span> <span class="token operator">||</span> <span class="token operator">|</span><span class="token punctuation">\\</span> <span class="token punctuation">\\</span> <span class="token operator">|</span> <span class="token operator">|</span> <span class="token operator">|</span> <span class="token operator">|</span> <span class="token operator">|</span> <span class="token operator">||</span> <span class="token operator">|</span> <span class="token operator">|</span> <span class="token operator">|</span>.-<span class="token string">&#39; |
\`--&#39;</span> <span class="token variable"><span class="token variable">\`</span>--&#39;<span class="token variable">\`</span></span>--<span class="token string">&#39; &#39;</span>--<span class="token string">&#39; \`--&#39;</span> <span class="token variable"><span class="token variable">\`</span>--&#39; <span class="token variable">\`</span></span>--<span class="token string">&#39;\`--&#39;</span> <span class="token variable"><span class="token variable">\`</span>--&#39;<span class="token variable">\`</span></span>-----&#39;
wiki: https://arthas.aliyun.com/doc
version: <span class="token number">3.0</span>.5.20181127201536
pid: <span class="token number">71560</span>
time: <span class="token number">2018</span>-11-28 <span class="token number">19</span>:16:24
$
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h2 id="_3-check-the-dashboard" tabindex="-1"><a class="header-anchor" href="#_3-check-the-dashboard" aria-hidden="true">#</a> 3. Check the Dashboard</h2>`,10),f=n("Type '"),_=n("dashboard"),w=n("' and hit 'ENTER', a brief report on the current process will be shown as below, pls. "),y=s("code",null,"Ctrl+C",-1),I=n(" to stop:"),j=e(`<div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ dashboard
ID NAME GROUP PRIORI STATE %CPU TIME INTERRU DAEMON
<span class="token number">17</span> pool-2-thread-1 system <span class="token number">5</span> WAITIN <span class="token number">67</span> <span class="token number">0</span>:0 <span class="token boolean">false</span> <span class="token boolean">false</span>
<span class="token number">27</span> Timer-for-arthas-dashb system <span class="token number">10</span> RUNNAB <span class="token number">32</span> <span class="token number">0</span>:0 <span class="token boolean">false</span> <span class="token boolean">true</span>
<span class="token number">11</span> AsyncAppender-Worker-a system <span class="token number">9</span> WAITIN <span class="token number">0</span> <span class="token number">0</span>:0 <span class="token boolean">false</span> <span class="token boolean">true</span>
<span class="token number">9</span> Attach Listener system <span class="token number">9</span> RUNNAB <span class="token number">0</span> <span class="token number">0</span>:0 <span class="token boolean">false</span> <span class="token boolean">true</span>
<span class="token number">3</span> Finalizer system <span class="token number">8</span> WAITIN <span class="token number">0</span> <span class="token number">0</span>:0 <span class="token boolean">false</span> <span class="token boolean">true</span>
<span class="token number">2</span> Reference Handler system <span class="token number">10</span> WAITIN <span class="token number">0</span> <span class="token number">0</span>:0 <span class="token boolean">false</span> <span class="token boolean">true</span>
<span class="token number">4</span> Signal Dispatcher system <span class="token number">9</span> RUNNAB <span class="token number">0</span> <span class="token number">0</span>:0 <span class="token boolean">false</span> <span class="token boolean">true</span>
<span class="token number">26</span> as-command-execute-dae system <span class="token number">10</span> TIMED_ <span class="token number">0</span> <span class="token number">0</span>:0 <span class="token boolean">false</span> <span class="token boolean">true</span>
<span class="token number">13</span> job-timeout system <span class="token number">9</span> TIMED_ <span class="token number">0</span> <span class="token number">0</span>:0 <span class="token boolean">false</span> <span class="token boolean">true</span>
<span class="token number">1</span> main main <span class="token number">5</span> TIMED_ <span class="token number">0</span> <span class="token number">0</span>:0 <span class="token boolean">false</span> <span class="token boolean">false</span>
<span class="token number">14</span> nioEventLoopGroup-2-1 system <span class="token number">10</span> RUNNAB <span class="token number">0</span> <span class="token number">0</span>:0 <span class="token boolean">false</span> <span class="token boolean">false</span>
<span class="token number">18</span> nioEventLoopGroup-2-2 system <span class="token number">10</span> RUNNAB <span class="token number">0</span> <span class="token number">0</span>:0 <span class="token boolean">false</span> <span class="token boolean">false</span>
<span class="token number">23</span> nioEventLoopGroup-2-3 system <span class="token number">10</span> RUNNAB <span class="token number">0</span> <span class="token number">0</span>:0 <span class="token boolean">false</span> <span class="token boolean">false</span>
<span class="token number">15</span> nioEventLoopGroup-3-1 system <span class="token number">10</span> RUNNAB <span class="token number">0</span> <span class="token number">0</span>:0 <span class="token boolean">false</span> <span class="token boolean">false</span>
Memory used total max usage GC
heap 32M 155M 1820M <span class="token number">1.77</span>% gc.ps_scavenge.count <span class="token number">4</span>
ps_eden_space 14M 65M 672M <span class="token number">2.21</span>% gc.ps_scavenge.time<span class="token punctuation">(</span>m <span class="token number">166</span>
ps_survivor_space 4M 5M 5M s<span class="token punctuation">)</span>
ps_old_gen 12M 85M 1365M <span class="token number">0.91</span>% gc.ps_marksweep.count <span class="token number">0</span>
nonheap 20M 23M -1 gc.ps_marksweep.time<span class="token punctuation">(</span> <span class="token number">0</span>
code_cache 3M 5M 240M <span class="token number">1.32</span>% ms <span class="token punctuation">)</span>
Runtime
os.name Mac OS X
os.version <span class="token number">10.13</span>.4
java.version <span class="token number">1.8</span>.0_162
java.home /Library/Java/JavaVir
tualMachines/jdk1.8.0
_162.jdk/Contents/Hom
e/jre
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h2 id="_4-get-the-main-class-of-the-math-game-process-with-the-thread-command" tabindex="-1"><a class="header-anchor" href="#_4-get-the-main-class-of-the-math-game-process-with-the-thread-command" aria-hidden="true">#</a> 4. Get the Main Class of the <code>math-game</code> process with the thread command</h2><p><code>thread 1</code> will print the stack of the thread with ID 1, which usually the main function thread.</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ thread <span class="token number">1</span> <span class="token operator">|</span> <span class="token function">grep</span> <span class="token string">&#39;main(&#39;</span>
at demo.MathGame.main<span class="token punctuation">(</span>MathGame.java:17<span class="token punctuation">)</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div></div></div><h2 id="_5-decompile-main-class-with-jad-command" tabindex="-1"><a class="header-anchor" href="#_5-decompile-main-class-with-jad-command" aria-hidden="true">#</a> 5. Decompile Main Class with jad command</h2><div class="language-java ext-java line-numbers-mode"><pre class="language-java"><code>$ jad <span class="token class-name"><span class="token namespace">demo<span class="token punctuation">.</span></span>MathGame</span>
<span class="token class-name">ClassLoader</span><span class="token operator">:</span>
<span class="token operator">+</span><span class="token operator">-</span><span class="token class-name"><span class="token namespace">sun<span class="token punctuation">.</span>misc<span class="token punctuation">.</span></span>Launcher</span>$<span class="token class-name">AppClassLoader</span><span class="token annotation punctuation">@3d4eac69</span>
<span class="token operator">+</span><span class="token operator">-</span><span class="token class-name"><span class="token namespace">sun<span class="token punctuation">.</span>misc<span class="token punctuation">.</span></span>Launcher</span>$<span class="token class-name">ExtClassLoader</span><span class="token annotation punctuation">@66350f69</span>
<span class="token class-name">Location</span><span class="token operator">:</span>
<span class="token operator">/</span>tmp<span class="token operator">/</span>math<span class="token operator">-</span>game<span class="token punctuation">.</span>jar
<span class="token comment">/*
* Decompiled with CFR 0_132.
*/</span>
<span class="token keyword">package</span> <span class="token namespace">demo</span><span class="token punctuation">;</span>
<span class="token keyword">import</span> <span class="token import"><span class="token namespace">java<span class="token punctuation">.</span>io<span class="token punctuation">.</span></span><span class="token class-name">PrintStream</span></span><span class="token punctuation">;</span>
<span class="token keyword">import</span> <span class="token import"><span class="token namespace">java<span class="token punctuation">.</span>util<span class="token punctuation">.</span></span><span class="token class-name">ArrayList</span></span><span class="token punctuation">;</span>
<span class="token keyword">import</span> <span class="token import"><span class="token namespace">java<span class="token punctuation">.</span>util<span class="token punctuation">.</span></span><span class="token class-name">Iterator</span></span><span class="token punctuation">;</span>
<span class="token keyword">import</span> <span class="token import"><span class="token namespace">java<span class="token punctuation">.</span>util<span class="token punctuation">.</span></span><span class="token class-name">List</span></span><span class="token punctuation">;</span>
<span class="token keyword">import</span> <span class="token import"><span class="token namespace">java<span class="token punctuation">.</span>util<span class="token punctuation">.</span></span><span class="token class-name">Random</span></span><span class="token punctuation">;</span>
<span class="token keyword">import</span> <span class="token import"><span class="token namespace">java<span class="token punctuation">.</span>util<span class="token punctuation">.</span>concurrent<span class="token punctuation">.</span></span><span class="token class-name">TimeUnit</span></span><span class="token punctuation">;</span>
<span class="token keyword">public</span> <span class="token keyword">class</span> <span class="token class-name">MathGame</span> <span class="token punctuation">{</span>
<span class="token keyword">private</span> <span class="token keyword">static</span> <span class="token class-name">Random</span> random <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Random</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">private</span> <span class="token keyword">int</span> illegalArgumentCount <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span>
<span class="token keyword">public</span> <span class="token keyword">static</span> <span class="token keyword">void</span> <span class="token function">main</span><span class="token punctuation">(</span><span class="token class-name">String</span><span class="token punctuation">[</span><span class="token punctuation">]</span> args<span class="token punctuation">)</span> <span class="token keyword">throws</span> <span class="token class-name">InterruptedException</span> <span class="token punctuation">{</span>
<span class="token class-name">MathGame</span> game <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">MathGame</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">do</span> <span class="token punctuation">{</span>
game<span class="token punctuation">.</span><span class="token function">run</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token class-name">TimeUnit</span><span class="token punctuation">.</span>SECONDS<span class="token punctuation">.</span><span class="token function">sleep</span><span class="token punctuation">(</span><span class="token number">1L</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span> <span class="token keyword">while</span> <span class="token punctuation">(</span><span class="token boolean">true</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">public</span> <span class="token keyword">void</span> <span class="token function">run</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token keyword">throws</span> <span class="token class-name">InterruptedException</span> <span class="token punctuation">{</span>
<span class="token keyword">try</span> <span class="token punctuation">{</span>
<span class="token keyword">int</span> number <span class="token operator">=</span> random<span class="token punctuation">.</span><span class="token function">nextInt</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token class-name">List</span><span class="token generics"><span class="token punctuation">&lt;</span><span class="token class-name">Integer</span><span class="token punctuation">&gt;</span></span> primeFactors <span class="token operator">=</span> <span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">primeFactors</span><span class="token punctuation">(</span>number<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token class-name">MathGame</span><span class="token punctuation">.</span><span class="token function">print</span><span class="token punctuation">(</span>number<span class="token punctuation">,</span> primeFactors<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">catch</span> <span class="token punctuation">(</span><span class="token class-name">Exception</span> e<span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token class-name">String</span><span class="token punctuation">.</span><span class="token function">format</span><span class="token punctuation">(</span><span class="token string">&quot;illegalArgumentCount:%3d, &quot;</span><span class="token punctuation">,</span> <span class="token keyword">this</span><span class="token punctuation">.</span>illegalArgumentCount<span class="token punctuation">)</span> <span class="token operator">+</span> e<span class="token punctuation">.</span><span class="token function">getMessage</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token keyword">public</span> <span class="token keyword">static</span> <span class="token keyword">void</span> <span class="token function">print</span><span class="token punctuation">(</span><span class="token keyword">int</span> number<span class="token punctuation">,</span> <span class="token class-name">List</span><span class="token generics"><span class="token punctuation">&lt;</span><span class="token class-name">Integer</span><span class="token punctuation">&gt;</span></span> primeFactors<span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token class-name">StringBuffer</span> sb <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">StringBuffer</span><span class="token punctuation">(</span><span class="token string">&quot;&quot;</span> <span class="token operator">+</span> number <span class="token operator">+</span> <span class="token string">&quot;=&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token class-name">Iterator</span><span class="token generics"><span class="token punctuation">&lt;</span><span class="token class-name">Integer</span><span class="token punctuation">&gt;</span></span> iterator <span class="token operator">=</span> primeFactors<span class="token punctuation">.</span><span class="token function">iterator</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">while</span> <span class="token punctuation">(</span>iterator<span class="token punctuation">.</span><span class="token function">hasNext</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">int</span> factor <span class="token operator">=</span> iterator<span class="token punctuation">.</span><span class="token function">next</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
sb<span class="token punctuation">.</span><span class="token function">append</span><span class="token punctuation">(</span>factor<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">append</span><span class="token punctuation">(</span><span class="token char">&#39;*&#39;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span>sb<span class="token punctuation">.</span><span class="token function">charAt</span><span class="token punctuation">(</span>sb<span class="token punctuation">.</span><span class="token function">length</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">-</span> <span class="token number">1</span><span class="token punctuation">)</span> <span class="token operator">==</span> <span class="token char">&#39;*&#39;</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
sb<span class="token punctuation">.</span><span class="token function">deleteCharAt</span><span class="token punctuation">(</span>sb<span class="token punctuation">.</span><span class="token function">length</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">-</span> <span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>sb<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">public</span> <span class="token class-name">List</span><span class="token generics"><span class="token punctuation">&lt;</span><span class="token class-name">Integer</span><span class="token punctuation">&gt;</span></span> <span class="token function">primeFactors</span><span class="token punctuation">(</span><span class="token keyword">int</span> number<span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span>number <span class="token operator">&lt;</span> <span class="token number">2</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token operator">++</span><span class="token keyword">this</span><span class="token punctuation">.</span>illegalArgumentCount<span class="token punctuation">;</span>
<span class="token keyword">throw</span> <span class="token keyword">new</span> <span class="token class-name">IllegalArgumentException</span><span class="token punctuation">(</span><span class="token string">&quot;number is: &quot;</span> <span class="token operator">+</span> number <span class="token operator">+</span> <span class="token string">&quot;, need &gt;= 2&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token class-name">ArrayList</span><span class="token generics"><span class="token punctuation">&lt;</span><span class="token class-name">Integer</span><span class="token punctuation">&gt;</span></span> result <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ArrayList</span><span class="token generics"><span class="token punctuation">&lt;</span><span class="token class-name">Integer</span><span class="token punctuation">&gt;</span></span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">int</span> i <span class="token operator">=</span> <span class="token number">2</span><span class="token punctuation">;</span>
<span class="token keyword">while</span> <span class="token punctuation">(</span>i <span class="token operator">&lt;=</span> number<span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span>number <span class="token operator">%</span> i <span class="token operator">==</span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
result<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">;</span>
number <span class="token operator">/=</span> i<span class="token punctuation">;</span>
i <span class="token operator">=</span> <span class="token number">2</span><span class="token punctuation">;</span>
<span class="token keyword">continue</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token operator">++</span>i<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">return</span> result<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token class-name">Affect</span><span class="token punctuation">(</span>row<span class="token operator">-</span>cnt<span class="token operator">:</span><span class="token number">1</span><span class="token punctuation">)</span> cost in <span class="token number">970</span> ms<span class="token punctuation">.</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h2 id="_6-watch" tabindex="-1"><a class="header-anchor" href="#_6-watch" aria-hidden="true">#</a> 6. watch</h2>`,7),x=n("Use '"),M=n("watch"),A=n("' to view the return object of "),N=s("code",null,"demo.MathGame#primeFactors",-1),L=n(":"),E=e(`<div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ <span class="token function">watch</span> demo.MathGame primeFactors returnObj
Press Ctrl+C to abort.
Affect<span class="token punctuation">(</span>class-cnt:1 , method-cnt:1<span class="token punctuation">)</span> cost <span class="token keyword">in</span> <span class="token number">107</span> ms.
<span class="token assign-left variable">ts</span><span class="token operator">=</span><span class="token number">2018</span>-11-28 <span class="token number">19</span>:22:30<span class="token punctuation">;</span> <span class="token punctuation">[</span>cost<span class="token operator">=</span><span class="token number">1</span>.715367ms<span class="token punctuation">]</span> <span class="token assign-left variable">result</span><span class="token operator">=</span>null
<span class="token assign-left variable">ts</span><span class="token operator">=</span><span class="token number">2018</span>-11-28 <span class="token number">19</span>:22:31<span class="token punctuation">;</span> <span class="token punctuation">[</span>cost<span class="token operator">=</span><span class="token number">0</span>.185203ms<span class="token punctuation">]</span> <span class="token assign-left variable">result</span><span class="token operator">=</span>null
<span class="token assign-left variable">ts</span><span class="token operator">=</span><span class="token number">2018</span>-11-28 <span class="token number">19</span>:22:32<span class="token punctuation">;</span> <span class="token punctuation">[</span>cost<span class="token operator">=</span><span class="token number">19</span>.012416ms<span class="token punctuation">]</span> <span class="token assign-left variable">result</span><span class="token operator">=</span>@ArrayList<span class="token punctuation">[</span>
@Integer<span class="token punctuation">[</span><span class="token number">5</span><span class="token punctuation">]</span>,
@Integer<span class="token punctuation">[</span><span class="token number">47</span><span class="token punctuation">]</span>,
@Integer<span class="token punctuation">[</span><span class="token number">2675531</span><span class="token punctuation">]</span>,
<span class="token punctuation">]</span>
<span class="token assign-left variable">ts</span><span class="token operator">=</span><span class="token number">2018</span>-11-28 <span class="token number">19</span>:22:33<span class="token punctuation">;</span> <span class="token punctuation">[</span>cost<span class="token operator">=</span><span class="token number">0</span>.311395ms<span class="token punctuation">]</span> <span class="token assign-left variable">result</span><span class="token operator">=</span>@ArrayList<span class="token punctuation">[</span>
@Integer<span class="token punctuation">[</span><span class="token number">2</span><span class="token punctuation">]</span>,
@Integer<span class="token punctuation">[</span><span class="token number">5</span><span class="token punctuation">]</span>,
@Integer<span class="token punctuation">[</span><span class="token number">317</span><span class="token punctuation">]</span>,
@Integer<span class="token punctuation">[</span><span class="token number">503</span><span class="token punctuation">]</span>,
@Integer<span class="token punctuation">[</span><span class="token number">887</span><span class="token punctuation">]</span>,
<span class="token punctuation">]</span>
<span class="token assign-left variable">ts</span><span class="token operator">=</span><span class="token number">2018</span>-11-28 <span class="token number">19</span>:22:34<span class="token punctuation">;</span> <span class="token punctuation">[</span>cost<span class="token operator">=</span><span class="token number">10</span>.136007ms<span class="token punctuation">]</span> <span class="token assign-left variable">result</span><span class="token operator">=</span>@ArrayList<span class="token punctuation">[</span>
@Integer<span class="token punctuation">[</span><span class="token number">2</span><span class="token punctuation">]</span>,
@Integer<span class="token punctuation">[</span><span class="token number">2</span><span class="token punctuation">]</span>,
@Integer<span class="token punctuation">[</span><span class="token number">3</span><span class="token punctuation">]</span>,
@Integer<span class="token punctuation">[</span><span class="token number">3</span><span class="token punctuation">]</span>,
@Integer<span class="token punctuation">[</span><span class="token number">31</span><span class="token punctuation">]</span>,
@Integer<span class="token punctuation">[</span><span class="token number">717593</span><span class="token punctuation">]</span>,
<span class="token punctuation">]</span>
<span class="token assign-left variable">ts</span><span class="token operator">=</span><span class="token number">2018</span>-11-28 <span class="token number">19</span>:22:35<span class="token punctuation">;</span> <span class="token punctuation">[</span>cost<span class="token operator">=</span><span class="token number">29</span>.969732ms<span class="token punctuation">]</span> <span class="token assign-left variable">result</span><span class="token operator">=</span>@ArrayList<span class="token punctuation">[</span>
@Integer<span class="token punctuation">[</span><span class="token number">5</span><span class="token punctuation">]</span>,
@Integer<span class="token punctuation">[</span><span class="token number">29</span><span class="token punctuation">]</span>,
@Integer<span class="token punctuation">[</span><span class="token number">7651739</span><span class="token punctuation">]</span>,
<span class="token punctuation">]</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div>`,1),T=n("Pls. refer to "),C=n("advanced usages"),R=n(" for more information."),S=s("h2",{id:"_7-exit-arthas",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#_7-exit-arthas","aria-hidden":"true"},"#"),n(" 7. Exit Arthas")],-1),G=s("p",null,[n("Use "),s("code",null,"quit"),n(" or "),s("code",null,"exit"),n(" to disconnect from the current process. The Arthas instance attached to the target process continues to live inside the process, and its port is standby for further connection.")],-1),U=s("p",null,[n("Use "),s("code",null,"stop"),n(" command to have Arthas completely quit from the target process.")],-1);function q(F,O){const c=o("ExternalLinkIcon"),t=o("RouterLink");return i(),u("div",null,[k,s("p",null,[d,m,b,s("a",v,[h,a(c)])]),g,s("p",null,[f,a(t,{to:"/en/doc/dashboard.html"},{default:p(()=>[_]),_:1}),w,y,I]),j,s("p",null,[x,a(t,{to:"/en/doc/watch.html"},{default:p(()=>[M]),_:1}),A,N,L]),E,s("p",null,[T,a(t,{to:"/en/doc/advanced-use.html"},{default:p(()=>[C]),_:1}),R]),S,G,U])}var D=l(r,[["render",q],["__file","quick-start.html.vue"]]);export{D as default};