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

124 lines
84 KiB
HTML

<!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>
3 years ago
<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 - alibaba/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 - alibaba/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 - alibaba/arthas: Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas"><meta itemprop="name" content="Arthas"><meta itemprop="image" content="/images/arthas_mate_image.png"><meta itemprop="description" content="Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas - alibaba/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);
})();
3 years ago
</script><meta name="aes-config" content="pid=xux-opensource&user_type=101&uid=&username="><script src="//g.alicdn.com/alilog/mlog/aplus_v2.js" id="beacon-aplus" exparams="clog=o&aplus&sidx=aplusSidx&ckx=aplusCkx"></script><script src="//g.alicdn.com/aes/??tracker/1.0.34/index.js,tracker-plugin-pv/2.4.5/index.js,tracker-plugin-event/1.2.5/index.js,tracker-plugin-jserror/1.0.13/index.js,tracker-plugin-api/1.1.14/index.js,tracker-plugin-perf/1.1.8/index.js,tracker-plugin-eventTiming/1.0.4/index.js"></script><title>tt | arthas</title><meta name="description" content="arthas user document">
<link rel="modulepreload" href="/assets/app.cdce46bf.js"><link rel="modulepreload" href="/assets/tt.html.fd24ef06.js"><link rel="modulepreload" href="/assets/tt.html.f51e4330.js"><link rel="prefetch" href="/assets/index.html.ec74869a.js"><link rel="prefetch" href="/assets/index.html.d3cced9f.js"><link rel="prefetch" href="/assets/index.html.99601dee.js"><link rel="prefetch" href="/assets/advanced-use.html.d690d46c.js"><link rel="prefetch" href="/assets/advice-class.html.4e93ebd7.js"><link rel="prefetch" href="/assets/agent.html.a02fd5cb.js"><link rel="prefetch" href="/assets/arthas-properties.html.e0301951.js"><link rel="prefetch" href="/assets/arthas3.html.d1633eb8.js"><link rel="prefetch" href="/assets/async.html.17ea43ab.js"><link rel="prefetch" href="/assets/auth.html.86a52c48.js"><link rel="prefetch" href="/assets/base64.html.2edc61dd.js"><link rel="prefetch" href="/assets/batch-support.html.83e73d71.js"><link rel="prefetch" href="/assets/cat.html.f09e3f3d.js"><link rel="prefetch" href="/assets/classloader.html.8b2deb9e.js"><link rel="prefetch" href="/assets/cls.html.af39fd39.js"><link rel="prefetch" href="/assets/commands.html.9dc0463a.js"><link rel="prefetch" href="/assets/contact-us.html.16fb01ac.js"><link rel="prefetch" href="/assets/dashboard.html.a9c23e86.js"><link rel="prefetch" href="/assets/docker.html.797da397.js"><link rel="prefetch" href="/assets/download.html.a75cd477.js"><link rel="prefetch" href="/assets/dump.html.6579f6db.js"><link rel="prefetch" href="/assets/echo.html.79f44daf.js"><link rel="prefetch" href="/assets/faq.html.abd854f1.js"><link rel="prefetch" href="/assets/getstatic.html.38b9ce31.js"><link rel="prefetch" href="/assets/grep.html.f67b96a2.js"><link rel="prefetch" href="/assets/groovy.html.bcb88dfe.js"><link rel="prefetch" href="/assets/heapdump.html.47f4a9f6.js"><link rel="prefetch" href="/assets/help.html.ee0f4863.js"><link rel="prefetch" href="/assets/history.html.d66d9e9d.js"><link rel="prefetch" href="/assets/http-api.html.53120123.js"><link rel="prefetch" href="/assets/idea-plugin.html.e2603f6f.js"><link rel="prefetch" href="/assets/install-detail.html.cfd3d763.js"><link rel="prefetch" href="/assets/jad.html.d3b26fc7.js"><link rel="prefetch" href="/assets/jvm.html.8e719ad4.js"><link rel="prefetch" href="/assets/keymap.html.87fd1593.js"><link rel="prefetch" href="/assets/logger.html.cf471c6c.js"><link rel="prefetch" href="/assets/manual-install.html.1daf5a51.js"><link rel="prefetch" href="/assets/mbean.html.5f200d32.js"><link rel="prefetch" href="/assets/mc.html.9375ea5e.js"><link rel="prefetch" href="/assets/memory.html.c3ade2e6.js"><link rel="prefetch" href="/assets/monitor.html.11513f32.js"><link rel="prefetch" href="/assets/ognl.html.84b34988.js"><link rel="prefetch" href="/assets/options.html.1f134957.js"><link rel="prefetch" href="/assets/perfcounter.html.3f818559.js"><link rel="prefetch" href="/assets/profiler.html.55cdd6a9.js"><link rel="prefetch" href="/assets/pwd.html.abacd813.js"><link rel="prefetch" href="/assets/quick-start.html.d9abe6d7.js"><link rel="prefetch" href="/assets/quit.html.3f89724d.js"><link rel="prefetch" href="/assets/redefine.html.d3754390.js"><link rel="prefetch" href="/assets/release-notes.html.dc8ff1f0.js"><link rel="prefetch" href="/assets/reset.html.a0f5f519.js"><link rel="prefetch" href="/assets/retransform.html.b0ba0863.js"><link rel="prefetch" href="/assets/save-log.html.6f759775.js"><link rel="prefetch" href="/assets/sc.html.6a0420ad.js"><link rel="prefetch" href="/assets/session.html.537ea477.js"><link rel="prefetch" href="/assets/sm.html.d57d9750.js"><link rel="prefetch" href="/assets/spring-boot-starter.html.02e93d34.js"><link rel="prefetch" href="/assets/stack.html.7ed4a520.js"><link rel="prefetch" href="/assets/start-arthas.html.5421937d.js"><link rel="prefetch" href="/assets/stop.html.aa8ba3f6.js"><link rel="prefetch" href="/assets/sysenv.html.169780ba.js"><link rel="prefetch" href="/assets/sysprop.html.0ea72780.js"><link rel="prefetch" href="/assets/tee.html.afeb55ba.js"><link rel="prefetch" href="/assets/thread.html.449bfcc3.js"><l
<link rel="stylesheet" href="/assets/style.3627c3cf.css">
</head>
<body>
3 years ago
<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="" data-v-2aa8cc94><!----><span class="site-name can-hide" data-v-2aa8cc94>arthas</span><span class="navbar-version" data-v-2aa8cc94>v3.6.4</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&amp;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"><a href="/en/doc/commands.md" class="" aria-label="COMMANDS"><!--[--><!--]--> COMMANDS <!--[--><!--]--></a></div><div class="navbar-item"><a href="/en/doc/download.md" class="" aria-label="DOWNLOAD"><!--[--><!--]--> DOWNLOAD <!--[--><!--]--></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/aha
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">66</span> ms.
INDEX TIMESTAMP COST<span class="token punctuation">(</span>ms<span class="token punctuation">)</span> IS-RET IS-EXP OBJECT CLASS METHOD
-------------------------------------------------------------------------------------------------------------------------------------
<span class="token number">1000</span> <span class="token number">2018</span>-12-04 <span class="token number">11</span>:15:38 <span class="token number">1.096236</span> <span class="token boolean">false</span> <span class="token boolean">true</span> 0x4b67cf4d MathGame primeFactors
<span class="token number">1001</span> <span class="token number">2018</span>-12-04 <span class="token number">11</span>:15:39 <span class="token number">0.191848</span> <span class="token boolean">false</span> <span class="token boolean">true</span> 0x4b67cf4d MathGame primeFactors
<span class="token number">1002</span> <span class="token number">2018</span>-12-04 <span class="token number">11</span>:15:40 <span class="token number">0.069523</span> <span class="token boolean">false</span> <span class="token boolean">true</span> 0x4b67cf4d MathGame primeFactors
<span class="token number">1003</span> <span class="token number">2018</span>-12-04 <span class="token number">11</span>:15:41 <span class="token number">0.186073</span> <span class="token boolean">false</span> <span class="token boolean">true</span> 0x4b67cf4d MathGame primeFactors
<span class="token number">1004</span> <span class="token number">2018</span>-12-04 <span class="token number">11</span>:15:42 <span class="token number">17.76437</span> <span class="token boolean">true</span> <span class="token boolean">false</span> 0x4b67cf4d MathGame primeFactors
3 years ago
</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><ul><li><p><code>-t</code></p><p>record the calling context of the method <code>demo.MathGame primeFactors</code></p></li><li><p><code>-n 3</code></p><p>limit the number of the records (avoid overflow for too many records; with <code>-n</code> option, Arthas can automatically stop recording once the records reach the specified limit)</p></li><li><p>Property</p></li></ul><table><thead><tr><th>Name</th><th>Specification</th></tr></thead><tbody><tr><td>INDEX</td><td>the index for each call based on time</td></tr><tr><td>TIMESTAMP</td><td>time to invoke the method</td></tr><tr><td>COST(ms)</td><td>time cost of the method call</td></tr><tr><td>IS-RET</td><td>whether method exits with normal return</td></tr><tr><td>IS-EXP</td><td>whether method failed with exceptions</td></tr><tr><td>OBJECT</td><td><code>hashCode()</code> of the object invoking the method</td></tr><tr><td>CLASS</td><td>class name of the object invoking the method</td></tr><tr><td>METHOD</td><td>method being invoked</td></tr></tbody></table><ul><li>Condition expression</li></ul><p>Tips:</p><ol><li><code>tt -t *Test print params.length==1</code> with different amounts of parameters;</li><li><code>tt -t *Test print &#39;params[1] instanceof Integer&#39;</code> with different types of parameters;</li><li><code>tt -t *Test print params[0].mobile==&quot;13989838402&quot;</code> with specified parameter.</li></ol><p>Advanced:</p><ul><li><a href="/en/doc/advice-class.html" class="">Critical fields in expression</a></li><li><a href="https://github.com/alibaba/arthas/issues/71" target="_blank" rel="noopener noreferrer">Special usage<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><a href="https://commons.apache.org/proper/commons-ognl/language-guide.html" target="_blank" rel="noopener noreferrer">OGNL official guide<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></ul><h3 id="list-all-records" tabindex="-1"><a class="header-anchor" href="#list-all-records" aria-hidden="true">#</a> List all records</h3><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ tt -l
INDEX TIMESTAMP COST<span class="token punctuation">(</span>ms<span class="token punctuation">)</span> IS-RET IS-EXP OBJECT CLASS METHOD
-------------------------------------------------------------------------------------------------------------------------------------
<span class="token number">1000</span> <span class="token number">2018</span>-12-04 <span class="token number">11</span>:15:38 <span class="token number">1.096236</span> <span class="token boolean">false</span> <span class="token boolean">true</span> 0x4b67cf4d MathGame primeFactors
<span class="token number">1001</span> <span class="token number">2018</span>-12-04 <span class="token number">11</span>:15:39 <span class="token number">0.191848</span> <span class="token boolean">false</span> <span class="token boolean">true</span> 0x4b67cf4d MathGame primeFactors
<span class="token number">1002</span> <span class="token number">2018</span>-12-04 <span class="token number">11</span>:15:40 <span class="token number">0.069523</span> <span class="token boolean">false</span> <span class="token boolean">true</span> 0x4b67cf4d MathGame primeFactors
<span class="token number">1003</span> <span class="token number">2018</span>-12-04 <span class="token number">11</span>:15:41 <span class="token number">0.186073</span> <span class="token boolean">false</span> <span class="token boolean">true</span> 0x4b67cf4d MathGame primeFactors
<span class="token number">1004</span> <span class="token number">2018</span>-12-04 <span class="token number">11</span>:15:42 <span class="token number">17.76437</span> <span class="token boolean">true</span> <span class="token boolean">false</span> 0x4b67cf4d MathGame primeFactors
<span class="token number">9</span>
<span class="token number">1005</span> <span class="token number">2018</span>-12-04 <span class="token number">11</span>:15:43 <span class="token number">0.4776</span> <span class="token boolean">false</span> <span class="token boolean">true</span> 0x4b67cf4d MathGame primeFactors
Affect<span class="token punctuation">(</span>row-cnt:6<span class="token punctuation">)</span> cost <span class="token keyword">in</span> <span class="token number">4</span> ms.
3 years ago
</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><h3 id="searching-for-records" tabindex="-1"><a class="header-anchor" href="#searching-for-records" aria-hidden="true">#</a> Searching for records</h3><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ tt -s <span class="token string">&#39;method.name==&quot;primeFactors&quot;&#39;</span>
INDEX TIMESTAMP COST<span class="token punctuation">(</span>ms<span class="token punctuation">)</span> IS-RET IS-EXP OBJECT CLASS METHOD
-------------------------------------------------------------------------------------------------------------------------------------
<span class="token number">1000</span> <span class="token number">2018</span>-12-04 <span class="token number">11</span>:15:38 <span class="token number">1.096236</span> <span class="token boolean">false</span> <span class="token boolean">true</span> 0x4b67cf4d MathGame primeFactors
<span class="token number">1001</span> <span class="token number">2018</span>-12-04 <span class="token number">11</span>:15:39 <span class="token number">0.191848</span> <span class="token boolean">false</span> <span class="token boolean">true</span> 0x4b67cf4d MathGame primeFactors
<span class="token number">1002</span> <span class="token number">2018</span>-12-04 <span class="token number">11</span>:15:40 <span class="token number">0.069523</span> <span class="token boolean">false</span> <span class="token boolean">true</span> 0x4b67cf4d MathGame primeFactors
<span class="token number">1003</span> <span class="token number">2018</span>-12-04 <span class="token number">11</span>:15:41 <span class="token number">0.186073</span> <span class="token boolean">false</span> <span class="token boolean">true</span> 0x4b67cf4d MathGame primeFactors
<span class="token number">1004</span> <span class="token number">2018</span>-12-04 <span class="token number">11</span>:15:42 <span class="token number">17.76437</span> <span class="token boolean">true</span> <span class="token boolean">false</span> 0x4b67cf4d MathGame primeFactors
<span class="token number">9</span>
<span class="token number">1005</span> <span class="token number">2018</span>-12-04 <span class="token number">11</span>:15:43 <span class="token number">0.4776</span> <span class="token boolean">false</span> <span class="token boolean">true</span> 0x4b67cf4d MathGame primeFactors
Affect<span class="token punctuation">(</span>row-cnt:6<span class="token punctuation">)</span> cost <span class="token keyword">in</span> <span class="token number">607</span> ms.
3 years ago
</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>Advanced:</p><ul><li><a href="/en/doc/advice-class.html" class="">Critical fields in expression</a></li></ul><h3 id="check-context-of-the-call" tabindex="-1"><a class="header-anchor" href="#check-context-of-the-call" aria-hidden="true">#</a> Check context of the call</h3><p>Using <code>tt -i &lt;index&gt;</code> to check a specific calling details.</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ tt -i <span class="token number">1003</span>
INDEX <span class="token number">1003</span>
GMT-CREATE <span class="token number">2018</span>-12-04 <span class="token number">11</span>:15:41
COST<span class="token punctuation">(</span>ms<span class="token punctuation">)</span> <span class="token number">0.186073</span>
OBJECT 0x4b67cf4d
CLASS demo.MathGame
METHOD primeFactors
IS-RETURN <span class="token boolean">false</span>
IS-EXCEPTION <span class="token boolean">true</span>
PARAMETERS<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span> @Integer<span class="token punctuation">[</span>-564322413<span class="token punctuation">]</span>
THROW-EXCEPTION java.lang.IllegalArgumentException: number is: -564322413, need <span class="token operator">&gt;=</span> <span class="token number">2</span>
at demo.MathGame.primeFactors<span class="token punctuation">(</span>MathGame.java:46<span class="token punctuation">)</span>
at demo.MathGame.run<span class="token punctuation">(</span>MathGame.java:24<span class="token punctuation">)</span>
at demo.MathGame.main<span class="token punctuation">(</span>MathGame.java:16<span class="token punctuation">)</span>
Affect<span class="token punctuation">(</span>row-cnt:1<span class="token punctuation">)</span> cost <span class="token keyword">in</span> <span class="token number">11</span> ms.
3 years ago
</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><h3 id="replay-record" tabindex="-1"><a class="header-anchor" href="#replay-record" aria-hidden="true">#</a> Replay record</h3><p>Since Arthas stores the context of the call, you can even <em>replay</em> the method calling afterwards with extra option <code>-p</code> to replay the issue for advanced troubleshooting, option <code>--replay-times</code> define the replay execution times, option <code>--replay-interval</code> define the interval(unit in ms,with default value 1000) of replays</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ tt -i <span class="token number">1004</span> -p
RE-INDEX <span class="token number">1004</span>
GMT-REPLAY <span class="token number">2018</span>-12-04 <span class="token number">11</span>:26:00
OBJECT 0x4b67cf4d
CLASS demo.MathGame
METHOD primeFactors
PARAMETERS<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span> @Integer<span class="token punctuation">[</span><span class="token number">946738738</span><span class="token punctuation">]</span>
IS-RETURN <span class="token boolean">true</span>
IS-EXCEPTION <span class="token boolean">false</span>
RETURN-OBJ @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">11</span><span class="token punctuation">]</span>,
@Integer<span class="token punctuation">[</span><span class="token number">17</span><span class="token punctuation">]</span>,
@Integer<span class="token punctuation">[</span><span class="token number">2531387</span><span class="token punctuation">]</span>,
<span class="token punctuation">]</span>
Time fragment<span class="token punctuation">[</span><span class="token number">1004</span><span class="token punctuation">]</span> successfully replayed.
Affect<span class="token punctuation">(</span>row-cnt:1<span class="token punctuation">)</span> cost <span class="token keyword">in</span> <span class="token number">14</span> ms.
3 years ago
</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></div><h3 id="watch-express" tabindex="-1"><a class="header-anchor" href="#watch-express" aria-hidden="true">#</a> Watch express</h3><p><code>-w, --watch-express</code> watch the time fragment by ognl express.</p><ul><li>You can used all variables in <a href="/en/doc/advice-class.html" class="">fundamental fields in expressions</a> for the watch express。</li></ul><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token punctuation">[</span>arthas@10718<span class="token punctuation">]</span>$ tt -t demo.MathGame run -n <span class="token number">5</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">56</span> ms, listenerId: <span class="token number">1</span>
INDEX TIMESTAMP COST<span class="token punctuation">(</span>ms<span class="token punctuation">)</span> IS-RET IS-EXP OBJECT CLASS METHOD
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
<span class="token number">1000</span> <span class="token number">2021</span>-01-08 <span class="token number">21</span>:54:17 <span class="token number">0.901091</span> <span class="token boolean">true</span> <span class="token boolean">false</span> 0x7699a589 MathGame run
<span class="token punctuation">[</span>arthas@10718<span class="token punctuation">]</span>$ tt -w <span class="token string">&#39;target.illegalArgumentCount&#39;</span> -x <span class="token number">1</span> -i <span class="token number">1000</span>
@Integer<span class="token punctuation">[</span><span class="token number">60</span><span class="token punctuation">]</span>
Affect<span class="token punctuation">(</span>row-cnt:1<span class="token punctuation">)</span> cost <span class="token keyword">in</span> <span class="token number">7</span> ms.
</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><ul><li>Get a static field and calling a static method</li></ul><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token punctuation">[</span>arthas@10718<span class="token punctuation">]</span>$ tt -t demo.MathGame run -n <span class="token number">5</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">56</span> ms, listenerId: <span class="token number">1</span>
INDEX TIMESTAMP COST<span class="token punctuation">(</span>ms<span class="token punctuation">)</span> IS-RET IS-EXP OBJECT CLASS METHOD
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
<span class="token number">1000</span> <span class="token number">2021</span>-01-08 <span class="token number">21</span>:54:17 <span class="token number">0.901091</span> <span class="token boolean">true</span> <span class="token boolean">false</span> 0x7699a589 MathGame run
<span class="token punctuation">[</span>arthas@10718<span class="token punctuation">]</span>$ tt -w <span class="token string">&#39;@demo.MathGame@random.nextInt(100)&#39;</span> -x <span class="token number">1</span> -i <span class="token number">1000</span>
@Integer<span class="token punctuation">[</span><span class="token number">46</span><span class="token punctuation">]</span>
3 years ago
</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><p>Note that <code>com.taobao.arthas.core.advisor.Advice#getLoader</code> is used here, and that it is better to use the exact <code>classloader</code> <a href="/en/doc/ognl.html" class="">ognl</a>.</p><p>Advanced usage <a href="https://github.com/alibaba/arthas/issues/482" target="_blank" rel="noopener noreferrer">get spring context to call the bean method<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></p><p>F.Y.I</p><ol><li><p><strong>Loss</strong> of the <code>ThreadLocal</code></p><p>Arthas save params into an array, then invoke the method with the params again. The method execute in another thread, so the <code>ThreadLocal</code> <strong>lost</strong>.</p></li><li><p>params may be modified</p><p>Arthas save params into an array, they are object references. The Objects may be modified by other code.</p></li></ol></div><!--[--><!--]--></div><footer class="page-meta right-menu-padding" data-v-8e2a76de><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/tt.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: lhearen@gmail.com">LHearen</span><!--[-->, <!--]--><!--]--><!--[--><span class="contributor" title="email: superheizai@aliyun.com">superheizai</span><!--[-->, <!--]--><!--]--><!--[--><span class="contributor" title="email: i@fatpandac.com">Fatpandac</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: sergioescala@gmail.com">Sergio Escalante</span><!--[-->, <!--]--><!--]--><!--[--><span class="contributor" title="email: 983433479@qq.com">汪吉</span><!----><!--]--><!--]--></span></div></footer><nav class="page-nav right-menu-padding" data-v-8e2a76de><p class="inner"><span class="prev"><a href="/en/doc/trace.html" class="" aria-label="trace"><!--[--><!--]--> trace <!--[--><!--]--></a></span><span class="next"><a href="/en/doc/watch.html" class="" aria-label="watch"><!--[--><!--]--> watch <!--[--><!--]--></a></span></p></nav><!--[--><!--]--></main><!--]--></div><!---
<script type="module" src="/assets/app.cdce46bf.js" defer></script>
</body>
</html>