mirror of https://github.com/alibaba/arthas.git
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.
26 lines
11 KiB
JavaScript
26 lines
11 KiB
JavaScript
import{_ as p,o as c,c as r,a,b as n,w as o,e as s,d as l,r as i}from"./app.391b0e4e.js";const d={},u=a("h1",{id:"stack",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#stack","aria-hidden":"true"},"#"),s(" stack")],-1),m={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=en&id=command-stack",target:"_blank",rel:"noopener noreferrer"},h=a("code",null,"stack",-1),k=s(" online tutorial"),b=l('<div class="custom-container tip"><p class="custom-container-title">TIP</p><p>Print out the full call stack of the current method.</p></div><p>Most often we know one method gets called, but we have no idea on which code path gets executed or when the method gets called since there are so many code paths to the target method. The command <code>stack</code> comes to rescue in this difficult situation.</p><h3 id="parameters" tabindex="-1"><a class="header-anchor" href="#parameters" aria-hidden="true">#</a> Parameters</h3><table><thead><tr><th style="text-align:right;">Name</th><th style="text-align:left;">Specification</th></tr></thead><tbody><tr><td style="text-align:right;"><em>class-pattern</em></td><td style="text-align:left;">pattern for the class name</td></tr><tr><td style="text-align:right;"><em>method-pattern</em></td><td style="text-align:left;">pattern for the method name</td></tr><tr><td style="text-align:right;"><em>condition-expression</em></td><td style="text-align:left;">condition expression</td></tr><tr><td style="text-align:right;"><code>[E]</code></td><td style="text-align:left;">turn on regex match, the default behavior is wildcard match</td></tr><tr><td style="text-align:right;"><code>[n:]</code></td><td style="text-align:left;">execution times</td></tr></tbody></table><p>There's one thing worthy noting here is observation expression. The observation expression supports OGNL grammar, for example, you can come up a expression like this <code>"{params,returnObj}"</code>. All OGNL expressions are supported as long as they are legal to the grammar.</p><p>Thanks for <code>advice</code>'s data structure, it is possible to observe from varieties of different angles. Inside <code>advice</code> parameter, all necessary information for notification can be found.</p>',6),v=s("Pls. refer to "),g=s("core parameters in expression"),f=s(" for more details."),_=s("Pls. also refer to "),x={href:"https://github.com/alibaba/arthas/issues/71",target:"_blank",rel:"noopener noreferrer"},y=s("https://github.com/alibaba/arthas/issues/71"),C=s(" for more advanced usage"),L=s("OGNL official site: "),G={href:"https://commons.apache.org/proper/commons-ognl/language-guide.html",target:"_blank",rel:"noopener noreferrer"},M=s("https://commons.apache.org/proper/commons-ognl/language-guide.html"),w=a("h3",{id:"usage",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#usage","aria-hidden":"true"},"#"),s(" Usage")],-1),T=a("h4",{id:"start-demo",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#start-demo","aria-hidden":"true"},"#"),s(" Start Demo")],-1),A=s("Start "),N=a("code",null,"math-game",-1),P=s(" in "),$=s("Quick Start"),j=s("."),F=l(`<h4 id="stack-1" tabindex="-1"><a class="header-anchor" href="#stack-1" aria-hidden="true">#</a> stack</h4><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ stack demo.MathGame primeFactors
|
|
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">36</span> ms.
|
|
<span class="token assign-left variable">ts</span><span class="token operator">=</span><span class="token number">2018</span>-12-04 01:32:19<span class="token punctuation">;</span><span class="token assign-left variable">thread_name</span><span class="token operator">=</span>main<span class="token punctuation">;</span><span class="token assign-left variable">id</span><span class="token operator">=</span><span class="token number">1</span><span class="token punctuation">;</span><span class="token assign-left variable">is_daemon</span><span class="token operator">=</span>false<span class="token punctuation">;</span><span class="token assign-left variable">priority</span><span class="token operator">=</span><span class="token number">5</span><span class="token punctuation">;</span><span class="token assign-left variable">TCCL</span><span class="token operator">=</span>sun.misc.Launcher<span class="token variable">$AppClassLoader</span>@3d4eac69
|
|
@demo.MathGame.run<span class="token punctuation">(</span><span class="token punctuation">)</span>
|
|
at demo.MathGame.main<span class="token punctuation">(</span>MathGame.java:16<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></div><h4 id="filtering-by-condition-expression" tabindex="-1"><a class="header-anchor" href="#filtering-by-condition-expression" aria-hidden="true">#</a> Filtering by condition expression</h4><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ stack demo.MathGame primeFactors <span class="token string">'params[0]<0'</span> -n <span class="token number">2</span>
|
|
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">30</span> ms.
|
|
<span class="token assign-left variable">ts</span><span class="token operator">=</span><span class="token number">2018</span>-12-04 01:34:27<span class="token punctuation">;</span><span class="token assign-left variable">thread_name</span><span class="token operator">=</span>main<span class="token punctuation">;</span><span class="token assign-left variable">id</span><span class="token operator">=</span><span class="token number">1</span><span class="token punctuation">;</span><span class="token assign-left variable">is_daemon</span><span class="token operator">=</span>false<span class="token punctuation">;</span><span class="token assign-left variable">priority</span><span class="token operator">=</span><span class="token number">5</span><span class="token punctuation">;</span><span class="token assign-left variable">TCCL</span><span class="token operator">=</span>sun.misc.Launcher<span class="token variable">$AppClassLoader</span>@3d4eac69
|
|
@demo.MathGame.run<span class="token punctuation">(</span><span class="token punctuation">)</span>
|
|
at demo.MathGame.main<span class="token punctuation">(</span>MathGame.java:16<span class="token punctuation">)</span>
|
|
|
|
<span class="token assign-left variable">ts</span><span class="token operator">=</span><span class="token number">2018</span>-12-04 01:34:30<span class="token punctuation">;</span><span class="token assign-left variable">thread_name</span><span class="token operator">=</span>main<span class="token punctuation">;</span><span class="token assign-left variable">id</span><span class="token operator">=</span><span class="token number">1</span><span class="token punctuation">;</span><span class="token assign-left variable">is_daemon</span><span class="token operator">=</span>false<span class="token punctuation">;</span><span class="token assign-left variable">priority</span><span class="token operator">=</span><span class="token number">5</span><span class="token punctuation">;</span><span class="token assign-left variable">TCCL</span><span class="token operator">=</span>sun.misc.Launcher<span class="token variable">$AppClassLoader</span>@3d4eac69
|
|
@demo.MathGame.run<span class="token punctuation">(</span><span class="token punctuation">)</span>
|
|
at demo.MathGame.main<span class="token punctuation">(</span>MathGame.java:16<span class="token punctuation">)</span>
|
|
|
|
Command execution <span class="token builtin class-name">times</span> exceed limit: <span class="token number">2</span>, so <span class="token builtin class-name">command</span> will exit. You can <span class="token builtin class-name">set</span> it with -n option.
|
|
</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></div><h4 id="filtering-by-cost" tabindex="-1"><a class="header-anchor" href="#filtering-by-cost" aria-hidden="true">#</a> Filtering by cost</h4><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ stack demo.MathGame primeFactors <span class="token string">'#cost>5'</span>
|
|
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">35</span> ms.
|
|
<span class="token assign-left variable">ts</span><span class="token operator">=</span><span class="token number">2018</span>-12-04 01:35:58<span class="token punctuation">;</span><span class="token assign-left variable">thread_name</span><span class="token operator">=</span>main<span class="token punctuation">;</span><span class="token assign-left variable">id</span><span class="token operator">=</span><span class="token number">1</span><span class="token punctuation">;</span><span class="token assign-left variable">is_daemon</span><span class="token operator">=</span>false<span class="token punctuation">;</span><span class="token assign-left variable">priority</span><span class="token operator">=</span><span class="token number">5</span><span class="token punctuation">;</span><span class="token assign-left variable">TCCL</span><span class="token operator">=</span>sun.misc.Launcher<span class="token variable">$AppClassLoader</span>@3d4eac69
|
|
@demo.MathGame.run<span class="token punctuation">(</span><span class="token punctuation">)</span>
|
|
at demo.MathGame.main<span class="token punctuation">(</span>MathGame.java:16<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></div>`,6);function S(E,I){const e=i("ExternalLinkIcon"),t=i("RouterLink");return c(),r("div",null,[u,a("p",null,[a("a",m,[h,k,n(e)])]),b,a("p",null,[v,n(t,{to:"/en/doc/advice-class.html"},{default:o(()=>[g]),_:1}),f]),a("ul",null,[a("li",null,[_,a("a",x,[y,n(e)]),C]),a("li",null,[L,a("a",G,[M,n(e)])])]),w,T,a("p",null,[A,N,P,n(t,{to:"/en/doc/quick-start.html"},{default:o(()=>[$]),_:1}),j]),F])}var V=p(d,[["render",S],["__file","stack.html.vue"]]);export{V as default};
|