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/retransform.html

91 lines
75 KiB
HTML

<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
2 years ago
<meta name="generator" content="VuePress 2.0.0-beta.51">
<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);
})();
2 years ago
</script><meta name="aes-config" content="pid=xux-opensource&user_type=101&uid=&username=&dim10=arthas"><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>retransform | arthas</title><meta name="description" content="arthas user document">
<link rel="modulepreload" href="/assets/app.1e03d722.js"><link rel="modulepreload" href="/assets/retransform.html.d306096d.js"><link rel="modulepreload" href="/assets/retransform.html.a21bf652.js"><link rel="prefetch" href="/assets/index.html.f224ea50.js"><link rel="prefetch" href="/assets/index.html.53b0a385.js"><link rel="prefetch" href="/assets/index.html.b9bbcc19.js"><link rel="prefetch" href="/assets/advanced-use.html.3fcb0afe.js"><link rel="prefetch" href="/assets/advice-class.html.1890d449.js"><link rel="prefetch" href="/assets/agent.html.54d3aff2.js"><link rel="prefetch" href="/assets/arthas-properties.html.626356c8.js"><link rel="prefetch" href="/assets/arthas3.html.c7349dd1.js"><link rel="prefetch" href="/assets/async.html.5bbf801f.js"><link rel="prefetch" href="/assets/auth.html.ccc35dde.js"><link rel="prefetch" href="/assets/base64.html.fe7e16e0.js"><link rel="prefetch" href="/assets/batch-support.html.1abf8ea5.js"><link rel="prefetch" href="/assets/cat.html.3d95b314.js"><link rel="prefetch" href="/assets/classloader.html.47c87a4d.js"><link rel="prefetch" href="/assets/cls.html.7accf38a.js"><link rel="prefetch" href="/assets/commands.html.2f443e1c.js"><link rel="prefetch" href="/assets/contact-us.html.266f50aa.js"><link rel="prefetch" href="/assets/dashboard.html.ea6b4b50.js"><link rel="prefetch" href="/assets/docker.html.c035d2b8.js"><link rel="prefetch" href="/assets/download.html.2b30ad49.js"><link rel="prefetch" href="/assets/dump.html.261d613c.js"><link rel="prefetch" href="/assets/echo.html.ad06a0b4.js"><link rel="prefetch" href="/assets/faq.html.8152a298.js"><link rel="prefetch" href="/assets/getstatic.html.5ea145dc.js"><link rel="prefetch" href="/assets/grep.html.16fb88a2.js"><link rel="prefetch" href="/assets/groovy.html.b6c8a167.js"><link rel="prefetch" href="/assets/heapdump.html.64bc3647.js"><link rel="prefetch" href="/assets/help.html.401a5c50.js"><link rel="prefetch" href="/assets/history.html.71d21c44.js"><link rel="prefetch" href="/assets/http-api.html.b03c863f.js"><link rel="prefetch" href="/assets/idea-plugin.html.293987e8.js"><link rel="prefetch" href="/assets/install-detail.html.7b01f74c.js"><link rel="prefetch" href="/assets/jad.html.9673f4c8.js"><link rel="prefetch" href="/assets/jfr.html.4b8c143a.js"><link rel="prefetch" href="/assets/jvm.html.4b5abc31.js"><link rel="prefetch" href="/assets/keymap.html.3cdbd08a.js"><link rel="prefetch" href="/assets/logger.html.4ee3cdde.js"><link rel="prefetch" href="/assets/manual-install.html.2155ba94.js"><link rel="prefetch" href="/assets/mbean.html.cffe704a.js"><link rel="prefetch" href="/assets/mc.html.1aaf539f.js"><link rel="prefetch" href="/assets/memory.html.75e1b92b.js"><link rel="prefetch" href="/assets/monitor.html.b049f11d.js"><link rel="prefetch" href="/assets/ognl.html.dc24abdb.js"><link rel="prefetch" href="/assets/options.html.1782ffab.js"><link rel="prefetch" href="/assets/perfcounter.html.b60e05e2.js"><link rel="prefetch" href="/assets/profiler.html.7325f874.js"><link rel="prefetch" href="/assets/pwd.html.76bb64f2.js"><link rel="prefetch" href="/assets/quick-start.html.eb0e924f.js"><link rel="prefetch" href="/assets/quit.html.1a493ee5.js"><link rel="prefetch" href="/assets/redefine.html.8b6b0f71.js"><link rel="prefetch" href="/assets/release-notes.html.e34f5871.js"><link rel="prefetch" href="/assets/reset.html.658f1038.js"><link rel="prefetch" href="/assets/retransform.html.7ba40ee4.js"><link rel="prefetch" href="/assets/save-log.html.f1336d26.js"><link rel="prefetch" href="/assets/sc.html.d224c68c.js"><link rel="prefetch" href="/assets/session.html.eb785b35.js"><link rel="prefetch" href="/assets/sm.html.d8d935ba.js"><link rel="prefetch" href="/assets/spring-boot-starter.html.1bed9366.js"><link rel="prefetch" href="/assets/stack.html.8dd7edc1.js"><link rel="prefetch" href="/assets/start-arthas.html.8c925c60.js"><link rel="prefetch" href="/assets/stop.html.4399d226.js"><link rel="prefetch" href="/assets/sysenv.html.77702c39.js"><link rel="prefetch" href="/assets/sysprop.html.55d9ec38.js"><link rel="prefetch" href="/assets/tee.html.
1 year ago
<link rel="stylesheet" href="/assets/style.cf0d4c26.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="" data-v-a8869d06><!----><span class="site-name can-hide" data-v-a8869d06>arthas</span><span class="navbar-version" data-v-a8869d06>v4.0.3</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="VERSIONS"><span class="title">VERSIONS</span><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="VERSIONS"><span class="title">VERSIONS</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://arthas.aliyun.com/3.x/en/" rel="noopener noreferrer" target="_blank" aria-label="v3.x"><!--[--><!--]--><span>v3.x</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><!--]--></ul></div></div><div class="navbar-item"><div class="navbar-dropdown-wrapper"><button class="navbar-dropdown-title" type="button" aria-label="Select language"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1em" height="1em" style="height:1.25rem;width:1.25rem;vertical-align:bottom;" viewbox="0 0 24 24"><path fill="currentColor" d="M13.35 22q-.6 0-.862-.387q-.263-.388-.063-.963l3.65-9.675q.15-.4.563-.688Q17.05 10 17.5 10q.425 0 .85.287q.425.288.575.688l3.65 9.675q.2.575-.062.963q-.263.387-.888.387q-.275 0-.5-.175q-.225-.175-.325-.425l-.85-2.45H15.1l-.875 2.45q-.1.25-.35.425q-.25.175-.525.175Zm2.35-4.8h3.6l-1.75-4.95h-.1ZM7.15 8.55q.4.725.85 1.337q.45.613 1.05 1.263q1.1-1.2 1.825-2.462Q11.6 7.425 12.1 6H2q-.425 0-.712-.287Q1 5.425 1 5t.288-.713Q1.575 4 2 4h6V3q0-.425.288-.713Q8.575 2 9 2t.713.287Q10 2.575 10 3v1h6q.425 0 .712.287Q17 4.575 17 5t-.288.713Q16.425 6 16 6h-1.9q-.525 1.775-1.425 3.45q-.9 1.675-2.225 3.15l2.4 2.45l-.75 2.05L9 14l-4.3 4.3q
2 years ago
retransform <span class="token parameter variable">-l</span>
retransform <span class="token parameter variable">-d</span> <span class="token number">1</span> <span class="token comment"># delete retransform entry</span>
retransform <span class="token parameter variable">--deleteAll</span> <span class="token comment"># delete all retransform entries</span>
retransform <span class="token parameter variable">--classPattern</span> demo.* <span class="token comment"># triger retransform classes</span>
retransform <span class="token parameter variable">-c</span> 327a647b /tmp/Test.class /tmp/Test<span class="token punctuation">\</span><span class="token variable">$Inner</span>.class
retransform <span class="token parameter variable">--classLoaderClass</span> <span class="token string">&#39;sun.misc.Launcher$AppClassLoader&#39;</span> /tmp/Test.class
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></div><h2 id="retransform-the-specified-class-file" tabindex="-1"><a class="header-anchor" href="#retransform-the-specified-class-file" aria-hidden="true">#</a> retransform the specified .class file</h2><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ retransform /tmp/MathGame.class
retransform success, size: <span class="token number">1</span>, classes:
demo.MathGame
2 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></div><p>Load the specified .class file, then parse out the class name, and then retransform the corresponding class loaded in the jvm. Every time a <code>.class</code> file is loaded, a retransform entry is recorded.</p><div class="custom-container tip"><p class="custom-container-title">TIP</p><p>If retransform is executed multiple times to load the same class file, there will be multiple retransform entries.</p></div><h2 id="view-retransform-entry" tabindex="-1"><a class="header-anchor" href="#view-retransform-entry" aria-hidden="true">#</a> View retransform entry</h2><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ retransform <span class="token parameter variable">-l</span>
Id ClassName TransformCount LoaderHash LoaderClassName
<span class="token number">1</span> demo.MathGame <span class="token number">1</span> null null
2 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></div><ul><li>TransformCount counts the times of attempts to return the .class file corresponding to the entry in the ClassFileTransformer#transform method, but it does not mean that the transform must be successful.</li></ul><h2 id="delete-the-specified-retransform-entry" tabindex="-1"><a class="header-anchor" href="#delete-the-specified-retransform-entry" aria-hidden="true">#</a> Delete the specified retransform entry</h2><p>Need to specify id:</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>retransform <span class="token parameter variable">-d</span> <span class="token number">1</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><h2 id="delete-all-retransform-entries" tabindex="-1"><a class="header-anchor" href="#delete-all-retransform-entries" aria-hidden="true">#</a> Delete all retransform entries</h2><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>retransform <span class="token parameter variable">--deleteAll</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><h2 id="explicitly-trigger-retransform" tabindex="-1"><a class="header-anchor" href="#explicitly-trigger-retransform" aria-hidden="true">#</a> Explicitly trigger retransform</h2><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ retransform <span class="token parameter variable">--classPattern</span> demo.MathGame
retransform success, size: <span class="token number">1</span>, classes:
demo.MathGame
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></div><div class="custom-container warning"><p class="custom-container-title">WARNING</p><p>Note: For the same class, when there are multiple retransform entries, if retransform is explicitly triggered, the entry added last will take effect (the one with the largest id).</p></div><h2 id="eliminate-the-influence-of-retransform" tabindex="-1"><a class="header-anchor" href="#eliminate-the-influence-of-retransform" aria-hidden="true">#</a> Eliminate the influence of retransform</h2><p>If you want to eliminate the impact after performing retransform on a class, you need to:</p><ul><li>Delete the retransform entry corresponding to this class</li><li>Re-trigger retransform</li></ul><div class="custom-container tip"><p class="custom-container-title">TIP</p><p>If you do not clear all retransform entries and trigger retransform again, the retransformed classes will still take effect when arthas stop.</p></div><h2 id="use-with-the-jad-mc-command" tabindex="-1"><a class="header-anchor" href="#use-with-the-jad-mc-command" aria-hidden="true">#</a> Use with the jad/mc command</h2><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>jad --source-only com.example.demo.arthas.user.UserController <span class="token operator">&gt;</span> /tmp/UserController.java
2 years ago
<span class="token function">mc</span> /tmp/UserController.java <span class="token parameter variable">-d</span> /tmp
retransform /tmp/com/example/demo/arthas/user/UserController.class
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></div><ul><li>Use <code>jad</code> command to decompile bytecode, and then you can use other editors, such as vim to modify the source code.</li><li><code>mc</code> command to compile the modified code</li><li>Load new bytecode with <code>retransform</code> command</li></ul><h2 id="tips-for-uploading-class-files-to-the-server" tabindex="-1"><a class="header-anchor" href="#tips-for-uploading-class-files-to-the-server" aria-hidden="true">#</a> Tips for uploading .class files to the server</h2><p>The <code>mc</code> command may fail. You can modify the code locally, compile it, and upload it to the server. Some servers do not allow direct uploading files, you can use the <code>base64</code> command to bypass.</p><ol><li><p>Convert the <code>.class</code> file to base64 first, then save it as result.txt</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>Base64 <span class="token operator">&lt;</span> Test.class <span class="token operator">&gt;</span> result.txt
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div></li><li><p>Login the server, create and edit <code>result.txt</code>, copy the local content, paste and save</p></li><li><p>Restore <code>result.txt</code> on the server to <code>.class</code></p><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>Base64 -d &lt; result.txt &gt; Test.class
3 years ago
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div></li><li><p>Use the md5 command to verify that the <code>.class</code> files are consistent.</p></li></ol><h2 id="restrictions-of-the-retransform-command" tabindex="-1"><a class="header-anchor" href="#restrictions-of-the-retransform-command" aria-hidden="true">#</a> Restrictions of the retransform command</h2><ul><li>New field/method is not allowed</li><li>The function that is running, no exit can not take effect, such as the new <code>System.out.println</code> added below, only the <code>run()</code> function will take effect.</li></ul><div class="language-java ext-java line-numbers-mode"><pre class="language-java"><code><span class="token keyword">public</span> <span class="token keyword">class</span> <span class="token class-name">MathGame</span> <span class="token punctuation">{</span>
<span class="token keyword">public</span> <span class="token keyword">static</span> <span class="token keyword">void</span> <span class="token function">main</span><span class="token punctuation">(</span><span class="token class-name">String</span><span class="token punctuation">[</span><span class="token punctuation">]</span> args<span class="token punctuation">)</span> <span class="token keyword">throws</span> <span class="token class-name">InterruptedException</span> <span class="token punctuation">{</span>
<span class="token class-name">MathGame</span> game <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">MathGame</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">while</span> <span class="token punctuation">(</span><span class="token boolean">true</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
game<span class="token punctuation">.</span><span class="token function">run</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
2 years ago
<span class="token class-name">TimeUnit</span><span class="token punctuation">.</span><span class="token constant">SECONDS</span><span class="token punctuation">.</span><span class="token function">sleep</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">// This doesn&#39;t work because the code keeps running in while</span>
<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">&quot;in loop&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token keyword">public</span> <span class="token keyword">void</span> <span class="token function">run</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token keyword">throws</span> <span class="token class-name">InterruptedException</span> <span class="token punctuation">{</span>
<span class="token comment">// This works because the run() function ends completely every time</span>
<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">&quot;call run()&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">try</span> <span class="token punctuation">{</span>
<span class="token keyword">int</span> number <span class="token operator">=</span> random<span class="token punctuation">.</span><span class="token function">nextInt</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token class-name">List</span><span class="token generics"><span class="token punctuation">&lt;</span><span class="token class-name">Integer</span><span class="token punctuation">&gt;</span></span> primeFactors <span class="token operator">=</span> <span class="token function">primeFactors</span><span class="token punctuation">(</span>number<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">print</span><span class="token punctuation">(</span>number<span class="token punctuation">,</span> primeFactors<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span> <span class="token keyword">catch</span> <span class="token punctuation">(</span><span class="token class-name">Exception</span> e<span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token class-name">String</span><span class="token punctuation">.</span><span class="token function">format</span><span class="token punctuation">(</span><span class="token string">&quot;illegalArgumentCount:%3d, &quot;</span><span class="token punctuation">,</span> illegalArgumentCount<span class="token punctuation">)</span> <span class="token operator">+</span> e<span class="token punctuation">.</span><span class="token function">getMessage</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
1 year 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 class="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><!--[--><!--]--></div><footer class="page-meta right-menu-padding" data-v-fdd717e0><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/retransform.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: i@fatpandac.com">Fatpandac</span><!----><!--]--><!--]--></span></div></footer><nav class="page-nav right-menu-padding" data-v-fdd717e0><p class="inner"><span class="prev"><a href="/en/doc/reset.html" class="" aria-label="reset"><!--[--><!--]--> reset <!--[--><!--]--></a></span><span class="next"><a href="/en/doc/sc.html" class="" aria-label="sc"><!--[--><!--]--> sc <!--[--><!--]--></a></span></p></nav><!--[--><!--]--></main><!--]--></div><!----><!--]--></div>
<script type="module" src="/assets/app.1e03d722.js" defer></script>
</body>
</html>