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/doc/watch.html

229 lines
120 KiB
HTML

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<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>
<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);
})();
</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>watch | arthas</title><meta name="description" content="arthas 使用文档">
<link rel="modulepreload" href="/assets/app.5024572d.js"><link rel="modulepreload" href="/assets/watch.html.6bbe9bc3.js"><link rel="modulepreload" href="/assets/watch.html.8ab01f20.js"><link rel="prefetch" href="/assets/index.html.0310d6b7.js"><link rel="prefetch" href="/assets/index.html.26b36e14.js"><link rel="prefetch" href="/assets/index.html.f81666f3.js"><link rel="prefetch" href="/assets/advanced-use.html.d19ed71d.js"><link rel="prefetch" href="/assets/advice-class.html.1d3efc8d.js"><link rel="prefetch" href="/assets/agent.html.03c76533.js"><link rel="prefetch" href="/assets/arthas-properties.html.0a68e303.js"><link rel="prefetch" href="/assets/arthas3.html.e9ff98d3.js"><link rel="prefetch" href="/assets/async.html.2d7e17b7.js"><link rel="prefetch" href="/assets/auth.html.e6d4b91c.js"><link rel="prefetch" href="/assets/base64.html.867d2b97.js"><link rel="prefetch" href="/assets/batch-support.html.520a314a.js"><link rel="prefetch" href="/assets/cat.html.0e3f9bec.js"><link rel="prefetch" href="/assets/classloader.html.abb8c597.js"><link rel="prefetch" href="/assets/cls.html.67a6c0fd.js"><link rel="prefetch" href="/assets/commands.html.03ccce33.js"><link rel="prefetch" href="/assets/contact-us.html.fca90e78.js"><link rel="prefetch" href="/assets/dashboard.html.a1edecce.js"><link rel="prefetch" href="/assets/docker.html.71dad61b.js"><link rel="prefetch" href="/assets/download.html.d73305eb.js"><link rel="prefetch" href="/assets/dump.html.c3686557.js"><link rel="prefetch" href="/assets/echo.html.47b2931c.js"><link rel="prefetch" href="/assets/faq.html.6193ecbd.js"><link rel="prefetch" href="/assets/getstatic.html.90b40e46.js"><link rel="prefetch" href="/assets/grep.html.36066f19.js"><link rel="prefetch" href="/assets/groovy.html.041e64fb.js"><link rel="prefetch" href="/assets/heapdump.html.5f1f0a0f.js"><link rel="prefetch" href="/assets/help.html.cc8081c7.js"><link rel="prefetch" href="/assets/history.html.799a682b.js"><link rel="prefetch" href="/assets/http-api.html.6176e7ac.js"><link rel="prefetch" href="/assets/idea-plugin.html.a7268a5f.js"><link rel="prefetch" href="/assets/install-detail.html.8e837092.js"><link rel="prefetch" href="/assets/jad.html.2f34aa50.js"><link rel="prefetch" href="/assets/jfr.html.9b233b9d.js"><link rel="prefetch" href="/assets/jvm.html.66acd429.js"><link rel="prefetch" href="/assets/keymap.html.7cd121a8.js"><link rel="prefetch" href="/assets/logger.html.2598a2ad.js"><link rel="prefetch" href="/assets/manual-install.html.b48552bf.js"><link rel="prefetch" href="/assets/mbean.html.865d8303.js"><link rel="prefetch" href="/assets/mc.html.417d96c3.js"><link rel="prefetch" href="/assets/memory.html.bb61b4be.js"><link rel="prefetch" href="/assets/monitor.html.8168838f.js"><link rel="prefetch" href="/assets/ognl.html.5a4b1f35.js"><link rel="prefetch" href="/assets/options.html.4862477c.js"><link rel="prefetch" href="/assets/perfcounter.html.96e8509c.js"><link rel="prefetch" href="/assets/profiler.html.3785275e.js"><link rel="prefetch" href="/assets/pwd.html.9d18ed39.js"><link rel="prefetch" href="/assets/quick-start.html.faa996a0.js"><link rel="prefetch" href="/assets/quit.html.99d279b0.js"><link rel="prefetch" href="/assets/redefine.html.c75cc086.js"><link rel="prefetch" href="/assets/release-notes.html.3c31db7c.js"><link rel="prefetch" href="/assets/reset.html.5a9cddf1.js"><link rel="prefetch" href="/assets/retransform.html.ce38448b.js"><link rel="prefetch" href="/assets/save-log.html.037bac18.js"><link rel="prefetch" href="/assets/sc.html.556dbf54.js"><link rel="prefetch" href="/assets/session.html.3205414e.js"><link rel="prefetch" href="/assets/sm.html.87672a15.js"><link rel="prefetch" href="/assets/spring-boot-starter.html.e00635b2.js"><link rel="prefetch" href="/assets/stack.html.82c27723.js"><link rel="prefetch" href="/assets/start-arthas.html.8895ebb1.js"><link rel="prefetch" href="/assets/stop.html.37513358.js"><link rel="prefetch" href="/assets/sysenv.html.fae02d4a.js"><link rel="prefetch" href="/assets/sysprop.html.0c2447a7.js"><link rel="prefetch" href="/assets/tee.html.65a6dcbf.js"><link rel="prefetch" href="/assets/thread.html.7d4f783c.js"><link rel="prefetch" href="/assets/trace.html.7fc97a55.js"><link rel="prefetch" href="/assets/tt.html.2f8ba6a9.js"><link rel="prefetch" href="/assets/tunnel.html.f6c95c19.js"><link rel="prefetch" href="/assets/version.html.65d1d217.js"><link rel="prefetch" href="/assets/vmoption.html.4a4452fc.js"><link rel="prefetch" href="/assets/vmtool.html.785e15b0.js"><link rel="prefetch" href="/assets/web-console.html.ee889bc8.js"><link rel="prefetch" href="/assets/index.html.4473f26b.js"><link rel="prefetch" href="/assets/advanced-use.html.1a28f6a5.js"><link rel="prefetch" href="/assets/advice-class.html.d8ad50b3.js"><link rel="prefetch" href="/assets/agent.html.7961745e.js"><link rel="prefetch" href="/assets/arthas-properties.html.8021fe71.js"><link rel="prefetch" href="/assets/async.html.cee6c639.js"><link rel="prefetch" href="/assets/auth.html.d9567203.js"><link rel="prefetch" href="/assets/base64.html.f23d1c1a.js"><link rel="prefetch" href="/assets/batch-support.html.316cd7e8.js"><link rel="prefetch" href="/assets/cat.html.4335c5dc.js"><link rel="prefetch" href="/assets/classloader.html.bf7956ab.js"><link rel="prefetch" href="/assets/cls.html.97d2b84f.js"><link rel="prefetch" href="/assets/commands.html.15628afe.js"><link rel="prefetch" href="/assets/contact-us.html.903f2e33.js"><link rel="prefetch" href="/assets/dashboard.html.bcc51fa6.js"><link rel="prefetch" href="/assets/docker.html.6569bd54.js"><link rel="prefetch" href="/assets/download.html.c6ec554d.js"><link rel="prefetch" href="/assets/dump.html.ceb6ce3f.js"><link rel="prefetch" href="/assets/echo.html.78d074ba.js"><link rel="prefetch" href="/assets/faq.html.ae91bbb1.js"><link rel="prefetch" href="/assets/getstatic.html.238af461.js"><link rel="prefetch" href="/assets/grep.html.765b9db4.js"><link rel="prefetch" href="/assets/groovy.html.07ba29d4.js"><link rel="prefetch" href="/assets/heapdump.html.45aa4058.js"><link rel="prefetch" href="/assets/help.html.6b5e680d.js"><link rel="prefetch" href="/assets/history.html.cbd4f1dc.js"><link rel="prefetch" href="/assets/http-api.html.08106e49.js"><link rel="prefetch" href="/assets/idea-plugin.html.696d1a9b.js"><link rel="prefetch" href="/assets/install-detail.html.ada22454.js"><link rel="prefetch" href="/assets/jad.html.a61a52e4.js"><link rel="prefetch" href="/assets/jfr.html.a65beb58.js"><link rel="prefetch" href="/assets/jvm.html.b8b1aa17.js"><link rel="prefetch" href="/assets/keymap.html.4b97d548.js"><link rel="prefetch" href="/assets/logger.html.4c886eeb.js"><link rel="prefetch" href="/assets/manual-install.html.b1712f99.js"><link rel="prefetch" href="/assets/mbean.html.e50ffcee.js"><link rel="prefetch" href="/assets/mc.html.aa0438cf.js"><link rel="prefetch" href="/assets/memory.html.bc85782d.js"><link rel="prefetch" href="/assets/monitor.html.c8fd104a.js"><link rel="prefetch" href="/assets/ognl.html.5fa32203.js"><link rel="prefetch" href="/assets/options.html.e9d3bf7d.js"><link rel="prefetch" href="/assets/perfcounter.html.6022385f.js"><link rel="prefetch" href="/assets/profiler.html.6187e56a.js"><link rel="prefetch" href="/assets/pwd.html.ac6fa9ed.js"><link rel="prefetch" href="/assets/quick-start.html.e2dbf20d.js"><link rel="prefetch" href="/assets/quit.html.3576a0df.js"><link rel="prefetch" href="/assets/redefine.html.647030fe.js"><link rel="prefetch" href="/assets/release-notes.html.9cd9ef9a.js"><link rel="prefetch" href="/assets/reset.html.aea64667.js"><link rel="prefetch" href="/assets/retransform.html.d2256f08.js"><link rel="prefetch" href="/assets/save-log.html.2e2ab47b.js"><link rel="prefetch" href="/assets/sc.html.73cdcc54.js"><link rel="prefetch" href="/assets/session.html.f299a357.js"><link rel="prefetch" href="/assets/sm.html.6fb2da77.js"><link rel="prefetch" href="/assets/spring-boot-starter.html.d3fe861a.js"><link rel="prefetch" href="/assets/stack.html.3a3543ef.js"><link rel="prefetch" href="/assets/start-arthas.html.89aedbd5.js"><link rel="prefetch" href="/assets/stop.html.375aab78.js"><link rel="prefetch" href="/assets/sysenv.html.eebfa441.js"><link rel="prefetch" href="/assets/sysprop.html.d2af9b76.js"><link rel="prefetch" href="/assets/tee.html.3b901b19.js"><link rel="prefetch" href="/assets/thread.html.7bd6ce5a.js"><link rel="prefetch" href="/assets/trace.html.1816b5e5.js"><link rel="prefetch" href="/assets/tt.html.9fd40d2c.js"><link rel="prefetch" href="/assets/tunnel.html.c4dbd72e.js"><link rel="prefetch" href="/assets/version.html.94606777.js"><link rel="prefetch" href="/assets/vmoption.html.07f6d06f.js"><link rel="prefetch" href="/assets/vmtool.html.6ca46c5c.js"><link rel="prefetch" href="/assets/watch.html.61dde141.js"><link rel="prefetch" href="/assets/web-console.html.7f55a6b5.js"><link rel="prefetch" href="/assets/intro.html.fb69e77b.js"><link rel="prefetch" href="/assets/user-question-history11440.html.0050c901.js"><link rel="prefetch" href="/assets/user-question-history11442.html.2b6f935c.js"><link rel="prefetch" href="/assets/user-question-history11443.html.f6cd4964.js"><link rel="prefetch" href="/assets/user-question-history11444.html.ce992129.js"><link rel="prefetch" href="/assets/user-question-history11450.html.2756279b.js"><link rel="prefetch" href="/assets/user-question-history11451.html.3d594a86.js"><link rel="prefetch" href="/assets/user-question-history11452.html.e94aac28.js"><link rel="prefetch" href="/assets/user-question-history11453.html.8a135789.js"><link rel="prefetch" href="/assets/user-question-history11454.html.7bbd3f53.js"><link rel="prefetch" href="/assets/user-question-history11466.html.6a554403.js"><link rel="prefetch" href="/assets/user-question-history11467.html.dfe7d3f0.js"><link rel="prefetch" href="/assets/user-question-history11468.html.07400649.js"><link rel="prefetch" href="/assets/user-question-history11469.html.267c96b6.js"><link rel="prefetch" href="/assets/user-question-history11784.html.56fcf97f.js"><link rel="prefetch" href="/assets/user-question-history11795.html.d21e8e72.js"><link rel="prefetch" href="/assets/user-question-history11809.html.47e34f67.js"><link rel="prefetch" href="/assets/user-question-history11810.html.3f2e0760.js"><link rel="prefetch" href="/assets/user-question-history11814.html.89c2563e.js"><link rel="prefetch" href="/assets/user-question-history12453.html.163bc9ad.js"><link rel="prefetch" href="/assets/user-question-history12454.html.fcccb708.js"><link rel="prefetch" href="/assets/user-question-history12455.html.3aed1fc8.js"><link rel="prefetch" href="/assets/user-question-history12706.html.3cf454ba.js"><link rel="prefetch" href="/assets/user-question-history12715.html.824bab31.js"><link rel="prefetch" href="/assets/user-question-history12716.html.aea93112.js"><link rel="prefetch" href="/assets/user-question-history12740.html.6d3a85f1.js"><link rel="prefetch" href="/assets/user-question-history12741.html.7155ebde.js"><link rel="prefetch" href="/assets/user-question-history13448.html.a659e900.js"><link rel="prefetch" href="/assets/user-question-history13504.html.f86b0c17.js"><link rel="prefetch" href="/assets/user-question-history13506.html.756c0aef.js"><link rel="prefetch" href="/assets/user-question-history13507.html.b410fde5.js"><link rel="prefetch" href="/assets/user-question-history13508.html.3cfbd3ac.js"><link rel="prefetch" href="/assets/user-question-history13509.html.be494725.js"><link rel="prefetch" href="/assets/user-question-history13510.html.4b10ee98.js"><link rel="prefetch" href="/assets/user-question-history13511.html.a4c61493.js"><link rel="prefetch" href="/assets/user-question-history13512.html.e198ca8d.js"><link rel="prefetch" href="/assets/user-question-history13513.html.e75202ae.js"><link rel="prefetch" href="/assets/user-question-history13522.html.46939f73.js"><link rel="prefetch" href="/assets/user-question-history14763.html.140717c7.js"><link rel="prefetch" href="/assets/user-question-history14831.html.de4216e5.js"><link rel="prefetch" href="/assets/user-question-history14832.html.22fc1910.js"><link rel="prefetch" href="/assets/user-question-history14833.html.b17c1b6b.js"><link rel="prefetch" href="/assets/user-question-history14834.html.e96bfd10.js"><link rel="prefetch" href="/assets/user-question-history14840.html.b43bc59a.js"><link rel="prefetch" href="/assets/user-question-history14843.html.f49a7feb.js"><link rel="prefetch" href="/assets/user-question-history15167.html.1f0041fe.js"><link rel="prefetch" href="/assets/user-question-history15543.html.8f8a0315.js"><link rel="prefetch" href="/assets/user-question-history15726.html.fd6ce750.js"><link rel="prefetch" href="/assets/user-question-history15728.html.ccdc912d.js"><link rel="prefetch" href="/assets/user-question-history15729.html.471a1b8f.js"><link rel="prefetch" href="/assets/user-question-history15730.html.bd03a518.js"><link rel="prefetch" href="/assets/user-question-history15731.html.559f9f08.js"><link rel="prefetch" href="/assets/user-question-history15735.html.80cab5b9.js"><link rel="prefetch" href="/assets/user-question-history15736.html.412f1499.js"><link rel="prefetch" href="/assets/user-question-history15737.html.18923199.js"><link rel="prefetch" href="/assets/user-question-history15738.html.6ceeca93.js"><link rel="prefetch" href="/assets/user-question-history15739.html.86e3a2dc.js"><link rel="prefetch" href="/assets/user-question-history15740.html.e1844f14.js"><link rel="prefetch" href="/assets/404.html.954ede21.js"><link rel="prefetch" href="/assets/index.html.30ce3385.js"><link rel="prefetch" href="/assets/index.html.a40e9b51.js"><link rel="prefetch" href="/assets/index.html.d646c9e0.js"><link rel="prefetch" href="/assets/advanced-use.html.69173a07.js"><link rel="prefetch" href="/assets/advice-class.html.44dc3045.js"><link rel="prefetch" href="/assets/agent.html.76c735d0.js"><link rel="prefetch" href="/assets/arthas-properties.html.81d42c35.js"><link rel="prefetch" href="/assets/arthas3.html.0b19650f.js"><link rel="prefetch" href="/assets/async.html.dda2afae.js"><link rel="prefetch" href="/assets/auth.html.07bdc876.js"><link rel="prefetch" href="/assets/base64.html.bcead116.js"><link rel="prefetch" href="/assets/batch-support.html.4641bd67.js"><link rel="prefetch" href="/assets/cat.html.17a41250.js"><link rel="prefetch" href="/assets/classloader.html.4284e89d.js"><link rel="prefetch" href="/assets/cls.html.7418b29d.js"><link rel="prefetch" href="/assets/commands.html.9195266b.js"><link rel="prefetch" href="/assets/contact-us.html.5761289f.js"><link rel="prefetch" href="/assets/dashboard.html.a121fb6b.js"><link rel="prefetch" href="/assets/docker.html.03d1872a.js"><link rel="prefetch" href="/assets/download.html.17050c97.js"><link rel="prefetch" href="/assets/dump.html.150553f5.js"><link rel="prefetch" href="/assets/echo.html.b6e5f092.js"><link rel="prefetch" href="/assets/faq.html.0adab3f6.js"><link rel="prefetch" href="/assets/getstatic.html.585460ac.js"><link rel="prefetch" href="/assets/grep.html.7bfe65a7.js"><link rel="prefetch" href="/assets/groovy.html.9814fe6a.js"><link rel="prefetch" href="/assets/heapdump.html.03900a35.js"><link rel="prefetch" href="/assets/help.html.1a9f5df9.js"><link rel="prefetch" href="/assets/history.html.7fdc3fbc.js"><link rel="prefetch" href="/assets/http-api.html.d43050d6.js"><link rel="prefetch" href="/assets/idea-plugin.html.eaa87fb3.js"><link rel="prefetch" href="/assets/install-detail.html.c7db59fe.js"><link rel="prefetch" href="/assets/jad.html.538333fc.js"><link rel="prefetch" href="/assets/jfr.html.5892aad4.js"><link rel="prefetch" href="/assets/jvm.html.a09c582f.js"><link rel="prefetch" href="/assets/keymap.html.f350d350.js"><link rel="prefetch" href="/assets/logger.html.77aef58f.js"><link rel="prefetch" href="/assets/manual-install.html.b52b3383.js"><link rel="prefetch" href="/assets/mbean.html.fb10ca7f.js"><link rel="prefetch" href="/assets/mc.html.5651a161.js"><link rel="prefetch" href="/assets/memory.html.51f06c97.js"><link rel="prefetch" href="/assets/monitor.html.0c917472.js"><link rel="prefetch" href="/assets/ognl.html.51c27cdf.js"><link rel="prefetch" href="/assets/options.html.061c0499.js"><link rel="prefetch" href="/assets/perfcounter.html.7a2e7783.js"><link rel="prefetch" href="/assets/profiler.html.7d7d2c16.js"><link rel="prefetch" href="/assets/pwd.html.94331a5b.js"><link rel="prefetch" href="/assets/quick-start.html.d0d7d085.js"><link rel="prefetch" href="/assets/quit.html.07d23945.js"><link rel="prefetch" href="/assets/redefine.html.b51d4760.js"><link rel="prefetch" href="/assets/release-notes.html.97884707.js"><link rel="prefetch" href="/assets/reset.html.8d888519.js"><link rel="prefetch" href="/assets/retransform.html.33e2a183.js"><link rel="prefetch" href="/assets/save-log.html.65bbf18d.js"><link rel="prefetch" href="/assets/sc.html.b97ba863.js"><link rel="prefetch" href="/assets/session.html.f12fb284.js"><link rel="prefetch" href="/assets/sm.html.b1573b78.js"><link rel="prefetch" href="/assets/spring-boot-starter.html.62c01266.js"><link rel="prefetch" href="/assets/stack.html.f9218289.js"><link rel="prefetch" href="/assets/start-arthas.html.386fe5e8.js"><link rel="prefetch" href="/assets/stop.html.1809fc4b.js"><link rel="prefetch" href="/assets/sysenv.html.d3ed1a43.js"><link rel="prefetch" href="/assets/sysprop.html.d5a36f08.js"><link rel="prefetch" href="/assets/tee.html.100828a3.js"><link rel="prefetch" href="/assets/thread.html.1c837b34.js"><link rel="prefetch" href="/assets/trace.html.29692689.js"><link rel="prefetch" href="/assets/tt.html.23b440e4.js"><link rel="prefetch" href="/assets/tunnel.html.b5499e98.js"><link rel="prefetch" href="/assets/version.html.3e704c32.js"><link rel="prefetch" href="/assets/vmoption.html.82b62241.js"><link rel="prefetch" href="/assets/vmtool.html.aa90ec1f.js"><link rel="prefetch" href="/assets/web-console.html.dbc0dbf0.js"><link rel="prefetch" href="/assets/index.html.4201d415.js"><link rel="prefetch" href="/assets/advanced-use.html.90868e26.js"><link rel="prefetch" href="/assets/advice-class.html.0ca455a3.js"><link rel="prefetch" href="/assets/agent.html.251dddae.js"><link rel="prefetch" href="/assets/arthas-properties.html.938af046.js"><link rel="prefetch" href="/assets/async.html.5ce1d1ce.js"><link rel="prefetch" href="/assets/auth.html.2a003b09.js"><link rel="prefetch" href="/assets/base64.html.00f201c7.js"><link rel="prefetch" href="/assets/batch-support.html.6043e5f6.js"><link rel="prefetch" href="/assets/cat.html.6b2e0086.js"><link rel="prefetch" href="/assets/classloader.html.413109bd.js"><link rel="prefetch" href="/assets/cls.html.29b1f806.js"><link rel="prefetch" href="/assets/commands.html.e8942ef3.js"><link rel="prefetch" href="/assets/contact-us.html.4526730f.js"><link rel="prefetch" href="/assets/dashboard.html.7edf7acb.js"><link rel="prefetch" href="/assets/docker.html.03ba71a6.js"><link rel="prefetch" href="/assets/download.html.8810095d.js"><link rel="prefetch" href="/assets/dump.html.4991b48d.js"><link rel="prefetch" href="/assets/echo.html.7650a83b.js"><link rel="prefetch" href="/assets/faq.html.ea3e918c.js"><link rel="prefetch" href="/assets/getstatic.html.500e6219.js"><link rel="prefetch" href="/assets/grep.html.bf503089.js"><link rel="prefetch" href="/assets/groovy.html.49d078a1.js"><link rel="prefetch" href="/assets/heapdump.html.660526d5.js"><link rel="prefetch" href="/assets/help.html.e42cbec6.js"><link rel="prefetch" href="/assets/history.html.5ede54ab.js"><link rel="prefetch" href="/assets/http-api.html.9ba1dee0.js"><link rel="prefetch" href="/assets/idea-plugin.html.f5332dbc.js"><link rel="prefetch" href="/assets/install-detail.html.71fdac53.js"><link rel="prefetch" href="/assets/jad.html.6c5585d2.js"><link rel="prefetch" href="/assets/jfr.html.10e316af.js"><link rel="prefetch" href="/assets/jvm.html.c7b9fd8f.js"><link rel="prefetch" href="/assets/keymap.html.97636b0c.js"><link rel="prefetch" href="/assets/logger.html.ab691e29.js"><link rel="prefetch" href="/assets/manual-install.html.a031e342.js"><link rel="prefetch" href="/assets/mbean.html.9062fe0b.js"><link rel="prefetch" href="/assets/mc.html.c72bf29a.js"><link rel="prefetch" href="/assets/memory.html.911264fb.js"><link rel="prefetch" href="/assets/monitor.html.b861dd2b.js"><link rel="prefetch" href="/assets/ognl.html.d4bc1bc8.js"><link rel="prefetch" href="/assets/options.html.9e19bd7d.js"><link rel="prefetch" href="/assets/perfcounter.html.e3509839.js"><link rel="prefetch" href="/assets/profiler.html.9a5939c8.js"><link rel="prefetch" href="/assets/pwd.html.8c00c7c7.js"><link rel="prefetch" href="/assets/quick-start.html.17597d6b.js"><link rel="prefetch" href="/assets/quit.html.f2004fd3.js"><link rel="prefetch" href="/assets/redefine.html.8f763ba4.js"><link rel="prefetch" href="/assets/release-notes.html.ceca27da.js"><link rel="prefetch" href="/assets/reset.html.531c57ec.js"><link rel="prefetch" href="/assets/retransform.html.883cb847.js"><link rel="prefetch" href="/assets/save-log.html.10fd1804.js"><link rel="prefetch" href="/assets/sc.html.e5ed7927.js"><link rel="prefetch" href="/assets/session.html.792ab981.js"><link rel="prefetch" href="/assets/sm.html.b6c4fc05.js"><link rel="prefetch" href="/assets/spring-boot-starter.html.4487a31e.js"><link rel="prefetch" href="/assets/stack.html.b1dc93b3.js"><link rel="prefetch" href="/assets/start-arthas.html.0c0dcba7.js"><link rel="prefetch" href="/assets/stop.html.b94ef499.js"><link rel="prefetch" href="/assets/sysenv.html.dd2920eb.js"><link rel="prefetch" href="/assets/sysprop.html.9ee76be9.js"><link rel="prefetch" href="/assets/tee.html.690e39e8.js"><link rel="prefetch" href="/assets/thread.html.989bc148.js"><link rel="prefetch" href="/assets/trace.html.272a5864.js"><link rel="prefetch" href="/assets/tt.html.5ad78537.js"><link rel="prefetch" href="/assets/tunnel.html.59bde372.js"><link rel="prefetch" href="/assets/version.html.1fb9c5ad.js"><link rel="prefetch" href="/assets/vmoption.html.4f720b39.js"><link rel="prefetch" href="/assets/vmtool.html.a6a8ee75.js"><link rel="prefetch" href="/assets/watch.html.06497348.js"><link rel="prefetch" href="/assets/web-console.html.1d818a20.js"><link rel="prefetch" href="/assets/intro.html.0082fd51.js"><link rel="prefetch" href="/assets/user-question-history11440.html.fb0525c1.js"><link rel="prefetch" href="/assets/user-question-history11442.html.e0a55c65.js"><link rel="prefetch" href="/assets/user-question-history11443.html.d1528876.js"><link rel="prefetch" href="/assets/user-question-history11444.html.e2b6bc77.js"><link rel="prefetch" href="/assets/user-question-history11450.html.2b09f6c7.js"><link rel="prefetch" href="/assets/user-question-history11451.html.c76df7ae.js"><link rel="prefetch" href="/assets/user-question-history11452.html.9879b76b.js"><link rel="prefetch" href="/assets/user-question-history11453.html.2e92595b.js"><link rel="prefetch" href="/assets/user-question-history11454.html.f568c6c3.js"><link rel="prefetch" href="/assets/user-question-history11466.html.3fc8a828.js"><link rel="prefetch" href="/assets/user-question-history11467.html.bb6b861a.js"><link rel="prefetch" href="/assets/user-question-history11468.html.46029e3a.js"><link rel="prefetch" href="/assets/user-question-history11469.html.ab94d023.js"><link rel="prefetch" href="/assets/user-question-history11784.html.a62744ce.js"><link rel="prefetch" href="/assets/user-question-history11795.html.a7d68a33.js"><link rel="prefetch" href="/assets/user-question-history11809.html.f163cb5f.js"><link rel="prefetch" href="/assets/user-question-history11810.html.38c867bc.js"><link rel="prefetch" href="/assets/user-question-history11814.html.225c060b.js"><link rel="prefetch" href="/assets/user-question-history12453.html.36bebf20.js"><link rel="prefetch" href="/assets/user-question-history12454.html.3ee1574c.js"><link rel="prefetch" href="/assets/user-question-history12455.html.4d2487f7.js"><link rel="prefetch" href="/assets/user-question-history12706.html.5d0d9e70.js"><link rel="prefetch" href="/assets/user-question-history12715.html.fe834021.js"><link rel="prefetch" href="/assets/user-question-history12716.html.86dedfd1.js"><link rel="prefetch" href="/assets/user-question-history12740.html.58af5398.js"><link rel="prefetch" href="/assets/user-question-history12741.html.d9c4d211.js"><link rel="prefetch" href="/assets/user-question-history13448.html.8cc59a67.js"><link rel="prefetch" href="/assets/user-question-history13504.html.b57725ff.js"><link rel="prefetch" href="/assets/user-question-history13506.html.0039dbf9.js"><link rel="prefetch" href="/assets/user-question-history13507.html.2c3580b6.js"><link rel="prefetch" href="/assets/user-question-history13508.html.611f806a.js"><link rel="prefetch" href="/assets/user-question-history13509.html.25c5b6f6.js"><link rel="prefetch" href="/assets/user-question-history13510.html.cc949a92.js"><link rel="prefetch" href="/assets/user-question-history13511.html.6a3406dd.js"><link rel="prefetch" href="/assets/user-question-history13512.html.b13b9408.js"><link rel="prefetch" href="/assets/user-question-history13513.html.db786eb4.js"><link rel="prefetch" href="/assets/user-question-history13522.html.d86e15d9.js"><link rel="prefetch" href="/assets/user-question-history14763.html.e50d35b1.js"><link rel="prefetch" href="/assets/user-question-history14831.html.5aaf9c3b.js"><link rel="prefetch" href="/assets/user-question-history14832.html.851282a7.js"><link rel="prefetch" href="/assets/user-question-history14833.html.37da3c74.js"><link rel="prefetch" href="/assets/user-question-history14834.html.f09d5dea.js"><link rel="prefetch" href="/assets/user-question-history14840.html.e8ff334a.js"><link rel="prefetch" href="/assets/user-question-history14843.html.77cae64b.js"><link rel="prefetch" href="/assets/user-question-history15167.html.281cc072.js"><link rel="prefetch" href="/assets/user-question-history15543.html.0cbc55e8.js"><link rel="prefetch" href="/assets/user-question-history15726.html.40b6ceb9.js"><link rel="prefetch" href="/assets/user-question-history15728.html.5cfa5a28.js"><link rel="prefetch" href="/assets/user-question-history15729.html.ec291ed8.js"><link rel="prefetch" href="/assets/user-question-history15730.html.4bca5864.js"><link rel="prefetch" href="/assets/user-question-history15731.html.a3a956ae.js"><link rel="prefetch" href="/assets/user-question-history15735.html.7ea6b4e5.js"><link rel="prefetch" href="/assets/user-question-history15736.html.88204631.js"><link rel="prefetch" href="/assets/user-question-history15737.html.2c7d5321.js"><link rel="prefetch" href="/assets/user-question-history15738.html.1ec98456.js"><link rel="prefetch" href="/assets/user-question-history15739.html.2ab5138c.js"><link rel="prefetch" href="/assets/user-question-history15740.html.b1ca6209.js"><link rel="prefetch" href="/assets/404.html.49fbe4f8.js">
<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="切换侧边栏" aria-expanded="false" role="button" tabindex="0"><div class="icon" aria-hidden="true"><span></span><span></span><span></span></div></div><span><a href="/" class="" data-v-a8869d06><!----><span class="site-name can-hide" data-v-a8869d06>arthas</span><span class="navbar-version" data-v-a8869d06>v4.0.4</span></a></span><div class="navbar-items-wrapper" style=""><!--[--><!--]--><nav class="navbar-items can-hide"><!--[--><div class="navbar-item"><a href="/" class="" aria-label="首页"><!--[--><!--]--> 首页 <!--[--><!--]--></a></div><div class="navbar-item"><a class="external-link" href="/doc/arthas-tutorials.html?language=cn&amp;id=arthas-basics" rel="noopener noreferrer" target="_blank" aria-label="在线教程"><!--[--><!--]--><span>在线教程</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">在新窗口打开</span></span><!--[--><!--]--></a></div><div class="navbar-item"><a href="/doc/" class="router-link-active" aria-label="文档"><!--[--><!--]--> 文档 <!--[--><!--]--></a></div><div class="navbar-item"><a href="/doc/commands.md" class="" aria-label="命令列表"><!--[--><!--]--> 命令列表 <!--[--><!--]--></a></div><div class="navbar-item"><a href="/doc/download.md" class="" aria-label="下载"><!--[--><!--]--> 下载 <!--[--><!--]--></a></div><div class="navbar-item"><a href="/doc/expert/intro.md" class="" aria-label="专家答疑"><!--[--><!--]--> 专家答疑 <!--[--><!--]--></a></div><div class="navbar-item"><div class="navbar-dropdown-wrapper"><button class="navbar-dropdown-title" type="button" aria-label="版本"><span class="title">版本</span><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="版本"><span class="title">版本</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/" 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">在新窗口打开</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-.275.275-.7.275q-.425 0-.7-.275q-.275-.275-.275-.7q0-.425.275-.7l4.35-4.35q-.675-.775-1.25-1.563q-.575-.787-1.025-1.662Q5.1 8.8 5.35 8.4t.875-.4q.25 0 .525.162q.275.163.4.388Z"></path></svg><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" 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-.275.275-.7.275q-.425 0-.7-.275q-.275-.275-.275-.7q0-.425.275-.7l4.35-4.35q-.675-.775-1.25-1.563q-.575-.787-1.025-1.662Q5.1 8.8 5.35 8.4t.875-.4q.25 0 .525.162q.275.163.4.388Z"></path></svg><span class="right arrow"></span></button><ul style="display:none;" class="navbar-dropdown"><!--[--><li class="navbar-dropdown-item"><a aria-current="page" href="/doc/watch.html" class="router-link-active router-link-exact-active router-link-active" aria-label="简体中文"><!--[--><!--]--> 简体中文 <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a href="/en/doc/watch.html" class="" aria-label="English"><!--[--><!--]--> English <!--[--><!--]--></a></li><!--]--></ul></div></div><div class="navbar-item"><a class="external-link" href="https://github.com/alibaba/arthas" rel="noopener noreferrer" target="_blank" aria-label="GitHub"><!--[--><!--]--><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewbox="0 0 24 24" style="height:1.25rem;width:1.25rem;vertical-align:bottom;"><path fill="currentColor" d="M12 2A10 10 0 0 0 2 12c0 4.42 2.87 8.17 6.84 9.5c.5.08.66-.23.66-.5v-1.69c-2.77.6-3.36-1.34-3.36-1.34c-.46-1.16-1.11-1.47-1.11-1.47c-.91-.62.07-.6.07-.6c1 .07 1.53 1.03 1.53 1.03c.87 1.52 2.34 1.07 2.91.83c.09-.65.35-1.09.63-1.34c-2.22-.25-4.55-1.11-4.55-4.92c0-1.11.38-2 1.03-2.71c-.1-.25-.45-1.29.1-2.64c0 0 .84-.27 2.75 1.02c.79-.22 1.65-.33 2.5-.33c.85 0 1.71.11 2.5.33c1.91-1.29 2.75-1.02 2.75-1.02c.55 1.35.2 2.39.1 2.64c.65.71 1.03 1.6 1.03 2.71c0 3.82-2.34 4.66-4.57 4.91c.36.31.69.92.69 1.85V21c0 .27.16.59.67.5C19.14 20.16 22 16.42 22 12A10 10 0 0 0 12 2Z"></path></svg><!----><!--[--><!--]--></a></div><!--]--></nav><!--[--><!--]--><button class="toggle-color-mode-button" title="切换颜色模式"><svg style="" class="icon" focusable="false" viewBox="0 0 32 32"><path d="M16 12.005a4 4 0 1 1-4 4a4.005 4.005 0 0 1 4-4m0-2a6 6 0 1 0 6 6a6 6 0 0 0-6-6z" fill="currentColor"></path><path d="M5.394 6.813l1.414-1.415l3.506 3.506L8.9 10.318z" fill="currentColor"></path><path d="M2 15.005h5v2H2z" fill="currentColor"></path><path d="M5.394 25.197L8.9 21.691l1.414 1.415l-3.506 3.505z" fill="currentColor"></path><path d="M15 25.005h2v5h-2z" fill="currentColor"></path><path d="M21.687 23.106l1.414-1.415l3.506 3.506l-1.414 1.414z" fill="currentColor"></path><path d="M25 15.005h5v2h-5z" fill="currentColor"></path><path d="M21.687 8.904l3.506-3.506l1.414 1.415l-3.506 3.505z" fill="currentColor"></path><path d="M15 2.005h2v5h-2z" fill="currentColor"></path></svg><svg style="display:none;" class="icon" focusable="false" viewBox="0 0 32 32"><path d="M13.502 5.414a15.075 15.075 0 0 0 11.594 18.194a11.113 11.113 0 0 1-7.975 3.39c-.138 0-.278.005-.418 0a11.094 11.094 0 0 1-3.2-21.584M14.98 3a1.002 1.002 0 0 0-.175.016a13.096 13.096 0 0 0 1.825 25.981c.164.006.328 0 .49 0a13.072 13.072 0 0 0 10.703-5.555a1.01 1.01 0 0 0-.783-1.565A13.08 13.08 0 0 1 15.89 4.38A1.015 1.015 0 0 0 14.98 3z" fill="currentColor"></path></svg></button><div id="docsearch-container"></div></div></header><!--]--><div class="sidebar-mask"></div><!--[--><aside class="sidebar"><nav class="navbar-items"><!--[--><div class="navbar-item"><a href="/" class="" aria-label="首页"><!--[--><!--]--> 首页 <!--[--><!--]--></a></div><div class="navbar-item"><a class="external-link" href="/doc/arthas-tutorials.html?language=cn&amp;id=arthas-basics" rel="noopener noreferrer" target="_blank" aria-label="在线教程"><!--[--><!--]--><span>在线教程</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">在新窗口打开</span></span><!--[--><!--]--></a></div><div class="navbar-item"><a href="/doc/" class="router-link-active" aria-label="文档"><!--[--><!--]--> 文档 <!--[--><!--]--></a></div><div class="navbar-item"><a href="/doc/commands.md" class="" aria-label="命令列表"><!--[--><!--]--> 命令列表 <!--[--><!--]--></a></div><div class="navbar-item"><a href="/doc/download.md" class="" aria-label="下载"><!--[--><!--]--> 下载 <!--[--><!--]--></a></div><div class="navbar-item"><a href="/doc/expert/intro.md" class="" aria-label="专家答疑"><!--[--><!--]--> 专家答疑 <!--[--><!--]--></a></div><div class="navbar-item"><div class="navbar-dropdown-wrapper"><button class="navbar-dropdown-title" type="button" aria-label="版本"><span class="title">版本</span><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="版本"><span class="title">版本</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/" 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">在新窗口打开</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-.275.275-.7.275q-.425 0-.7-.275q-.275-.275-.275-.7q0-.425.275-.7l4.35-4.35q-.675-.775-1.25-1.563q-.575-.787-1.025-1.662Q5.1 8.8 5.35 8.4t.875-.4q.25 0 .525.162q.275.163.4.388Z"></path></svg><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" 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-.275.275-.7.275q-.425 0-.7-.275q-.275-.275-.275-.7q0-.425.275-.7l4.35-4.35q-.675-.775-1.25-1.563q-.575-.787-1.025-1.662Q5.1 8.8 5.35 8.4t.875-.4q.25 0 .525.162q.275.163.4.388Z"></path></svg><span class="right arrow"></span></button><ul style="display:none;" class="navbar-dropdown"><!--[--><li class="navbar-dropdown-item"><a aria-current="page" href="/doc/watch.html" class="router-link-active router-link-exact-active router-link-active" aria-label="简体中文"><!--[--><!--]--> 简体中文 <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a href="/en/doc/watch.html" class="" aria-label="English"><!--[--><!--]--> English <!--[--><!--]--></a></li><!--]--></ul></div></div><div class="navbar-item"><a class="external-link" href="https://github.com/alibaba/arthas" rel="noopener noreferrer" target="_blank" aria-label="GitHub"><!--[--><!--]--><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewbox="0 0 24 24" style="height:1.25rem;width:1.25rem;vertical-align:bottom;"><path fill="currentColor" d="M12 2A10 10 0 0 0 2 12c0 4.42 2.87 8.17 6.84 9.5c.5.08.66-.23.66-.5v-1.69c-2.77.6-3.36-1.34-3.36-1.34c-.46-1.16-1.11-1.47-1.11-1.47c-.91-.62.07-.6.07-.6c1 .07 1.53 1.03 1.53 1.03c.87 1.52 2.34 1.07 2.91.83c.09-.65.35-1.09.63-1.34c-2.22-.25-4.55-1.11-4.55-4.92c0-1.11.38-2 1.03-2.71c-.1-.25-.45-1.29.1-2.64c0 0 .84-.27 2.75 1.02c.79-.22 1.65-.33 2.5-.33c.85 0 1.71.11 2.5.33c1.91-1.29 2.75-1.02 2.75-1.02c.55 1.35.2 2.39.1 2.64c.65.71 1.03 1.6 1.03 2.71c0 3.82-2.34 4.66-4.57 4.91c.36.31.69.92.69 1.85V21c0 .27.16.59.67.5C19.14 20.16 22 16.42 22 12A10 10 0 0 0 12 2Z"></path></svg><!----><!--[--><!--]--></a></div><!--]--></nav><!--[--><!--]--><ul class="sidebar-items"><!--[--><li><p tabindex="0" class="sidebar-item sidebar-heading active">文档 <!----></p><ul style="" class="sidebar-item-children"><!--[--><li><a href="/doc/" class="router-link-active sidebar-item" aria-label="简介"><!--[--><!--]--> 简介 <!--[--><!--]--></a><!----></li><li><a href="/doc/quick-start.html" class="sidebar-item" aria-label="快速入门"><!--[--><!--]--> 快速入门 <!--[--><!--]--></a><!----></li><li><a href="/doc/install-detail.html" class="sidebar-item" aria-label="Arthas Install"><!--[--><!--]--> Arthas Install <!--[--><!--]--></a><!----></li><li><a href="/doc/download.html" class="sidebar-item" aria-label="下载"><!--[--><!--]--> 下载 <!--[--><!--]--></a><!----></li><li><a href="/doc/advice-class.html" class="sidebar-item" aria-label="表达式核心变量"><!--[--><!--]--> 表达式核心变量 <!--[--><!--]--></a><!----></li><li><a href="/doc/commands.md" class="sidebar-item active collapsible" aria-label="命令列表"><!--[--><!--]--> 命令列表 <!--[--><!--]--></a><ul style="" class="sidebar-item-children"><!--[--><li><a href="/doc/auth.html" class="sidebar-item" aria-label="auth"><!--[--><!--]--> auth <!--[--><!--]--></a><!----></li><li><a href="/doc/base64.html" class="sidebar-item" aria-label="base64"><!--[--><!--]--> base64 <!--[--><!--]--></a><!----></li><li><a href="/doc/cat.html" class="sidebar-item" aria-label="cat"><!--[--><!--]--> cat <!--[--><!--]--></a><!----></li><li><a href="/doc/classloader.html" class="sidebar-item" aria-label="classloader"><!--[--><!--]--> classloader <!--[--><!--]--></a><!----></li><li><a href="/doc/cls.html" class="sidebar-item" aria-label="cls"><!--[--><!--]--> cls <!--[--><!--]--></a><!----></li><li><a href="/doc/dashboard.html" class="sidebar-item" aria-label="dashboard"><!--[--><!--]--> dashboard <!--[--><!--]--></a><!----></li><li><a href="/doc/dump.html" class="sidebar-item" aria-label="dump"><!--[--><!--]--> dump <!--[--><!--]--></a><!----></li><li><a href="/doc/echo.html" class="sidebar-item" aria-label="echo"><!--[--><!--]--> echo <!--[--><!--]--></a><!----></li><li><a href="/doc/getstatic.html" class="sidebar-item" aria-label="getstatic"><!--[--><!--]--> getstatic <!--[--><!--]--></a><!----></li><li><a href="/doc/grep.html" class="sidebar-item" aria-label="grep"><!--[--><!--]--> grep <!--[--><!--]--></a><!----></li><li><a href="/doc/heapdump.html" class="sidebar-item" aria-label="heapdump"><!--[--><!--]--> heapdump <!--[--><!--]--></a><!----></li><li><a href="/doc/help.html" class="sidebar-item" aria-label="help"><!--[--><!--]--> help <!--[--><!--]--></a><!----></li><li><a href="/doc/history.html" class="sidebar-item" aria-label="history"><!--[--><!--]--> history <!--[--><!--]--></a><!----></li><li><a href="/doc/jad.html" class="sidebar-item" aria-label="jad"><!--[--><!--]--> jad <!--[--><!--]--></a><!----></li><li><a href="/doc/jfr.html" class="sidebar-item" aria-label="jfr"><!--[--><!--]--> jfr <!--[--><!--]--></a><!----></li><li><a href="/doc/jvm.html" class="sidebar-item" aria-label="jvm"><!--[--><!--]--> jvm <!--[--><!--]--></a><!----></li><li><a href="/doc/keymap.html" class="sidebar-item" aria-label="keymap"><!--[--><!--]--> keymap <!--[--><!--]--></a><!----></li><li><a href="/doc/logger.html" class="sidebar-item" aria-label="logger"><!--[--><!--]--> logger <!--[--><!--]--></a><!----></li><li><a href="/doc/mbean.html" class="sidebar-item" aria-label="mbean"><!--[--><!--]--> mbean <!--[--><!--]--></a><!----></li><li><a href="/doc/mc.html" class="sidebar-item" aria-label="mc"><!--[--><!--]--> mc <!--[--><!--]--></a><!----></li><li><a href="/doc/memory.html" class="sidebar-item" aria-label="memory"><!--[--><!--]--> memory <!--[--><!--]--></a><!----></li><li><a href="/doc/monitor.html" class="sidebar-item" aria-label="monitor"><!--[--><!--]--> monitor <!--[--><!--]--></a><!----></li><li><a href="/doc/ognl.html" class="sidebar-item" aria-label="ognl"><!--[--><!--]--> ognl <!--[--><!--]--></a><!----></li><li><a href="/doc/options.html" class="sidebar-item" aria-label="options"><!--[--><!--]--> options <!--[--><!--]--></a><!----></li><li><a href="/doc/perfcounter.html" class="sidebar-item" aria-label="perfcounter"><!--[--><!--]--> perfcounter <!--[--><!--]--></a><!----></li><li><a href="/doc/profiler.html" class="sidebar-item" aria-label="profiler"><!--[--><!--]--> profiler <!--[--><!--]--></a><!----></li><li><a href="/doc/pwd.html" class="sidebar-item" aria-label="pwd"><!--[--><!--]--> pwd <!--[--><!--]--></a><!----></li><li><a href="/doc/quit.html" class="sidebar-item" aria-label="quit"><!--[--><!--]--> quit <!--[--><!--]--></a><!----></li><li><a href="/doc/redefine.html" class="sidebar-item" aria-label="redefine"><!--[--><!--]--> redefine <!--[--><!--]--></a><!----></li><li><a href="/doc/reset.html" class="sidebar-item" aria-label="reset"><!--[--><!--]--> reset <!--[--><!--]--></a><!----></li><li><a href="/doc/retransform.html" class="sidebar-item" aria-label="retransform"><!--[--><!--]--> retransform <!--[--><!--]--></a><!----></li><li><a href="/doc/sc.html" class="sidebar-item" aria-label="sc"><!--[--><!--]--> sc <!--[--><!--]--></a><!----></li><li><a href="/doc/session.html" class="sidebar-item" aria-label="session"><!--[--><!--]--> session <!--[--><!--]--></a><!----></li><li><a href="/doc/sm.html" class="sidebar-item" aria-label="sm"><!--[--><!--]--> sm <!--[--><!--]--></a><!----></li><li><a href="/doc/stack.html" class="sidebar-item" aria-label="stack"><!--[--><!--]--> stack <!--[--><!--]--></a><!----></li><li><a href="/doc/stop.html" class="sidebar-item" aria-label="stop"><!--[--><!--]--> stop <!--[--><!--]--></a><!----></li><li><a href="/doc/sysenv.html" class="sidebar-item" aria-label="sysenv"><!--[--><!--]--> sysenv <!--[--><!--]--></a><!----></li><li><a href="/doc/sysprop.html" class="sidebar-item" aria-label="sysprop"><!--[--><!--]--> sysprop <!--[--><!--]--></a><!----></li><li><a href="/doc/tee.html" class="sidebar-item" aria-label="tee"><!--[--><!--]--> tee <!--[--><!--]--></a><!----></li><li><a href="/doc/thread.html" class="sidebar-item" aria-label="thread"><!--[--><!--]--> thread <!--[--><!--]--></a><!----></li><li><a href="/doc/trace.html" class="sidebar-item" aria-label="trace"><!--[--><!--]--> trace <!--[--><!--]--></a><!----></li><li><a href="/doc/tt.html" class="sidebar-item" aria-label="tt"><!--[--><!--]--> tt <!--[--><!--]--></a><!----></li><li><a href="/doc/version.html" class="sidebar-item" aria-label="version"><!--[--><!--]--> version <!--[--><!--]--></a><!----></li><li><a href="/doc/vmoption.html" class="sidebar-item" aria-label="vmoption"><!--[--><!--]--> vmoption <!--[--><!--]--></a><!----></li><li><a href="/doc/vmtool.html" class="sidebar-item" aria-label="vmtool"><!--[--><!--]--> vmtool <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/doc/watch.html" class="router-link-active router-link-exact-active router-link-active sidebar-item active" aria-label="watch"><!--[--><!--]--> watch <!--[--><!--]--></a><!----></li><!--]--></ul></li><li><a href="/doc/advanced-use.md" class="sidebar-item collapsible" aria-label="其他特性"><!--[--><!--]--> 其他特性 <!--[--><!--]--></a><ul style="display:none;" class="sidebar-item-children"><!--[--><li><a href="/doc/async.html" class="sidebar-item" aria-label="Arthas 后台异步任务"><!--[--><!--]--> Arthas 后台异步任务 <!--[--><!--]--></a><!----></li><li><a href="/doc/save-log.html" class="sidebar-item" aria-label="执行结果存日志"><!--[--><!--]--> 执行结果存日志 <!--[--><!--]--></a><!----></li><li><a href="/doc/docker.html" class="sidebar-item" aria-label="Docker"><!--[--><!--]--> Docker <!--[--><!--]--></a><!----></li><li><a href="/doc/web-console.html" class="sidebar-item" aria-label="Web Console"><!--[--><!--]--> Web Console <!--[--><!--]--></a><!----></li><li><a href="/doc/tunnel.html" class="sidebar-item" aria-label="Arthas Tunnel"><!--[--><!--]--> Arthas Tunnel <!--[--><!--]--></a><!----></li><li><a href="/doc/idea-plugin.html" class="sidebar-item" aria-label="IDEA Plugin"><!--[--><!--]--> IDEA Plugin <!--[--><!--]--></a><!----></li><li><a href="/doc/arthas-properties.html" class="sidebar-item" aria-label="Arthas Properties"><!--[--><!--]--> Arthas Properties <!--[--><!--]--></a><!----></li><li><a href="/doc/agent.html" class="sidebar-item" aria-label="以 Java Agent 的方式启动"><!--[--><!--]--> 以 Java Agent 的方式启动 <!--[--><!--]--></a><!----></li><li><a href="/doc/spring-boot-starter.html" class="sidebar-item" aria-label="Arthas Spring Boot Starter"><!--[--><!--]--> Arthas Spring Boot Starter <!--[--><!--]--></a><!----></li><li><a href="/doc/http-api.html" class="sidebar-item" aria-label="Http API"><!--[--><!--]--> Http API <!--[--><!--]--></a><!----></li><li><a href="/doc/batch-support.html" class="sidebar-item" aria-label="批处理功能"><!--[--><!--]--> 批处理功能 <!--[--><!--]--></a><!----></li><!--]--></ul></li><li><a href="/doc/faq.html" class="sidebar-item" aria-label="FAQ"><!--[--><!--]--> FAQ <!--[--><!--]--></a><!----></li><li><p tabindex="0" class="sidebar-item collapsible">专家答疑 <span class="right arrow"></span></p><ul style="display:none;" class="sidebar-item-children"><!--[--><li><a href="/doc/expert/intro.html" class="sidebar-item" aria-label="无疑 专家智能答疑 介绍"><!--[--><!--]--> 无疑 专家智能答疑 介绍 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history11466.html" class="sidebar-item" aria-label="arthas 有没有在线教程?"><!--[--><!--]--> arthas 有没有在线教程? <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history12454.html" class="sidebar-item" aria-label="arthas 怎么查看内存情况?"><!--[--><!--]--> arthas 怎么查看内存情况? <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history13507.html" class="sidebar-item" aria-label="arthas查看内存占用大的地方"><!--[--><!--]--> arthas查看内存占用大的地方 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history14832.html" class="sidebar-item" aria-label="arthas启动时内存溢出"><!--[--><!--]--> arthas启动时内存溢出 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history15730.html" class="sidebar-item" aria-label="arthas 观察方法中的某个变量的值"><!--[--><!--]--> arthas 观察方法中的某个变量的值 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history11440.html" class="sidebar-item" aria-label="arthas 怎么使用?"><!--[--><!--]--> arthas 怎么使用? <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history11467.html" class="sidebar-item" aria-label="arthas 在线教程在哪?"><!--[--><!--]--> arthas 在线教程在哪? <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history12455.html" class="sidebar-item" aria-label="arthas 排查内存泄露的具体方法"><!--[--><!--]--> arthas 排查内存泄露的具体方法 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history13508.html" class="sidebar-item" aria-label="arthas 如何查看内存使用情况"><!--[--><!--]--> arthas 如何查看内存使用情况 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history14833.html" class="sidebar-item" aria-label="Start arthas failed, exception stack trace:com.sun.tools.attach"><!--[--><!--]--> Start arthas failed, exception stack trace:com.sun.tools.attach <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history15731.html" class="sidebar-item" aria-label="arthas 过滤方法的阐述"><!--[--><!--]--> arthas 过滤方法的阐述 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history11442.html" class="sidebar-item" aria-label="arthas 介绍一下"><!--[--><!--]--> arthas 介绍一下 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history11468.html" class="sidebar-item" aria-label="arthas 怎么使用?"><!--[--><!--]--> arthas 怎么使用? <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history12706.html" class="sidebar-item" aria-label="arthas 火焰图 怎么看?"><!--[--><!--]--> arthas 火焰图 怎么看? <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history13509.html" class="sidebar-item" aria-label="通过arthas怎样排查项目中哪个对象泄露了或者占用内存太大"><!--[--><!--]--> 通过arthas怎样排查项目中哪个对象泄露了或者占用内存太大 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history14834.html" class="sidebar-item" aria-label="使用arthas 跟踪进程服务后,进程所占用的文件描述符陡增,且文件描述符不下降"><!--[--><!--]--> 使用arthas 跟踪进程服务后,进程所占用的文件描述符陡增,且文件描述符不下降 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history15735.html" class="sidebar-item" aria-label="arthas报错connect to telnet server error: 127.0.0.1 9999"><!--[--><!--]--> arthas报错connect to telnet server error: 127.0.0.1 9999 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history11443.html" class="sidebar-item" aria-label="arthas 下载和安装"><!--[--><!--]--> arthas 下载和安装 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history11469.html" class="sidebar-item" aria-label="linux的arthas使用教程"><!--[--><!--]--> linux的arthas使用教程 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history12715.html" class="sidebar-item" aria-label="java 如何用arthas 查看 内存 情况?"><!--[--><!--]--> java 如何用arthas 查看 内存 情况? <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history13510.html" class="sidebar-item" aria-label="查看实时jvm内存大小"><!--[--><!--]--> 查看实时jvm内存大小 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history14840.html" class="sidebar-item" aria-label="Unsupported class file major version 61 using arthas 3.6.3"><!--[--><!--]--> Unsupported class file major version 61 using arthas 3.6.3 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history15736.html" class="sidebar-item" aria-label="arthas 中jad参数"><!--[--><!--]--> arthas 中jad参数 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history11444.html" class="sidebar-item" aria-label="arthas 命令解释"><!--[--><!--]--> arthas 命令解释 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history11784.html" class="sidebar-item" aria-label="arthas使用的各类方式有哪些"><!--[--><!--]--> arthas使用的各类方式有哪些 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history12716.html" class="sidebar-item" aria-label="arthas 怎么查看堆内存太高"><!--[--><!--]--> arthas 怎么查看堆内存太高 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history13511.html" class="sidebar-item" aria-label="arthas方法运行后查看成员变量"><!--[--><!--]--> arthas方法运行后查看成员变量 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history14843.html" class="sidebar-item" aria-label="arthas 支持jdk 20么"><!--[--><!--]--> arthas 支持jdk 20么 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history15737.html" class="sidebar-item" aria-label="进程停了 arthas也会同步停止么"><!--[--><!--]--> 进程停了 arthas也会同步停止么 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history11450.html" class="sidebar-item" aria-label="arthas 分析thread线程卡住"><!--[--><!--]--> arthas 分析thread线程卡住 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history11795.html" class="sidebar-item" aria-label="使用arthas查看成员变量值具体怎么做"><!--[--><!--]--> 使用arthas查看成员变量值具体怎么做 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history12740.html" class="sidebar-item" aria-label="arthas怎么分析cpu很高"><!--[--><!--]--> arthas怎么分析cpu很高 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history13512.html" class="sidebar-item" aria-label="如何查看java内存增长哪些对象"><!--[--><!--]--> 如何查看java内存增长哪些对象 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history15167.html" class="sidebar-item" aria-label="介绍一下arthas"><!--[--><!--]--> 介绍一下arthas <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history15738.html" class="sidebar-item" aria-label="arthas如何查看hashmap的值"><!--[--><!--]--> arthas如何查看hashmap的值 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history11451.html" class="sidebar-item" aria-label="arthas 怎么排查cpu占用过高"><!--[--><!--]--> arthas 怎么排查cpu占用过高 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history11809.html" class="sidebar-item" aria-label="linux下的arthas 具体怎么用?(使用教程)"><!--[--><!--]--> linux下的arthas 具体怎么用?(使用教程) <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history12741.html" class="sidebar-item" aria-label="如何使用arthas查看系统哪个地方内存占用过大"><!--[--><!--]--> 如何使用arthas查看系统哪个地方内存占用过大 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history13513.html" class="sidebar-item" aria-label="arthas 监听成员变量值的方法是什么?"><!--[--><!--]--> arthas 监听成员变量值的方法是什么? <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history15543.html" class="sidebar-item" aria-label="arthas中tt命令如何查看方法入参的具体命令"><!--[--><!--]--> arthas中tt命令如何查看方法入参的具体命令 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history15739.html" class="sidebar-item" aria-label="arthas可以监听私有方法吗"><!--[--><!--]--> arthas可以监听私有方法吗 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history11452.html" class="sidebar-item" aria-label="arthas 查看方法耗时"><!--[--><!--]--> arthas 查看方法耗时 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history11810.html" class="sidebar-item" aria-label="arthas查看方法耗时"><!--[--><!--]--> arthas查看方法耗时 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history13448.html" class="sidebar-item" aria-label="如何使用arthas分析慢查询"><!--[--><!--]--> 如何使用arthas分析慢查询 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history13522.html" class="sidebar-item" aria-label="Connect to telnet server error: 127.0.0.1 3658"><!--[--><!--]--> Connect to telnet server error: 127.0.0.1 3658 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history15726.html" class="sidebar-item" aria-label="arthas 如何查询static变量"><!--[--><!--]--> arthas 如何查询static变量 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history15740.html" class="sidebar-item" aria-label="arthas 分析内存升高的方法"><!--[--><!--]--> arthas 分析内存升高的方法 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history11453.html" class="sidebar-item" aria-label="arthas 怎样查看方法耗时"><!--[--><!--]--> arthas 怎样查看方法耗时 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history11814.html" class="sidebar-item" aria-label="arthas 怎么排查内存泄漏"><!--[--><!--]--> arthas 怎么排查内存泄漏 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history13504.html" class="sidebar-item" aria-label="如何查看实时jvm内存大小占用"><!--[--><!--]--> 如何查看实时jvm内存大小占用 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history14763.html" class="sidebar-item" aria-label="利用Arthas排查NoSuchMethodError"><!--[--><!--]--> 利用Arthas排查NoSuchMethodError <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history15728.html" class="sidebar-item" aria-label="arthas 获取成员变量"><!--[--><!--]--> arthas 获取成员变量 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history11454.html" class="sidebar-item" aria-label="arthas 常用命令介绍"><!--[--><!--]--> arthas 常用命令介绍 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history12453.html" class="sidebar-item" aria-label="arthas 怎么查看内存情况?"><!--[--><!--]--> arthas 怎么查看内存情况? <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history13506.html" class="sidebar-item" aria-label="如何查看java内存增长哪些对象"><!--[--><!--]--> 如何查看java内存增长哪些对象 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history14831.html" class="sidebar-item" aria-label="Dashboard 命令cpuUsage长期在90%左右"><!--[--><!--]--> Dashboard 命令cpuUsage长期在90%左右 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history15729.html" class="sidebar-item" aria-label="arthas 怎么查看变量内容"><!--[--><!--]--> arthas 怎么查看变量内容 <!--[--><!--]--></a><!----></li><!--]--></ul></li><li><a class="external-link sidebar-item" href="https://github.com/alibaba/arthas/issues?q=label%3Auser-case" rel="noopener noreferrer" target="_blank" aria-label="用户案例"><!--[--><!--]--><span>用户案例</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">在新窗口打开</span></span><!--[--><!--]--></a><!----></li><li><a class="external-link sidebar-item" href="https://github.com/alibaba/arthas" rel="noopener noreferrer" target="_blank" aria-label="Star me at github"><!--[--><!--]--><span>Star me at 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">在新窗口打开</span></span><!--[--><!--]--></a><!----></li><li><a class="external-link sidebar-item" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md" rel="noopener noreferrer" target="_blank" aria-label="编译调试/参与贡献"><!--[--><!--]--><span>编译调试/参与贡献</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">在新窗口打开</span></span><!--[--><!--]--></a><!----></li><li><a class="external-link sidebar-item" href="https://github.com/alibaba/arthas/releases" rel="noopener noreferrer" target="_blank" aria-label="Release Notes"><!--[--><!--]--><span>Release Notes</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">在新窗口打开</span></span><!--[--><!--]--></a><!----></li><li><a href="/doc/contact-us.md" class="sidebar-item" aria-label="QQ 群/钉钉群"><!--[--><!--]--> QQ 群/钉钉群 <!--[--><!--]--></a><!----></li><!--]--></ul></li><!--]--></ul><!--[--><!--]--></aside><!--]--><!--[--><main class="page" data-v-fdd717e0><!--[--><!--]--><div class="right-menu-padding theme-default-content" data-v-fdd717e0><!--[--><!--]--><div class="right-menu-wrapper" data-v-fdd717e0 data-v-64666cd5><div class="right-menu-margin" data-v-64666cd5><div class="right-menu-title" data-v-64666cd5>目录</div><div class="right-menu-content" data-v-64666cd5><!--[--><!--]--></div></div></div><div data-v-fdd717e0><h1 id="watch" tabindex="-1"><a class="header-anchor" href="#watch" aria-hidden="true">#</a> watch</h1><p><a href="https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn&amp;id=command-watch" target="_blank" rel="noopener noreferrer"><code>watch</code>在线教程<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">在新窗口打开</span></span></a></p><div class="custom-container tip"><p class="custom-container-title">提示</p><p>函数执行数据观测</p></div><p>让你能方便的观察到指定函数的调用情况。能观察到的范围为:<code>返回值</code><code>抛出异常</code><code>入参</code>,通过编写 OGNL 表达式进行对应变量的查看。</p><h2 id="参数说明" tabindex="-1"><a class="header-anchor" href="#参数说明" aria-hidden="true">#</a> 参数说明</h2><p>watch 的参数比较多,主要是因为它能在 4 个不同的场景观察对象</p><table><thead><tr><th style="text-align:right;">参数名称</th><th style="text-align:left;">参数说明</th></tr></thead><tbody><tr><td style="text-align:right;"><em>class-pattern</em></td><td style="text-align:left;">类名表达式匹配</td></tr><tr><td style="text-align:right;"><em>method-pattern</em></td><td style="text-align:left;">函数名表达式匹配</td></tr><tr><td style="text-align:right;"><em>express</em></td><td style="text-align:left;">观察表达式,默认值:<code>{params, target, returnObj}</code></td></tr><tr><td style="text-align:right;"><em>condition-express</em></td><td style="text-align:left;">条件表达式</td></tr><tr><td style="text-align:right;">[b]</td><td style="text-align:left;"><strong>函数调用之前</strong>观察</td></tr><tr><td style="text-align:right;">[e]</td><td style="text-align:left;"><strong>函数异常之后</strong>观察</td></tr><tr><td style="text-align:right;">[s]</td><td style="text-align:left;"><strong>函数返回之后</strong>观察</td></tr><tr><td style="text-align:right;">[f]</td><td style="text-align:left;"><strong>函数结束之后</strong>(正常返回和异常返回)观察</td></tr><tr><td style="text-align:right;">[E]</td><td style="text-align:left;">开启正则表达式匹配,默认为通配符匹配</td></tr><tr><td style="text-align:right;">[x:]</td><td style="text-align:left;">指定输出结果的属性遍历深度,默认为 1最大值是 4</td></tr><tr><td style="text-align:right;"><code>[m &lt;arg&gt;]</code></td><td style="text-align:left;">指定 Class 最大匹配数量,默认值为 50。长格式为<code>[maxMatch &lt;arg&gt;]</code></td></tr></tbody></table><p>这里重点要说明的是观察表达式,观察表达式的构成主要由 ognl 表达式组成,所以你可以这样写<code>&quot;{params,returnObj}&quot;</code>,只要是一个合法的 ognl 表达式,都能被正常支持。</p><p>观察的维度也比较多,主要体现在参数 <code>advice</code> 的数据结构上。<code>Advice</code> 参数最主要是封装了通知节点的所有信息。请参考<a href="/doc/advice-class.html" class="">表达式核心变量</a>中关于该节点的描述。</p><ul><li>特殊用法请参考:<a href="https://github.com/alibaba/arthas/issues/71" target="_blank" rel="noopener noreferrer">https://github.com/alibaba/arthas/issues/71<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">在新窗口打开</span></span></a></li><li>OGNL 表达式官网:<a href="https://commons.apache.org/dormant/commons-ognl/language-guide.html" target="_blank" rel="noopener noreferrer">https://commons.apache.org/dormant/commons-ognl/language-guide.html<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">在新窗口打开</span></span></a></li></ul><p><strong>特别说明</strong></p><ul><li>watch 命令定义了 4 个观察事件点,即 <code>-b</code> 函数调用前,<code>-e</code> 函数异常后,<code>-s</code> 函数返回后,<code>-f</code> 函数结束后</li><li>4 个观察事件点 <code>-b</code><code>-e</code><code>-s</code> 默认关闭,<code>-f</code> 默认打开,当指定观察点被打开后,在相应事件点会对观察表达式进行求值并输出</li><li>这里要注意<code>函数入参</code><code>函数出参</code>的区别,有可能在中间被修改导致前后不一致,除了 <code>-b</code> 事件点 <code>params</code> 代表函数入参外,其余事件都代表函数出参</li><li>当使用 <code>-b</code> 时,由于观察事件点是在函数调用前,此时返回值或异常均不存在</li><li>在 watch 命令的结果里,会打印出<code>location</code>信息。<code>location</code>有三种可能值:<code>AtEnter</code><code>AtExit</code><code>AtExceptionExit</code>。对应函数入口,函数正常 return函数抛出异常。</li></ul><h2 id="使用参考" tabindex="-1"><a class="header-anchor" href="#使用参考" aria-hidden="true">#</a> 使用参考</h2><h3 id="启动-demo" tabindex="-1"><a class="header-anchor" href="#启动-demo" aria-hidden="true">#</a> 启动 Demo</h3><p>启动<a href="/doc/quick-start.html" class="">快速入门</a>里的<code>math-game</code></p><h3 id="观察函数调用返回时的参数、this-对象和返回值" tabindex="-1"><a class="header-anchor" href="#观察函数调用返回时的参数、this-对象和返回值" aria-hidden="true">#</a> 观察函数调用返回时的参数、this 对象和返回值</h3><div class="custom-container tip"><p class="custom-container-title">提示</p><p>观察表达式,默认值是<code>{params, target, returnObj}</code></p></div><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ <span class="token function">watch</span> demo.MathGame primeFactors <span class="token parameter variable">-x</span> <span class="token number">2</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">32</span> ms, listenerId: <span class="token number">5</span>
<span class="token assign-left variable">method</span><span class="token operator">=</span>demo.MathGame.primeFactors <span class="token assign-left variable">location</span><span class="token operator">=</span>AtExceptionExit
<span class="token assign-left variable">ts</span><span class="token operator">=</span><span class="token number">2021</span>-08-31 <span class="token number">15</span>:22:57<span class="token punctuation">;</span> <span class="token punctuation">[</span>cost<span class="token operator">=</span><span class="token number">0</span>.220625ms<span class="token punctuation">]</span> <span class="token assign-left variable">result</span><span class="token operator">=</span>@ArrayList<span class="token punctuation">[</span>
@Object<span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">[</span>
@Integer<span class="token punctuation">[</span>-179173<span class="token punctuation">]</span>,
<span class="token punctuation">]</span>,
@MathGame<span class="token punctuation">[</span>
<span class="token assign-left variable">random</span><span class="token operator">=</span>@Random<span class="token punctuation">[</span>java.util.Random@31cefde0<span class="token punctuation">]</span>,
<span class="token assign-left variable">illegalArgumentCount</span><span class="token operator">=</span>@Integer<span class="token punctuation">[</span><span class="token number">44</span><span class="token punctuation">]</span>,
<span class="token punctuation">]</span>,
null,
<span class="token punctuation">]</span>
<span class="token assign-left variable">method</span><span class="token operator">=</span>demo.MathGame.primeFactors <span class="token assign-left variable">location</span><span class="token operator">=</span>AtExit
<span class="token assign-left variable">ts</span><span class="token operator">=</span><span class="token number">2021</span>-08-31 <span class="token number">15</span>:22:58<span class="token punctuation">;</span> <span class="token punctuation">[</span>cost<span class="token operator">=</span><span class="token number">1</span>.020982ms<span class="token punctuation">]</span> <span class="token assign-left variable">result</span><span class="token operator">=</span>@ArrayList<span class="token punctuation">[</span>
@Object<span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">[</span>
@Integer<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span>,
<span class="token punctuation">]</span>,
@MathGame<span class="token punctuation">[</span>
<span class="token assign-left variable">random</span><span class="token operator">=</span>@Random<span class="token punctuation">[</span>java.util.Random@31cefde0<span class="token punctuation">]</span>,
<span class="token assign-left variable">illegalArgumentCount</span><span class="token operator">=</span>@Integer<span class="token punctuation">[</span><span class="token number">44</span><span class="token punctuation">]</span>,
<span class="token punctuation">]</span>,
@ArrayList<span class="token punctuation">[</span>
@Integer<span class="token punctuation">[</span><span class="token number">2</span><span class="token punctuation">]</span>,
@Integer<span class="token punctuation">[</span><span class="token number">2</span><span class="token punctuation">]</span>,
@Integer<span class="token punctuation">[</span><span class="token number">26947</span><span class="token punctuation">]</span>,
<span class="token punctuation">]</span>,
<span class="token punctuation">]</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><ul><li>上面的结果里,说明函数被执行了两次,第一次结果是<code>location=AtExceptionExit</code>,说明函数抛出异常了,因此<code>returnObj</code>是 null</li><li>在第二次结果里是<code>location=AtExit</code>,说明函数正常返回,因此可以看到<code>returnObj</code>结果是一个 ArrayList</li></ul><h3 id="指定-class-最大匹配数量" tabindex="-1"><a class="header-anchor" href="#指定-class-最大匹配数量" aria-hidden="true">#</a> 指定 Class 最大匹配数量</h3><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ <span class="token function">watch</span> demo.MathGame primeFactors <span class="token parameter variable">-m</span> <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">302</span> ms, listenerId: <span class="token number">3</span>
<span class="token assign-left variable">method</span><span class="token operator">=</span>demo.MathGame.primeFactors <span class="token assign-left variable">location</span><span class="token operator">=</span>AtExceptionExit
<span class="token assign-left variable">ts</span><span class="token operator">=</span><span class="token number">2022</span>-12-25 <span class="token number">19</span>:58:41<span class="token punctuation">;</span> <span class="token punctuation">[</span>cost<span class="token operator">=</span><span class="token number">0</span>.222419ms<span class="token punctuation">]</span> <span class="token assign-left variable">result</span><span class="token operator">=</span>@ArrayList<span class="token punctuation">[</span>
@Object<span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">[</span>isEmpty<span class="token operator">=</span>false<span class="token punctuation">;</span><span class="token assign-left variable">size</span><span class="token operator">=</span><span class="token number">1</span><span class="token punctuation">]</span>,
@MathGame<span class="token punctuation">[</span>demo.MathGame@3bf400<span class="token punctuation">]</span>,
null,
<span class="token punctuation">]</span>
<span class="token assign-left variable">method</span><span class="token operator">=</span>demo.MathGame.primeFactors <span class="token assign-left variable">location</span><span class="token operator">=</span>AtExceptionExit
<span class="token assign-left variable">ts</span><span class="token operator">=</span><span class="token number">2022</span>-12-25 <span class="token number">19</span>:58:51<span class="token punctuation">;</span> <span class="token punctuation">[</span>cost<span class="token operator">=</span><span class="token number">0</span>.046928ms<span class="token punctuation">]</span> <span class="token assign-left variable">result</span><span class="token operator">=</span>@ArrayList<span class="token punctuation">[</span>
@Object<span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">[</span>isEmpty<span class="token operator">=</span>false<span class="token punctuation">;</span><span class="token assign-left variable">size</span><span class="token operator">=</span><span class="token number">1</span><span class="token punctuation">]</span>,
@MathGame<span class="token punctuation">[</span>demo.MathGame@3bf400<span class="token punctuation">]</span>,
null,
<span class="token punctuation">]</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="观察函数调用入口的参数和返回值" tabindex="-1"><a class="header-anchor" href="#观察函数调用入口的参数和返回值" aria-hidden="true">#</a> 观察函数调用入口的参数和返回值</h3><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ <span class="token function">watch</span> demo.MathGame primeFactors <span class="token string">&quot;{params,returnObj}&quot;</span> <span class="token parameter variable">-x</span> <span class="token number">2</span> <span class="token parameter variable">-b</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">50</span> ms.
<span class="token assign-left variable">ts</span><span class="token operator">=</span><span class="token number">2018</span>-12-03 <span class="token number">19</span>:23:23<span class="token punctuation">;</span> <span class="token punctuation">[</span>cost<span class="token operator">=</span><span class="token number">0</span>.0353ms<span class="token punctuation">]</span> <span class="token assign-left variable">result</span><span class="token operator">=</span>@ArrayList<span class="token punctuation">[</span>
@Object<span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">[</span>
@Integer<span class="token punctuation">[</span>-1077465243<span class="token punctuation">]</span>,
<span class="token punctuation">]</span>,
null,
<span class="token punctuation">]</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><ul><li>对比前一个例子,返回值为空(事件点为函数执行前,因此获取不到返回值)</li></ul><h3 id="同时观察函数调用前和函数返回后" tabindex="-1"><a class="header-anchor" href="#同时观察函数调用前和函数返回后" aria-hidden="true">#</a> 同时观察函数调用前和函数返回后</h3><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ <span class="token function">watch</span> demo.MathGame primeFactors <span class="token string">&quot;{params,target,returnObj}&quot;</span> <span class="token parameter variable">-x</span> <span class="token number">2</span> <span class="token parameter variable">-b</span> <span class="token parameter variable">-s</span> <span class="token parameter variable">-n</span> <span class="token number">2</span>
Press Ctrl+C to abort.
Affect<span class="token punctuation">(</span>class-cnt:1 , method-cnt:1<span class="token punctuation">)</span> cost <span class="token keyword">in</span> <span class="token number">46</span> ms.
<span class="token assign-left variable">ts</span><span class="token operator">=</span><span class="token number">2018</span>-12-03 <span class="token number">19</span>:29:54<span class="token punctuation">;</span> <span class="token punctuation">[</span>cost<span class="token operator">=</span><span class="token number">0</span>.01696ms<span class="token punctuation">]</span> <span class="token assign-left variable">result</span><span class="token operator">=</span>@ArrayList<span class="token punctuation">[</span>
@Object<span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">[</span>
@Integer<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span>,
<span class="token punctuation">]</span>,
@MathGame<span class="token punctuation">[</span>
<span class="token assign-left variable">random</span><span class="token operator">=</span>@Random<span class="token punctuation">[</span>java.util.Random@522b408a<span class="token punctuation">]</span>,
<span class="token assign-left variable">illegalArgumentCount</span><span class="token operator">=</span>@Integer<span class="token punctuation">[</span><span class="token number">13038</span><span class="token punctuation">]</span>,
<span class="token punctuation">]</span>,
null,
<span class="token punctuation">]</span>
<span class="token assign-left variable">ts</span><span class="token operator">=</span><span class="token number">2018</span>-12-03 <span class="token number">19</span>:29:54<span class="token punctuation">;</span> <span class="token punctuation">[</span>cost<span class="token operator">=</span><span class="token number">4</span>.277392ms<span class="token punctuation">]</span> <span class="token assign-left variable">result</span><span class="token operator">=</span>@ArrayList<span class="token punctuation">[</span>
@Object<span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">[</span>
@Integer<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span>,
<span class="token punctuation">]</span>,
@MathGame<span class="token punctuation">[</span>
<span class="token assign-left variable">random</span><span class="token operator">=</span>@Random<span class="token punctuation">[</span>java.util.Random@522b408a<span class="token punctuation">]</span>,
<span class="token assign-left variable">illegalArgumentCount</span><span class="token operator">=</span>@Integer<span class="token punctuation">[</span><span class="token number">13038</span><span class="token punctuation">]</span>,
<span class="token punctuation">]</span>,
@ArrayList<span class="token punctuation">[</span>
@Integer<span class="token punctuation">[</span><span class="token number">2</span><span class="token punctuation">]</span>,
@Integer<span class="token punctuation">[</span><span class="token number">2</span><span class="token punctuation">]</span>,
@Integer<span class="token punctuation">[</span><span class="token number">2</span><span class="token punctuation">]</span>,
@Integer<span class="token punctuation">[</span><span class="token number">5</span><span class="token punctuation">]</span>,
@Integer<span class="token punctuation">[</span><span class="token number">5</span><span class="token punctuation">]</span>,
@Integer<span class="token punctuation">[</span><span class="token number">73</span><span class="token punctuation">]</span>,
@Integer<span class="token punctuation">[</span><span class="token number">241</span><span class="token punctuation">]</span>,
@Integer<span class="token punctuation">[</span><span class="token number">439</span><span class="token punctuation">]</span>,
<span class="token punctuation">]</span>,
<span class="token punctuation">]</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><ul><li><p>参数里<code>-n 2</code>,表示只执行两次</p></li><li><p>这里输出结果中,第一次输出的是函数调用前的观察表达式的结果,第二次输出的是函数返回后的表达式的结果</p></li><li><p>结果的输出顺序和事件发生的先后顺序一致,和命令中 <code>-s -b</code> 的顺序无关</p></li></ul><h3 id="调整-x的值-观察具体的函数参数值" tabindex="-1"><a class="header-anchor" href="#调整-x的值-观察具体的函数参数值" aria-hidden="true">#</a> 调整<code>-x</code>的值,观察具体的函数参数值</h3><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ <span class="token function">watch</span> demo.MathGame primeFactors <span class="token string">&quot;{params,target}&quot;</span> <span class="token parameter variable">-x</span> <span class="token number">3</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">58</span> ms.
<span class="token assign-left variable">ts</span><span class="token operator">=</span><span class="token number">2018</span>-12-03 <span class="token number">19</span>:34:19<span class="token punctuation">;</span> <span class="token punctuation">[</span>cost<span class="token operator">=</span><span class="token number">0</span>.587833ms<span class="token punctuation">]</span> <span class="token assign-left variable">result</span><span class="token operator">=</span>@ArrayList<span class="token punctuation">[</span>
@Object<span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">[</span>
@Integer<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span>,
<span class="token punctuation">]</span>,
@MathGame<span class="token punctuation">[</span>
<span class="token assign-left variable">random</span><span class="token operator">=</span>@Random<span class="token punctuation">[</span>
<span class="token assign-left variable">serialVersionUID</span><span class="token operator">=</span>@Long<span class="token punctuation">[</span><span class="token number">3905348978240129619</span><span class="token punctuation">]</span>,
<span class="token assign-left variable">seed</span><span class="token operator">=</span>@AtomicLong<span class="token punctuation">[</span><span class="token number">3133719055989</span><span class="token punctuation">]</span>,
<span class="token assign-left variable">multiplier</span><span class="token operator">=</span>@Long<span class="token punctuation">[</span><span class="token number">25214903917</span><span class="token punctuation">]</span>,
<span class="token assign-left variable">addend</span><span class="token operator">=</span>@Long<span class="token punctuation">[</span><span class="token number">11</span><span class="token punctuation">]</span>,
<span class="token assign-left variable">mask</span><span class="token operator">=</span>@Long<span class="token punctuation">[</span><span class="token number">281474976710655</span><span class="token punctuation">]</span>,
<span class="token assign-left variable">DOUBLE_UNIT</span><span class="token operator">=</span>@Double<span class="token punctuation">[</span><span class="token number">1</span>.1102230246251565E-16<span class="token punctuation">]</span>,
<span class="token assign-left variable">BadBound</span><span class="token operator">=</span>@String<span class="token punctuation">[</span>bound must be positive<span class="token punctuation">]</span>,
<span class="token assign-left variable">BadRange</span><span class="token operator">=</span>@String<span class="token punctuation">[</span>bound must be greater than origin<span class="token punctuation">]</span>,
<span class="token assign-left variable">BadSize</span><span class="token operator">=</span>@String<span class="token punctuation">[</span>size must be non-negative<span class="token punctuation">]</span>,
<span class="token assign-left variable">seedUniquifier</span><span class="token operator">=</span>@AtomicLong<span class="token punctuation">[</span>-3282039941672302964<span class="token punctuation">]</span>,
<span class="token assign-left variable">nextNextGaussian</span><span class="token operator">=</span>@Double<span class="token punctuation">[</span><span class="token number">0.0</span><span class="token punctuation">]</span>,
<span class="token assign-left variable">haveNextNextGaussian</span><span class="token operator">=</span>@Boolean<span class="token punctuation">[</span>false<span class="token punctuation">]</span>,
<span class="token assign-left variable">serialPersistentFields</span><span class="token operator">=</span>@ObjectStreamField<span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">[</span>isEmpty<span class="token operator">=</span>false<span class="token punctuation">;</span><span class="token assign-left variable">size</span><span class="token operator">=</span><span class="token number">3</span><span class="token punctuation">]</span>,
<span class="token assign-left variable">unsafe</span><span class="token operator">=</span>@Unsafe<span class="token punctuation">[</span>sun.misc.Unsafe@2eaa1027<span class="token punctuation">]</span>,
<span class="token assign-left variable">seedOffset</span><span class="token operator">=</span>@Long<span class="token punctuation">[</span><span class="token number">24</span><span class="token punctuation">]</span>,
<span class="token punctuation">]</span>,
<span class="token assign-left variable">illegalArgumentCount</span><span class="token operator">=</span>@Integer<span class="token punctuation">[</span><span class="token number">13159</span><span class="token punctuation">]</span>,
<span class="token punctuation">]</span>,
<span class="token punctuation">]</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><ul><li><code>-x</code>表示遍历深度,可以调整来打印具体的参数和结果内容,默认值是 1。</li><li><code>-x</code>最大值是 4防止展开结果占用太多内存。用户可以在<code>ognl</code>表达式里指定更具体的 field。</li></ul><h3 id="条件表达式的例子" tabindex="-1"><a class="header-anchor" href="#条件表达式的例子" aria-hidden="true">#</a> 条件表达式的例子</h3><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ <span class="token function">watch</span> demo.MathGame primeFactors <span class="token string">&quot;{params[0],target}&quot;</span> <span class="token string">&quot;params[0]&lt;0&quot;</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">68</span> ms.
<span class="token assign-left variable">ts</span><span class="token operator">=</span><span class="token number">2018</span>-12-03 <span class="token number">19</span>:36:04<span class="token punctuation">;</span> <span class="token punctuation">[</span>cost<span class="token operator">=</span><span class="token number">0</span>.530255ms<span class="token punctuation">]</span> <span class="token assign-left variable">result</span><span class="token operator">=</span>@ArrayList<span class="token punctuation">[</span>
@Integer<span class="token punctuation">[</span>-18178089<span class="token punctuation">]</span>,
@MathGame<span class="token punctuation">[</span>demo.MathGame@41cf53f9<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></div><ul><li>只有满足条件的调用,才会有响应。</li></ul><h3 id="观察异常信息的例子" tabindex="-1"><a class="header-anchor" href="#观察异常信息的例子" aria-hidden="true">#</a> 观察异常信息的例子</h3><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ <span class="token function">watch</span> demo.MathGame primeFactors <span class="token string">&quot;{params[0],throwExp}&quot;</span> <span class="token parameter variable">-e</span> <span class="token parameter variable">-x</span> <span class="token number">2</span>
Press Ctrl+C to abort.
Affect<span class="token punctuation">(</span>class-cnt:1 , method-cnt:1<span class="token punctuation">)</span> cost <span class="token keyword">in</span> <span class="token number">62</span> ms.
<span class="token assign-left variable">ts</span><span class="token operator">=</span><span class="token number">2018</span>-12-03 <span class="token number">19</span>:38:00<span class="token punctuation">;</span> <span class="token punctuation">[</span>cost<span class="token operator">=</span><span class="token number">1</span>.414993ms<span class="token punctuation">]</span> <span class="token assign-left variable">result</span><span class="token operator">=</span>@ArrayList<span class="token punctuation">[</span>
@Integer<span class="token punctuation">[</span>-1120397038<span class="token punctuation">]</span>,
java.lang.IllegalArgumentException: number is: -1120397038, 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>
,
<span class="token punctuation">]</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><ul><li><code>-e</code>表示抛出异常时才触发</li><li>express 中,表示异常信息的变量是<code>throwExp</code></li></ul><h3 id="按照耗时进行过滤" tabindex="-1"><a class="header-anchor" href="#按照耗时进行过滤" aria-hidden="true">#</a> 按照耗时进行过滤</h3><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ <span class="token function">watch</span> demo.MathGame primeFactors <span class="token string">&#39;{params, returnObj}&#39;</span> <span class="token string">&#39;#cost&gt;200&#39;</span> <span class="token parameter variable">-x</span> <span class="token number">2</span>
Press Ctrl+C to abort.
Affect<span class="token punctuation">(</span>class-cnt:1 , method-cnt:1<span class="token punctuation">)</span> cost <span class="token keyword">in</span> <span class="token number">66</span> ms.
<span class="token assign-left variable">ts</span><span class="token operator">=</span><span class="token number">2018</span>-12-03 <span class="token number">19</span>:40:28<span class="token punctuation">;</span> <span class="token punctuation">[</span>cost<span class="token operator">=</span><span class="token number">2112</span>.168897ms<span class="token punctuation">]</span> <span class="token assign-left variable">result</span><span class="token operator">=</span>@ArrayList<span class="token punctuation">[</span>
@Object<span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">[</span>
@Integer<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span>,
<span class="token punctuation">]</span>,
@ArrayList<span class="token punctuation">[</span>
@Integer<span class="token punctuation">[</span><span class="token number">5</span><span class="token punctuation">]</span>,
@Integer<span class="token punctuation">[</span><span class="token number">428379493</span><span class="token punctuation">]</span>,
<span class="token punctuation">]</span>,
<span class="token punctuation">]</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><ul><li><code>#cost&gt;200</code>(单位是<code>ms</code>)表示只有当耗时大于 200ms 时才会输出,过滤掉执行时间小于 200ms 的调用</li></ul><h3 id="观察当前对象中的属性" tabindex="-1"><a class="header-anchor" href="#观察当前对象中的属性" aria-hidden="true">#</a> 观察当前对象中的属性</h3><p>如果想查看函数运行前后,当前对象中的属性,可以使用<code>target</code>关键字,代表当前对象</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ <span class="token function">watch</span> demo.MathGame primeFactors <span class="token string">&#39;target&#39;</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">52</span> ms.
<span class="token assign-left variable">ts</span><span class="token operator">=</span><span class="token number">2018</span>-12-03 <span class="token number">19</span>:41:52<span class="token punctuation">;</span> <span class="token punctuation">[</span>cost<span class="token operator">=</span><span class="token number">0</span>.477882ms<span class="token punctuation">]</span> <span class="token assign-left variable">result</span><span class="token operator">=</span>@MathGame<span class="token punctuation">[</span>
<span class="token assign-left variable">random</span><span class="token operator">=</span>@Random<span class="token punctuation">[</span>java.util.Random@522b408a<span class="token punctuation">]</span>,
<span class="token assign-left variable">illegalArgumentCount</span><span class="token operator">=</span>@Integer<span class="token punctuation">[</span><span class="token number">13355</span><span class="token punctuation">]</span>,
<span class="token punctuation">]</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>然后使用<code>target.field_name</code>访问当前对象的某个属性</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ <span class="token function">watch</span> demo.MathGame primeFactors <span class="token string">&#39;target.illegalArgumentCount&#39;</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">67</span> ms.
<span class="token assign-left variable">ts</span><span class="token operator">=</span><span class="token number">2018</span>-12-03 <span class="token number">20</span>:04:34<span class="token punctuation">;</span> <span class="token punctuation">[</span>cost<span class="token operator">=</span><span class="token number">131</span>.303498ms<span class="token punctuation">]</span> <span class="token assign-left variable">result</span><span class="token operator">=</span>@Integer<span class="token punctuation">[</span><span class="token number">8</span><span class="token punctuation">]</span>
<span class="token assign-left variable">ts</span><span class="token operator">=</span><span class="token number">2018</span>-12-03 <span class="token number">20</span>:04:35<span class="token punctuation">;</span> <span class="token punctuation">[</span>cost<span class="token operator">=</span><span class="token number">0</span>.961441ms<span class="token punctuation">]</span> <span class="token assign-left variable">result</span><span class="token operator">=</span>@Integer<span class="token punctuation">[</span><span class="token number">8</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></div><h3 id="获取类的静态字段、调用类的静态函数的例子" tabindex="-1"><a class="header-anchor" href="#获取类的静态字段、调用类的静态函数的例子" aria-hidden="true">#</a> 获取类的静态字段、调用类的静态函数的例子</h3><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token function">watch</span> demo.MathGame * <span class="token string">&#39;{params,@demo.MathGame@random.nextInt(100)}&#39;</span> <span class="token parameter variable">-v</span> <span class="token parameter variable">-n</span> <span class="token number">1</span> <span class="token parameter variable">-x</span> <span class="token number">2</span>
<span class="token punctuation">[</span>arthas@6527<span class="token punctuation">]</span>$ <span class="token function">watch</span> demo.MathGame * <span class="token string">&#39;{params,@demo.MathGame@random.nextInt(100)}&#39;</span> <span class="token parameter variable">-n</span> <span class="token number">1</span> <span class="token parameter variable">-x</span> <span class="token number">2</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">5</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">3</span>
<span class="token assign-left variable">ts</span><span class="token operator">=</span><span class="token number">2021</span>-01-05 <span class="token number">21</span>:35:20<span class="token punctuation">;</span> <span class="token punctuation">[</span>cost<span class="token operator">=</span><span class="token number">0</span>.173966ms<span class="token punctuation">]</span> <span class="token assign-left variable">result</span><span class="token operator">=</span>@ArrayList<span class="token punctuation">[</span>
@Object<span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">[</span>
@Integer<span class="token punctuation">[</span>-138282<span class="token punctuation">]</span>,
<span class="token punctuation">]</span>,
@Integer<span class="token punctuation">[</span><span class="token number">89</span><span class="token punctuation">]</span>,
<span class="token punctuation">]</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><ul><li>注意这里使用 <code>Thread.currentThread().getContextClassLoader()</code> 加载,使用精确<code>classloader</code> <a href="/doc/ognl.html" class="">ognl</a>更好。</li></ul><h3 id="排除掉指定的类" tabindex="-1"><a class="header-anchor" href="#排除掉指定的类" aria-hidden="true">#</a> 排除掉指定的类</h3><div class="custom-container tip"><p class="custom-container-title">提示</p><p>watch/trace/monitor/stack/tt 命令都支持 <code>--exclude-class-pattern</code> 参数</p></div><p>使用 <code>--exclude-class-pattern</code> 参数可以排除掉指定的类,比如:</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><h3 id="不匹配子类" tabindex="-1"><a class="header-anchor" href="#不匹配子类" aria-hidden="true">#</a> 不匹配子类</h3><p>默认情况下 watch/trace/monitor/stack/tt 命令都会匹配子类。如果想不匹配,可以通过全局参数关掉。</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>options disable-sub-class <span class="token boolean">true</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><h3 id="使用-v-参数打印更多信息" tabindex="-1"><a class="header-anchor" href="#使用-v-参数打印更多信息" aria-hidden="true">#</a> 使用 -v 参数打印更多信息</h3><div class="custom-container tip"><p class="custom-container-title">提示</p><p>watch/trace/monitor/stack/tt 命令都支持 <code>-v</code> 参数</p></div><p>当命令执行之后,没有输出结果。有两种可能:</p><ol><li>匹配到的函数没有被执行</li><li>条件表达式结果是 false</li></ol><p>但用户区分不出是哪种情况。</p><p>使用 <code>-v</code>选项,则会打印<code>Condition express</code>的具体值和执行结果,方便确认。</p><p>比如:</p><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>$ watch -v -x 2 demo.MathGame print &#39;params&#39; &#39;params[0] &gt; 100000&#39;
Press Q or Ctrl+C to abort.
Affect(class count: 1 , method count: 1) cost in 29 ms, listenerId: 11
Condition express: params[0] &gt; 100000 , result: false
Condition express: params[0] &gt; 100000 , result: false
Condition express: params[0] &gt; 100000 , result: true
ts=2020-12-02 22:38:56; [cost=0.060843ms] result=@Object[][
@Integer[200033],
@ArrayList[
@Integer[200033],
],
]
Condition express: params[0] &gt; 100000 , result: true
ts=2020-12-02 22:38:57; [cost=0.052877ms] result=@Object[][
@Integer[123047],
@ArrayList[
@Integer[29],
@Integer[4243],
],
]
</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></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/doc/watch.md" rel="noopener noreferrer" target="_blank" aria-label="在 GitHub 上编辑此页"><!--[--><!--]--><span>在 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">在新窗口打开</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">贡献者: </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 class="contributor" title="email: haoyixing@kuaishou.com">haoyixing</span><!--[-->, <!--]--><!--]--><!--[--><span class="contributor" title="email: hengyunabc@users.noreply.github.com">hengyunabc</span><!--[-->, <!--]--><!--]--><!--[--><span class="contributor" title="email: 35672972+pandaapo@users.noreply.github.com">pandaapo</span><!--[-->, <!--]--><!--]--><!--[--><span class="contributor" title="email: hollowman186@vip.qq.com">Hollow Man</span><!--[-->, <!--]--><!--]--><!--[--><span class="contributor" title="email: snipercy@users.noreply.github.com">vic</span><!--[-->, <!--]--><!--]--><!--[--><span class="contributor" title="email: 983433479@qq.com">汪吉</span><!----><!--]--><!--]--></span></div></footer><nav class="page-nav right-menu-padding" data-v-fdd717e0><p class="inner"><span class="prev"><a href="/doc/vmtool.html" class="" aria-label="vmtool"><!--[--><!--]--> vmtool <!--[--><!--]--></a></span><!----></p></nav><!--[--><!--]--></main><!--]--></div><!----><!--]--></div>
<script type="module" src="/assets/app.5024572d.js" defer></script>
</body>
</html>