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.
142 lines
101 KiB
HTML
142 lines
101 KiB
HTML
3 years ago
|
<!DOCTYPE html>
|
||
|
<html lang="en-US">
|
||
|
<head>
|
||
|
<meta charset="utf-8">
|
||
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||
|
<meta name="generator" content="VuePress 2.0.0-beta.49">
|
||
|
<style>
|
||
|
:root {
|
||
|
--c-bg: #fff;
|
||
|
}
|
||
|
html.dark {
|
||
|
--c-bg: #22272e;
|
||
|
}
|
||
|
html, body {
|
||
|
background-color: var(--c-bg);
|
||
|
}
|
||
|
</style>
|
||
|
<script>
|
||
|
const userMode = localStorage.getItem('vuepress-color-scheme');
|
||
|
const systemDarkMode = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
|
||
|
if (userMode === 'dark' || (userMode !== 'light' && systemDarkMode)) {
|
||
|
document.documentElement.classList.toggle('dark', true);
|
||
|
}
|
||
|
</script>
|
||
|
<link rel="icon" href="/images/favicon.ico"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta property="og:title" content="Arthas"><meta property="og:image:alt" content="Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas - Fatpandac/arthas: Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas"><meta property="og:image" content="/images/arthas_mate_image.png"><meta property="og:description" content="Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas - Fatpandac/arthas: Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas"><meta property="og:image:width" content="1200"><meta property="og:image:height" content="600"><meta property="twitter:image:src" content="/images/arthas_mate_image.png"><meta property="twitter:image:alt" content="Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas - Fatpandac/arthas: Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas"><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><title>trace | arthas</title><meta name="description" content="arthas user document">
|
||
|
<link rel="modulepreload" href="/assets/app.b2be689e.js"><link rel="modulepreload" href="/assets/trace.html.b9df2335.js"><link rel="modulepreload" href="/assets/trace.html.ba67b8fc.js"><link rel="prefetch" href="/assets/index.html.45b69b3a.js"><link rel="prefetch" href="/assets/index.html.76ea9ae7.js"><link rel="prefetch" href="/assets/index.html.f5d6a449.js"><link rel="prefetch" href="/assets/advanced-use.html.e598a294.js"><link rel="prefetch" href="/assets/advice-class.html.36067001.js"><link rel="prefetch" href="/assets/agent.html.9015da1d.js"><link rel="prefetch" href="/assets/arthas-properties.html.cee1ed6b.js"><link rel="prefetch" href="/assets/arthas3.html.acc26c6e.js"><link rel="prefetch" href="/assets/async.html.e27f256b.js"><link rel="prefetch" href="/assets/auth.html.32218e6b.js"><link rel="prefetch" href="/assets/base64.html.4047e29e.js"><link rel="prefetch" href="/assets/batch-support.html.7ecb82c6.js"><link rel="prefetch" href="/assets/cat.html.cc30c619.js"><link rel="prefetch" href="/assets/classloader.html.6c401b19.js"><link rel="prefetch" href="/assets/cls.html.5a559768.js"><link rel="prefetch" href="/assets/commands.html.fab4bb12.js"><link rel="prefetch" href="/assets/contact-us.html.edf149ad.js"><link rel="prefetch" href="/assets/dashboard.html.4eb977c5.js"><link rel="prefetch" href="/assets/docker.html.811af1aa.js"><link rel="prefetch" href="/assets/download.html.54eca683.js"><link rel="prefetch" href="/assets/dump.html.cecedbdc.js"><link rel="prefetch" href="/assets/echo.html.046fded9.js"><link rel="prefetch" href="/assets/faq.html.4b73f02d.js"><link rel="prefetch" href="/assets/getstatic.html.8b8918aa.js"><link rel="prefetch" href="/assets/grep.html.9589e767.js"><link rel="prefetch" href="/assets/groovy.html.a7b151ba.js"><link rel="prefetch" href="/assets/heapdump.html.3779c034.js"><link rel="prefetch" href="/assets/help.html.1ee751af.js"><link rel="prefetch" href="/assets/history.html.6d544ac4.js"><link rel="prefetch" href="/assets/http-api.html.1ee2ca01.js"><link rel="prefetch" href="/assets/idea-plugin.html.3d23f092.js"><link rel="prefetch" href="/assets/install-detail.html.e60cda0e.js"><link rel="prefetch" href="/assets/jad.html.7cc2f9ab.js"><link rel="prefetch" href="/assets/jvm.html.99f686c2.js"><link rel="prefetch" href="/assets/keymap.html.152983ec.js"><link rel="prefetch" href="/assets/logger.html.37652f5a.js"><link rel="prefetch" href="/assets/manual-install.html.ec6f137a.js"><link rel="prefetch" href="/assets/mbean.html.dd61851f.js"><link rel="prefetch" href="/assets/mc.html.4ad9c4ed.js"><link rel="prefetch" href="/assets/memory.html.987bdeb1.js"><link rel="prefetch" href="/assets/monitor.html.39213eeb.js"><link rel="prefetch" href="/assets/ognl.html.94fd12b2.js"><link rel="prefetch" href="/assets/options.html.ff8fe789.js"><link rel="prefetch" href="/assets/perfcounter.html.4ad1dec5.js"><link rel="prefetch" href="/assets/profiler.html.235e7cd3.js"><link rel="prefetch" href="/assets/pwd.html.31c88e07.js"><link rel="prefetch" href="/assets/quick-start.html.ecd924ae.js"><link rel="prefetch" href="/assets/quit.html.f082ff2d.js"><link rel="prefetch" href="/assets/redefine.html.9dc81560.js"><link rel="prefetch" href="/assets/release-notes.html.ceeefd88.js"><link rel="prefetch" href="/assets/reset.html.fb7a3c31.js"><link rel="prefetch" href="/assets/retransform.html.c3f8c24d.js"><link rel="prefetch" href="/assets/save-log.html.b8840842.js"><link rel="prefetch" href="/assets/sc.html.46898c95.js"><link rel="prefetch" href="/assets/session.html.e39a5ae5.js"><link rel="prefetch" href="/assets/sm.html.3335d118.js"><link rel="prefetch" href="/assets/spring-boot-starter.html.15a438ba.js"><link rel="prefetch" href="/assets/stack.html.6cf13a4b.js"><link rel="prefetch" href="/assets/start-arthas.html.073b53b8.js"><link rel="prefetch" href="/assets/stop.html.4353502b.js"><link rel="prefetch" href="/assets/sysenv.html.b3de9636.js"><link rel="prefetch" href="/assets/sysprop.html.bad87bbb.js"><link rel="prefetch" href="/assets/tee.html.1dcb7a40.js"><link rel="prefetch" href="/assets/thread.html.11eebe49.
|
||
|
<link rel="stylesheet" href="/assets/style.eaa9a6b4.css">
|
||
|
</head>
|
||
|
<body>
|
||
|
<div id="app"><!--[--><div class="theme-container"><!--[--><header class="navbar"><div class="toggle-sidebar-button" title="toggle sidebar" aria-expanded="false" role="button" tabindex="0"><div class="icon" aria-hidden="true"><span></span><span></span><span></span></div></div><span><a href="/en/" class=""><!----><span class="site-name can-hide">arthas</span></a></span><div class="navbar-items-wrapper" style=""><!--[--><!--]--><nav class="navbar-items can-hide"><!--[--><div class="navbar-item"><a href="/en/" class="" aria-label="HOME"><!--[--><!--]--> HOME <!--[--><!--]--></a></div><div class="navbar-item"><a class="external-link" href="/doc/arthas-tutorials.html?language=en&id=arthas-basics" rel="noopener noreferrer" target="_blank" aria-label="ONLINE TUTORIALS"><!--[--><!--]--><span>ONLINE TUTORIALS</span><span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!--[--><!--]--></a></div><div class="navbar-item"><a href="/en/doc" class="router-link-active" aria-label="DOCS"><!--[--><!--]--> DOCS <!--[--><!--]--></a></div><div class="navbar-item"><div class="navbar-dropdown-wrapper"><button class="navbar-dropdown-title" type="button" aria-label="SOLUTIONS"><span class="title">SOLUTIONS</span><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="SOLUTIONS"><span class="title">SOLUTIONS</span><span class="right arrow"></span></button><ul style="display:none;" class="navbar-dropdown"><!--[--><li class="navbar-dropdown-item"><a class="external-link" href="https://cn.aliyun.com/product/aliware/mse?spm=arthas.topbar.0.0.0" rel="noopener noreferrer" target="_blank" aria-label="Microservice solutions"><!--[--><!--]--><span>Microservice solutions</span><span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a class="external-link" href="https://www.aliyun.com/aliware/txc?spm=arthas.topbar.0.0.0" rel="noopener noreferrer" target="_blank" aria-label="Distributed transaction solutions"><!--[--><!--]--><span>Distributed transaction solutions</span><span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a class="external-link" href="https://www.aliyun.com/product/ahas?spm=arthas.topbar.0.0.0" rel="noopener noreferrer" target="_blank" aria-label="High-availability solution"><!--[--><!--]--><span>High-availability solution</span><span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M1
|
||
|
Press Q or 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">28</span> ms.
|
||
|
<span class="token variable"><span class="token variable">`</span>---ts<span class="token operator">=</span><span class="token number">2019</span>-12-04 00:45:08<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$AppClassLoader@3d4eac69
|
||
|
<span class="token variable">`</span></span>---<span class="token punctuation">[</span><span class="token number">0</span>.617465ms<span class="token punctuation">]</span> demo.MathGame:run<span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||
|
<span class="token variable"><span class="token variable">`</span>---<span class="token punctuation">[</span><span class="token number">0</span>.078946ms<span class="token punctuation">]</span> demo.MathGame:primeFactors<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#24 [throws Exception]</span>
|
||
|
|
||
|
<span class="token variable">`</span></span>---ts<span class="token operator">=</span><span class="token number">2019</span>-12-04 00:45:09<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
|
||
|
<span class="token variable"><span class="token variable">`</span>---<span class="token punctuation">[</span><span class="token number">1</span>.276874ms<span class="token punctuation">]</span> demo.MathGame:run<span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||
|
<span class="token variable">`</span></span>---<span class="token punctuation">[</span><span class="token number">0</span>.03752ms<span class="token punctuation">]</span> demo.MathGame:primeFactors<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#24 [throws Exception]</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></div><div class="custom-container tip"><p class="custom-container-title">TIP</p><p>The <code>#24</code> in the result indicates that in the run function, the <code>primeFactors()</code> function was called on line <code>24</code> of the source file.</p></div><h4 id="trace-times-limit" tabindex="-1"><a class="header-anchor" href="#trace-times-limit" aria-hidden="true">#</a> Trace times limit</h4><p>If the method invoked many times, use <code>-n</code> options to specify trace times. For example, the command will exit when received a trace result.</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ trace demo.MathGame run -n <span class="token number">1</span>
|
||
|
Press Q or 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">20</span> ms.
|
||
|
<span class="token variable"><span class="token variable">`</span>---ts<span class="token operator">=</span><span class="token number">2019</span>-12-04 00:45:53<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$AppClassLoader@3d4eac69
|
||
|
<span class="token variable">`</span></span>---<span class="token punctuation">[</span><span class="token number">0</span>.549379ms<span class="token punctuation">]</span> demo.MathGame:run<span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||
|
+---<span class="token punctuation">[</span><span class="token number">0</span>.059839ms<span class="token punctuation">]</span> demo.MathGame:primeFactors<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#24</span>
|
||
|
`---<span class="token punctuation">[</span><span class="token number">0</span>.232887ms<span class="token punctuation">]</span> demo.MathGame:print<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#25</span>
|
||
|
|
||
|
Command execution <span class="token builtin class-name">times</span> exceed limit: <span class="token number">1</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></div><h4 id="include-jdk-method" tabindex="-1"><a class="header-anchor" href="#include-jdk-method" aria-hidden="true">#</a> Include jdk method</h4><ul><li><code>--skipJDKMethod <value> </code> skip jdk method trace, default value true.</li></ul><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ trace --skipJDKMethod <span class="token boolean">false</span> demo.MathGame run
|
||
|
Press Q or 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">60</span> ms.
|
||
|
<span class="token variable"><span class="token variable">`</span>---ts<span class="token operator">=</span><span class="token number">2019</span>-12-04 00:44:41<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$AppClassLoader@3d4eac69
|
||
|
<span class="token variable">`</span></span>---<span class="token punctuation">[</span><span class="token number">1</span>.357742ms<span class="token punctuation">]</span> demo.MathGame:run<span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||
|
+---<span class="token punctuation">[</span><span class="token number">0</span>.028624ms<span class="token punctuation">]</span> java.util.Random:nextInt<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#23</span>
|
||
|
+---<span class="token punctuation">[</span><span class="token number">0</span>.045534ms<span class="token punctuation">]</span> demo.MathGame:primeFactors<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#24 [throws Exception]</span>
|
||
|
+---<span class="token punctuation">[</span><span class="token number">0</span>.005372ms<span class="token punctuation">]</span> java.lang.StringBuilder:<span class="token operator"><</span>init<span class="token operator">></span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#28</span>
|
||
|
+---<span class="token punctuation">[</span><span class="token number">0</span>.012257ms<span class="token punctuation">]</span> java.lang.Integer:valueOf<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#28</span>
|
||
|
+---<span class="token punctuation">[</span><span class="token number">0</span>.234537ms<span class="token punctuation">]</span> java.lang.String:format<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#28</span>
|
||
|
+---<span class="token punctuation">[</span>min<span class="token operator">=</span><span class="token number">0</span>.004539ms,max<span class="token operator">=</span><span class="token number">0</span>.005778ms,total<span class="token operator">=</span><span class="token number">0</span>.010317ms,count<span class="token operator">=</span><span class="token number">2</span><span class="token punctuation">]</span> java.lang.StringBuilder:append<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#28</span>
|
||
|
+---<span class="token punctuation">[</span><span class="token number">0</span>.013777ms<span class="token punctuation">]</span> java.lang.Exception:getMessage<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#28</span>
|
||
|
+---<span class="token punctuation">[</span><span class="token number">0</span>.004935ms<span class="token punctuation">]</span> java.lang.StringBuilder:toString<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#28</span>
|
||
|
<span class="token variable"><span class="token variable">`</span>---<span class="token punctuation">[</span><span class="token number">0</span>.06941ms<span class="token punctuation">]</span> java.io.PrintStream:println<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#28</span>
|
||
|
|
||
|
<span class="token variable">`</span></span>---ts<span class="token operator">=</span><span class="token number">2019</span>-12-04 00:44:42<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
|
||
|
<span class="token variable"><span class="token variable">`</span>---<span class="token punctuation">[</span><span class="token number">3</span>.030432ms<span class="token punctuation">]</span> demo.MathGame:run<span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||
|
+---<span class="token punctuation">[</span><span class="token number">0</span>.010473ms<span class="token punctuation">]</span> java.util.Random:nextInt<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#23</span>
|
||
|
+---<span class="token punctuation">[</span><span class="token number">0</span>.023715ms<span class="token punctuation">]</span> demo.MathGame:primeFactors<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#24 [throws Exception]</span>
|
||
|
+---<span class="token punctuation">[</span><span class="token number">0</span>.005198ms<span class="token punctuation">]</span> java.lang.StringBuilder:<span class="token operator"><</span>init<span class="token operator">></span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#28</span>
|
||
|
+---<span class="token punctuation">[</span><span class="token number">0</span>.006405ms<span class="token punctuation">]</span> java.lang.Integer:valueOf<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#28</span>
|
||
|
+---<span class="token punctuation">[</span><span class="token number">0</span>.178583ms<span class="token punctuation">]</span> java.lang.String:format<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#28</span>
|
||
|
+---<span class="token punctuation">[</span>min<span class="token operator">=</span><span class="token number">0</span>.011636ms,max<span class="token operator">=</span><span class="token number">0</span>.838077ms,total<span class="token operator">=</span><span class="token number">0</span>.849713ms,count<span class="token operator">=</span><span class="token number">2</span><span class="token punctuation">]</span> java.lang.StringBuilder:append<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#28</span>
|
||
|
+---<span class="token punctuation">[</span><span class="token number">0</span>.008747ms<span class="token punctuation">]</span> java.lang.Exception:getMessage<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#28</span>
|
||
|
+---<span class="token punctuation">[</span><span class="token number">0</span>.019768ms<span class="token punctuation">]</span> java.lang.StringBuilder:toString<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#28</span>
|
||
|
<span class="token variable">`</span></span>---<span class="token punctuation">[</span><span class="token number">0</span>.076457ms<span class="token punctuation">]</span> java.io.PrintStream:println<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#28</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></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>$ trace demo.MathGame run <span class="token string">'#cost > 10'</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">41</span> ms.
|
||
|
<span class="token variable"><span class="token variable">`</span>---ts<span class="token operator">=</span><span class="token number">2018</span>-12-04 01:12:02<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$AppClassLoader@3d4eac69
|
||
|
<span class="token variable">`</span></span>---<span class="token punctuation">[</span><span class="token number">12</span>.033735ms<span class="token punctuation">]</span> demo.MathGame:run<span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||
|
+---<span class="token punctuation">[</span><span class="token number">0</span>.006783ms<span class="token punctuation">]</span> java.util.Random:nextInt<span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||
|
+---<span class="token punctuation">[</span><span class="token number">11</span>.852594ms<span class="token punctuation">]</span> demo.MathGame:primeFactors<span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||
|
`---<span class="token punctuation">[</span><span class="token number">0</span>.05447ms<span class="token punctuation">]</span> demo.MathGame:print<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></div><div class="custom-container tip"><p class="custom-container-title">TIP</p><p>Only the call path which's time cost is higher than <code>10ms</code> will be shown. This feature is handy to focus on what's needed to focus when troubleshoot.</p></div><ul><li>Here Arthas provides the similar functionality JProfile and other commercial software provide. Compared to these professional softwares, Arthas doesn't deduce the time cost <code>trace</code> itself takes, therefore it is not as accurate as these softwares offer. More classes and methods on the calling path, more inaccurate <code>trace</code> output is, but it is still helpful for diagnostics where the bottleneck is.</li><li>"[12.033735ms]" means the method on the node takes <code>12.033735</code> ms.</li><li>"[min=0.005428ms,max=0.094064ms,total=0.105228ms,count=3] demo:call()" means aggregating all same method calls into one single line. The minimum time cost is <code>0.005428</code> ms, the maximum time cost is <code>0.094064</code> ms, and the total time cost for all method calls (<code>3</code> times in total) to "demo:call()" is <code>0.105228ms</code>. If "throws Exception" appears in this line, it means some exceptions have been thrown from this method calls.</li><li>The total time cost may not equal to the sum of the time costs each sub method call takes, this is because Arthas instrumented code takes time too.</li></ul><h4 id="trace-multiple-classes-or-multiple-methods" tabindex="-1"><a class="header-anchor" href="#trace-multiple-classes-or-multiple-methods" aria-hidden="true">#</a> Trace multiple classes or multiple methods</h4><p>The trace command will only trace the subcalls in the method to the trace, and will not trace down multiple layers. Because traces are expensive, multi-layer traces can lead to a lot of classes and methods that ultimately have to be traced.</p><p>You can use the regular expression to match multiple classes and methods on the path to achieve a multi-layer trace effect to some extent.</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>Trace -E com.test.ClassA<span class="token operator">|</span>org.test.ClassB method1<span class="token operator">|</span>method2<span class="token operator">|</span>method3
|
||
|
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><h4 id="exclude-the-specified-class" tabindex="-1"><a class="header-anchor" href="#exclude-the-specified-class" aria-hidden="true">#</a> Exclude the specified class</h4><div class="custom-container tip"><p class="custom-container-title">TIP</p><p>The watch/trace/monitor/stack/tt commands all support the <code>--exclude-class-pattern</code> parameter</p></div><p>Use the <code>--exclude-class-pattern</code> parameter to exclude the specified class, for example:</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token function">watch</span> javax.servlet.Filter * --exclude-class-pattern com.demo.TestFilter
|
||
|
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><h4 id="dynamic-trace" tabindex="-1"><a class="header-anchor" href="#dynamic-trace" aria-hidden="true">#</a> Dynamic trace</h4><div class="custom-container tip"><p class="custom-container-title">TIP</p><p>Supported since version 3.3.0.</p></div><p>Open terminal 1, trace the <code>run</code> method in the above demo, and you can see the printout <code>listenerId: 1</code> .</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token punctuation">[</span>arthas@59161<span class="token punctuation">]</span>$ trace demo.MathGame run
|
||
|
Press Q or Ctrl+C to abort.
|
||
|
Affect<span class="token punctuation">(</span>class count: <span class="token number">1</span> , method count: <span class="token number">1</span><span class="token punctuation">)</span> cost <span class="token keyword">in</span> <span class="token number">112</span> ms, listenerId: <span class="token number">1</span>
|
||
|
<span class="token variable"><span class="token variable">`</span>---ts<span class="token operator">=</span><span class="token number">2020</span>-07-09 <span class="token number">16</span>:48:11<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$AppClassLoader@3d4eac69
|
||
|
<span class="token variable">`</span></span>---<span class="token punctuation">[</span><span class="token number">1</span>.389634ms<span class="token punctuation">]</span> demo.MathGame:run<span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||
|
<span class="token variable"><span class="token variable">`</span>---<span class="token punctuation">[</span><span class="token number">0</span>.123934ms<span class="token punctuation">]</span> demo.MathGame:primeFactors<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#24 [throws Exception]</span>
|
||
|
|
||
|
<span class="token variable">`</span></span>---ts<span class="token operator">=</span><span class="token number">2020</span>-07-09 <span class="token number">16</span>:48:12<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
|
||
|
<span class="token variable"><span class="token variable">`</span>---<span class="token punctuation">[</span><span class="token number">3</span>.716391ms<span class="token punctuation">]</span> demo.MathGame:run<span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||
|
+---<span class="token punctuation">[</span><span class="token number">3</span>.182813ms<span class="token punctuation">]</span> demo.MathGame:primeFactors<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#24</span>
|
||
|
<span class="token variable">`</span></span>---<span class="token punctuation">[</span><span class="token number">0</span>.167786ms<span class="token punctuation">]</span> demo.MathGame:print<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#25</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></div><p>Now to drill down into the sub method <code>primeFactors</code>, you can open a new terminal 2 and use the <code>telnet localhost 3658</code> connects to the arthas, then trace <code>primeFactors</code> with the specify <code>listenerId</code>.</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token punctuation">[</span>arthas@59161<span class="token punctuation">]</span>$ trace demo.MathGame primeFactors --listenerId <span class="token number">1</span>
|
||
|
Press Q or Ctrl+C to abort.
|
||
|
Affect<span class="token punctuation">(</span>class count: <span class="token number">1</span> , method count: <span class="token number">1</span><span class="token punctuation">)</span> cost <span class="token keyword">in</span> <span class="token number">34</span> ms, listenerId: <span class="token number">1</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></div><p>At Terminal 2 prints the results, indicating that a method has been enhanced: <code>Affect(class count: 1 , method count: 1)</code>, but no more results are printed.</p><p>At terminal 1, you can see that the trace result has increased by one layer:</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token variable"><span class="token variable">`</span>---ts<span class="token operator">=</span><span class="token number">2020</span>-07-09 <span class="token number">16</span>:49:29<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$AppClassLoader@3d4eac69
|
||
|
<span class="token variable">`</span></span>---<span class="token punctuation">[</span><span class="token number">0</span>.492551ms<span class="token punctuation">]</span> demo.MathGame:run<span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||
|
<span class="token variable"><span class="token variable">`</span>---<span class="token punctuation">[</span><span class="token number">0</span>.113929ms<span class="token punctuation">]</span> demo.MathGame:primeFactors<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#24 [throws Exception]</span>
|
||
|
<span class="token variable">`</span></span>---<span class="token punctuation">[</span><span class="token number">0</span>.061462ms<span class="token punctuation">]</span> demo.MathGame:primeFactors<span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||
|
<span class="token variable"><span class="token variable">`</span>---<span class="token punctuation">[</span><span class="token number">0</span>.001018ms<span class="token punctuation">]</span> throw:java.lang.IllegalArgumentException<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#46</span>
|
||
|
|
||
|
<span class="token variable">`</span></span>---ts<span class="token operator">=</span><span class="token number">2020</span>-07-09 <span class="token number">16</span>:49: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
|
||
|
<span class="token variable"><span class="token variable">`</span>---<span class="token punctuation">[</span><span class="token number">0</span>.409446ms<span class="token punctuation">]</span> demo.MathGame:run<span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||
|
+---<span class="token punctuation">[</span><span class="token number">0</span>.232606ms<span class="token punctuation">]</span> demo.MathGame:primeFactors<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#24</span>
|
||
|
<span class="token operator">|</span> <span class="token variable">`</span></span>---<span class="token punctuation">[</span><span class="token number">0</span>.1294ms<span class="token punctuation">]</span> demo.MathGame:primeFactors<span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||
|
`---<span class="token punctuation">[</span><span class="token number">0</span>.084025ms<span class="token punctuation">]</span> demo.MathGame:print<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#25</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></div><p>Dynamic trace by specifying <code>listenerId</code>, you can go deeper and deeper. In addition, commands such as <code>watch</code>/<code>tt</code>/<code>monitor</code> also support similar functionality.</p><h3 id="trace-result-time-inaccuracy-problem" tabindex="-1"><a class="header-anchor" href="#trace-result-time-inaccuracy-problem" aria-hidden="true">#</a> Trace result time inaccuracy problem</h3><p>For example, in the following result: <code>0.705196 > (0.152743 + 0.145825)</code></p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ trace demo.MathGame run -n <span class="token number">1</span>
|
||
|
Press Q or Ctrl+C to abort.
|
||
|
Affect<span class="token punctuation">(</span>class count: <span class="token number">1</span> , method count: <span class="token number">1</span><span class="token punctuation">)</span> cost <span class="token keyword">in</span> <span class="token number">66</span> ms, listenerId: <span class="token number">1</span>
|
||
|
<span class="token variable"><span class="token variable">`</span>---ts<span class="token operator">=</span><span class="token number">2021</span>-02-08 <span class="token number">11</span>:27:36<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$AppClassLoader@232204a1
|
||
|
<span class="token variable">`</span></span>--<span class="token punctuation">[</span><span class="token number">0</span>.705196ms<span class="token punctuation">]</span> demo.MathGame:run<span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||
|
+---<span class="token punctuation">[</span><span class="token number">0</span>.152743ms<span class="token punctuation">]</span> demo.MathGame:primeFactors<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#24</span>
|
||
|
`--<span class="token punctuation">[</span><span class="token number">0</span>.145825ms<span class="token punctuation">]</span> demo.MathGame:print<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#25</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></div><p>So where is the rest of the time consumed?</p><ol><li><p>Methods that are not traced to. For example, methods under <code>java.*</code> are ignored by default. This can be printed out by adding the <code>-skipJDKMethod false</code> parameter.</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ trace demo.MathGame run --skipJDKMethod <span class="token boolean">false</span>
|
||
|
Press Q or Ctrl+C to abort.
|
||
|
Affect<span class="token punctuation">(</span>class count: <span class="token number">1</span> , method count: <span class="token number">1</span><span class="token punctuation">)</span> cost <span class="token keyword">in</span> <span class="token number">35</span> ms, listenerId: <span class="token number">2</span>
|
||
|
<span class="token variable"><span class="token variable">`</span>---ts<span class="token operator">=</span><span class="token number">2021</span>-02-08 <span class="token number">11</span>:27:48<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$AppClassLoader@232204a1
|
||
|
<span class="token variable">`</span></span>--<span class="token punctuation">[</span><span class="token number">0</span>.810591ms<span class="token punctuation">]</span> demo.MathGame:run<span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||
|
+--<span class="token punctuation">[</span><span class="token number">0</span>.034568ms<span class="token punctuation">]</span> java.util.Random:nextInt<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#23</span>
|
||
|
+---<span class="token punctuation">[</span><span class="token number">0</span>.119367ms<span class="token punctuation">]</span> demo.MathGame:timeFactors<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#24 [throws Exception]</span>
|
||
|
+---<span class="token punctuation">[</span><span class="token number">0</span>.017407ms<span class="token punctuation">]</span> java.lang.StringBuilder:<span class="token operator"><</span>init<span class="token operator">></span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#28</span>
|
||
|
+--<span class="token punctuation">[</span><span class="token number">0</span>.127922ms<span class="token punctuation">]</span> java.lang.String:format<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#57</span>
|
||
|
+---<span class="token punctuation">[</span>min<span class="token operator">=</span><span class="token number">0</span>.01419ms,max<span class="token operator">=</span><span class="token number">0</span>.020221ms,total<span class="token operator">=</span><span class="token number">0</span>.034411ms,count<span class="token operator">=</span><span class="token number">2</span><span class="token punctuation">]</span> java.lang.StringBuilder:append<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#57</span>
|
||
|
+--<span class="token punctuation">[</span><span class="token number">0</span>.021911ms<span class="token punctuation">]</span> java.lang.Exception:getMessage<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#57</span>
|
||
|
+---<span class="token punctuation">[</span><span class="token number">0</span>.015643ms<span class="token punctuation">]</span> java.lang.StringBuilder:toString<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#57</span>
|
||
|
`--<span class="token punctuation">[</span><span class="token number">0</span>.086622ms<span class="token punctuation">]</span> java.io.PrintStream:println<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#57</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></div></li><li><p>Instruction consumption. For example, instructions such as <code>i++</code>, <code>getfield</code>, etc.</p></li><li><p>Possible JVM pause during code execution, such as GC, entering synchronization blocks, etc.</p></li></ol><h4 id="use-the-v-parameter-to-print-more-information" tabindex="-1"><a class="header-anchor" href="#use-the-v-parameter-to-print-more-information" aria-hidden="true">#</a> Use the -v parameter to print more information</h4><div class="custom-container tip"><p class="custom-container-title">TIP</p><p>The watch/trace/monitor/stack/tt commands all support the <code>-v</code> parameter.</p></div><p>When the command is executed, there is no output result. There are two possibilities:</p><ol><li>The matched function is not executed</li><li>The result of the conditional expression is false</li></ol><p>But the user cannot tell which situation is.</p><p>Using the <code>-v</code> option, the specific value and execution result of <code>Condition express</code> will be printed for easy confirmation.</p></div><!--[--><!--]--></div><footer class="page-meta right-menu-padding" data-v-e0e60120><div class="meta-item edit-link"><a class="external-link meta-item-label" href="https://github.com/alibaba/arthas/edit/master/site/docs/en/doc/trace.md" rel="noopener noreferrer" target="_blank" aria-label="Edit this page on GitHub"><!--[--><!--]--><span>Edit this page on GitHub</span><span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!--[--><!--]--></a></div><div class="meta-item last-updated"><span class="meta-item-label">Last Updated: </span><!----></div><div class="meta-item contributors"><span class="meta-item-label">Contributors: </span><span class="meta-item-info"><!--[--><!--[--><span class="contributor" title="email: hengyunabc@gmail.com">hengyunabc</span><!--[-->, <!--]--><!--]--><!--[--><span class="contributor" title="email: 26602940+0xflotus@users.noreply.github.com">0xflotus</span><!--[-->, <!--]--><!--]--><!--[--><span class="contributor" title="email: LHearen@126.com">Hearen</span><!--[-->, <!--]--><!--]--><!--[--><span class="contributor" title="email: hollowman186@vip.qq.com">Hollow Man</span><!--[-->, <!--]--><!--]--><!--[--><span class="contributor" title="email: favoorr@gmail.com">Jerry</span><!--[-->, <!--]--><!--]--><!--[--><span class="contributor" title="email: lhearen@gmail.com">LHearen</span><!--[-->, <!--]--><!--]--><!--[--><span class="contributor" title="email: ian.luo@gmail.com">beiwei30</span><!----><!--]--><!--]--></span></div></footer><!----><!--[--><!--]--></main><!--]--></div><!----><!--]--></div>
|
||
|
<script type="module" src="/assets/app.b2be689e.js" defer></script>
|
||
|
</body>
|
||
|
</html>
|