|
|
<!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.49">
|
|
|
<style>
|
|
|
:root {
|
|
|
--c-bg: #fff;
|
|
|
}
|
|
|
html.dark {
|
|
|
--c-bg: #22272e;
|
|
|
}
|
|
|
html, body {
|
|
|
background-color: var(--c-bg);
|
|
|
}
|
|
|
</style>
|
|
|
<script>
|
|
|
const userMode = localStorage.getItem('vuepress-color-scheme');
|
|
|
const systemDarkMode = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
|
|
|
if (userMode === 'dark' || (userMode !== 'light' && systemDarkMode)) {
|
|
|
document.documentElement.classList.toggle('dark', true);
|
|
|
}
|
|
|
</script>
|
|
|
<link rel="icon" href="/images/favicon.ico"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta property="og:title" content="Arthas"><meta property="og:image:alt" content="Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas - 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><title>watch | arthas</title><meta name="description" content="arthas 使用文档">
|
|
|
<link rel="modulepreload" href="/assets/app.bd2aade7.js"><link rel="modulepreload" href="/assets/watch.html.6eaa9d61.js"><link rel="modulepreload" href="/assets/watch.html.f2a08eb8.js"><link rel="prefetch" href="/assets/index.html.ec74869a.js"><link rel="prefetch" href="/assets/index.html.d3cced9f.js"><link rel="prefetch" href="/assets/index.html.c11a8683.js"><link rel="prefetch" href="/assets/advanced-use.html.d690d46c.js"><link rel="prefetch" href="/assets/advice-class.html.4e93ebd7.js"><link rel="prefetch" href="/assets/agent.html.a02fd5cb.js"><link rel="prefetch" href="/assets/arthas-properties.html.e0301951.js"><link rel="prefetch" href="/assets/arthas3.html.d1633eb8.js"><link rel="prefetch" href="/assets/async.html.17ea43ab.js"><link rel="prefetch" href="/assets/auth.html.37ca6bb5.js"><link rel="prefetch" href="/assets/base64.html.b9530fc8.js"><link rel="prefetch" href="/assets/batch-support.html.a2be35e2.js"><link rel="prefetch" href="/assets/cat.html.42885227.js"><link rel="prefetch" href="/assets/classloader.html.faacf70e.js"><link rel="prefetch" href="/assets/cls.html.af39fd39.js"><link rel="prefetch" href="/assets/commands.html.9dc0463a.js"><link rel="prefetch" href="/assets/contact-us.html.16fb01ac.js"><link rel="prefetch" href="/assets/dashboard.html.0b694615.js"><link rel="prefetch" href="/assets/docker.html.797da397.js"><link rel="prefetch" href="/assets/download.html.a75cd477.js"><link rel="prefetch" href="/assets/dump.html.e5e17e0e.js"><link rel="prefetch" href="/assets/echo.html.922d5af6.js"><link rel="prefetch" href="/assets/faq.html.abd854f1.js"><link rel="prefetch" href="/assets/getstatic.html.77a5a68e.js"><link rel="prefetch" href="/assets/grep.html.75fa6737.js"><link rel="prefetch" href="/assets/groovy.html.bcb88dfe.js"><link rel="prefetch" href="/assets/heapdump.html.5e26a91c.js"><link rel="prefetch" href="/assets/help.html.9365d9ca.js"><link rel="prefetch" href="/assets/history.html.19b5039d.js"><link rel="prefetch" href="/assets/http-api.html.1b6f4877.js"><link rel="prefetch" href="/assets/idea-plugin.html.438f3f13.js"><link rel="prefetch" href="/assets/install-detail.html.cfd3d763.js"><link rel="prefetch" href="/assets/jad.html.45a48802.js"><link rel="prefetch" href="/assets/jvm.html.9e2ef28b.js"><link rel="prefetch" href="/assets/keymap.html.82e95f8e.js"><link rel="prefetch" href="/assets/logger.html.38490b13.js"><link rel="prefetch" href="/assets/manual-install.html.1daf5a51.js"><link rel="prefetch" href="/assets/mbean.html.b5a19b16.js"><link rel="prefetch" href="/assets/mc.html.28a839a5.js"><link rel="prefetch" href="/assets/memory.html.21a8a665.js"><link rel="prefetch" href="/assets/monitor.html.ea7499e3.js"><link rel="prefetch" href="/assets/ognl.html.c55aa597.js"><link rel="prefetch" href="/assets/options.html.da3ef3a3.js"><link rel="prefetch" href="/assets/perfcounter.html.cfebcf2d.js"><link rel="prefetch" href="/assets/profiler.html.cd7e1584.js"><link rel="prefetch" href="/assets/pwd.html.9c92f559.js"><link rel="prefetch" href="/assets/quick-start.html.d9abe6d7.js"><link rel="prefetch" href="/assets/quit.html.3f89724d.js"><link rel="prefetch" href="/assets/redefine.html.8a08813b.js"><link rel="prefetch" href="/assets/release-notes.html.dc8ff1f0.js"><link rel="prefetch" href="/assets/reset.html.1413086f.js"><link rel="prefetch" href="/assets/retransform.html.342303bb.js"><link rel="prefetch" href="/assets/save-log.html.c42ff748.js"><link rel="prefetch" href="/assets/sc.html.f9c5b69c.js"><link rel="prefetch" href="/assets/session.html.6904a40b.js"><link rel="prefetch" href="/assets/sm.html.a212974a.js"><link rel="prefetch" href="/assets/spring-boot-starter.html.e62a7a68.js"><link rel="prefetch" href="/assets/stack.html.a3201354.js"><link rel="prefetch" href="/assets/start-arthas.html.5421937d.js"><link rel="prefetch" href="/assets/stop.html.e7556014.js"><link rel="prefetch" href="/assets/sysenv.html.51ba409a.js"><link rel="prefetch" href="/assets/sysprop.html.480d71dd.js"><link rel="prefetch" href="/assets/tee.html.09a9aee7.js"><link rel="prefetch" href="/assets/thread.html.f9fb3f7f.js"><link rel="prefetch" href="/assets/trace.html.802884f0.js"><link rel="prefetch" href="/assets/tt.html.90727eec.js"><link rel="prefetch" href="/assets/tunnel.html.1e68078f.js"><link rel="prefetch" href="/assets/version.html.1939b7e3.js"><link rel="prefetch" href="/assets/vmoption.html.7e8e3fb6.js"><link rel="prefetch" href="/assets/vmtool.html.bc281a9f.js"><link rel="prefetch" href="/assets/web-console.html.b1b2d995.js"><link rel="prefetch" href="/assets/index.html.3a2f8949.js"><link rel="prefetch" href="/assets/advanced-use.html.cc1fae23.js"><link rel="prefetch" href="/assets/advice-class.html.c85748d6.js"><link rel="prefetch" href="/assets/agent.html.6d5822c4.js"><link rel="prefetch" href="/assets/arthas-properties.html.0a5926f9.js"><link rel="prefetch" href="/assets/async.html.1026bdce.js"><link rel="prefetch" href="/assets/auth.html.d2f91944.js"><link rel="prefetch" href="/assets/base64.html.54234c7b.js"><link rel="prefetch" href="/assets/batch-support.html.3757e6f4.js"><link rel="prefetch" href="/assets/cat.html.7fe5df76.js"><link rel="prefetch" href="/assets/classloader.html.30e77ffd.js"><link rel="prefetch" href="/assets/cls.html.5c798b59.js"><link rel="prefetch" href="/assets/commands.html.1e21cec8.js"><link rel="prefetch" href="/assets/contact-us.html.157b2624.js"><link rel="prefetch" href="/assets/dashboard.html.d06a3034.js"><link rel="prefetch" href="/assets/docker.html.d36bba26.js"><link rel="prefetch" href="/assets/download.html.73fc2f14.js"><link rel="prefetch" href="/assets/dump.html.8533dea7.js"><link rel="prefetch" href="/assets/echo.html.d08e1abe.js"><link rel="prefetch" href="/assets/faq.html.27684b86.js"><link rel="prefetch" href="/assets/getstatic.html.039bd4c7.js"><link rel="prefetch" href="/assets/grep.html.557e5c0d.js"><link rel="prefetch" href="/assets/groovy.html.a98236a6.js"><link rel="prefetch" href="/assets/heapdump.html.f9cf25e4.js"><link rel="prefetch" href="/assets/help.html.af61dc8b.js"><link rel="prefetch" href="/assets/history.html.bb1e238f.js"><link rel="prefetch" href="/assets/http-api.html.d8f9cf6b.js"><link rel="prefetch" href="/assets/idea-plugin.html.be6cfb55.js"><link rel="prefetch" href="/assets/install-detail.html.2a3c7491.js"><link rel="prefetch" href="/assets/jad.html.0de0c5e4.js"><link rel="prefetch" href="/assets/jvm.html.1ecd23d5.js"><link rel="prefetch" href="/assets/keymap.html.7f907b4a.js"><link rel="prefetch" href="/assets/logger.html.05a707f0.js"><link rel="prefetch" href="/assets/manual-install.html.94267611.js"><link rel="prefetch" href="/assets/mbean.html.ab8bf029.js"><link rel="prefetch" href="/assets/mc.html.ebc8f6c6.js"><link rel="prefetch" href="/assets/memory.html.d99cf236.js"><link rel="prefetch" href="/assets/monitor.html.0e25aeeb.js"><link rel="prefetch" href="/assets/ognl.html.463064ec.js"><link rel="prefetch" href="/assets/options.html.0a60e172.js"><link rel="prefetch" href="/assets/perfcounter.html.56cc287b.js"><link rel="prefetch" href="/assets/profiler.html.bb3be3e4.js"><link rel="prefetch" href="/assets/pwd.html.4ff08309.js"><link rel="prefetch" href="/assets/quick-start.html.f017229d.js"><link rel="prefetch" href="/assets/quit.html.5f2533ff.js"><link rel="prefetch" href="/assets/redefine.html.497bc2ff.js"><link rel="prefetch" href="/assets/release-notes.html.b32334af.js"><link rel="prefetch" href="/assets/reset.html.e5115576.js"><link rel="prefetch" href="/assets/retransform.html.2e291e26.js"><link rel="prefetch" href="/assets/save-log.html.90b53239.js"><link rel="prefetch" href="/assets/sc.html.e33bb0ca.js"><link rel="prefetch" href="/assets/session.html.634b618d.js"><link rel="prefetch" href="/assets/sm.html.28fd9f13.js"><link rel="prefetch" href="/assets/spring-boot-starter.html.32190257.js"><link rel="prefetch" href="/assets/stack.html.ff1c60c9.js"><link rel="prefetch" href="/assets/start-arthas.html.da02bebb.js"><link rel="prefetch" href="/assets/stop.html.1b2fd2e3.js"><link rel="prefetch" href="/assets/sysenv.html.9c390518.js"><link rel="prefetch" href="/assets/sysprop.html.458454e7.js"><link rel="prefetch" href="/assets/tee.html.9956d861.js"><link rel="prefetch" href="/assets/thread.html.7aa1204e.js"><link rel="prefetch" href="/assets/trace.html.c9726067.js"><link rel="prefetch" href="/assets/tt.html.29320194.js"><link rel="prefetch" href="/assets/tunnel.html.d81dec3a.js"><link rel="prefetch" href="/assets/version.html.13288d78.js"><link rel="prefetch" href="/assets/vmoption.html.8f5a0c4f.js"><link rel="prefetch" href="/assets/vmtool.html.e00609f9.js"><link rel="prefetch" href="/assets/watch.html.cf74c868.js"><link rel="prefetch" href="/assets/web-console.html.ec01c3c7.js"><link rel="prefetch" href="/assets/404.html.6ec8a9cd.js"><link rel="prefetch" href="/assets/index.html.5c066ef8.js"><link rel="prefetch" href="/assets/index.html.758b214c.js"><link rel="prefetch" href="/assets/index.html.76261c19.js"><link rel="prefetch" href="/assets/advanced-use.html.bacf9c97.js"><link rel="prefetch" href="/assets/advice-class.html.f9ecd271.js"><link rel="prefetch" href="/assets/agent.html.ca83f763.js"><link rel="prefetch" href="/assets/arthas-properties.html.05c209f7.js"><link rel="prefetch" href="/assets/arthas3.html.37a04c34.js"><link rel="prefetch" href="/assets/async.html.99c90cc5.js"><link rel="prefetch" href="/assets/auth.html.c6e2f754.js"><link rel="prefetch" href="/assets/base64.html.00fa731c.js"><link rel="prefetch" href="/assets/batch-support.html.490857ff.js"><link rel="prefetch" href="/assets/cat.html.bc506c84.js"><link rel="prefetch" href="/assets/classloader.html.44ceda4f.js"><link rel="prefetch" href="/assets/cls.html.4b037a2c.js"><link rel="prefetch" href="/assets/commands.html.71f84f2a.js"><link rel="prefetch" href="/assets/contact-us.html.b14012be.js"><link rel="prefetch" href="/assets/dashboard.html.6dd78583.js"><link rel="prefetch" href="/assets/docker.html.010e0e88.js"><link rel="prefetch" href="/assets/download.html.5881ff87.js"><link rel="prefetch" href="/assets/dump.html.eb0a94f7.js"><link rel="prefetch" href="/assets/echo.html.45a38b84.js"><link rel="prefetch" href="/assets/faq.html.5e884cdc.js"><link rel="prefetch" href="/assets/getstatic.html.977a401d.js"><link rel="prefetch" href="/assets/grep.html.1050092a.js"><link rel="prefetch" href="/assets/groovy.html.2364c6ca.js"><link rel="prefetch" href="/assets/heapdump.html.7f0445cf.js"><link rel="prefetch" href="/assets/help.html.b77ccdc8.js"><link rel="prefetch" href="/assets/history.html.12a39d33.js"><link rel="prefetch" href="/assets/http-api.html.7c8fdc0a.js"><link rel="prefetch" href="/assets/idea-plugin.html.95d9f4c5.js"><link rel="prefetch" href="/assets/install-detail.html.67ac8674.js"><link rel="prefetch" href="/assets/jad.html.ff9a3396.js"><link rel="prefetch" href="/assets/jvm.html.4d95fa2f.js"><link rel="prefetch" href="/assets/keymap.html.91fc23f9.js"><link rel="prefetch" href="/assets/logger.html.9f7f206f.js"><link rel="prefetch" href="/assets/manual-install.html.39eb890a.js"><link rel="prefetch" href="/assets/mbean.html.fa3f3b57.js"><link rel="prefetch" href="/assets/mc.html.0b0f2b53.js"><link rel="prefetch" href="/assets/memory.html.c8befe45.js"><link rel="prefetch" href="/assets/monitor.html.a8d8fa31.js"><link rel="prefetch" href="/assets/ognl.html.aac79e98.js"><link rel="prefetch" href="/assets/options.html.009dcd64.js"><link rel="prefetch" href="/assets/perfcounter.html.ebc76012.js"><link rel="prefetch" href="/assets/profiler.html.8e89a25b.js"><link rel="prefetch" href="/assets/pwd.html.bd0a54d7.js"><link rel="prefetch" href="/assets/quick-start.html.4f68720d.js"><link rel="prefetch" href="/assets/quit.html.3736848b.js"><link rel="prefetch" href="/assets/redefine.html.c5cf8d7e.js"><link rel="prefetch" href="/assets/release-notes.html.4fd5502c.js"><link rel="prefetch" href="/assets/reset.html.d6268d5c.js"><link rel="prefetch" href="/assets/retransform.html.d78055ca.js"><link rel="prefetch" href="/assets/save-log.html.5abc716e.js"><link rel="prefetch" href="/assets/sc.html.6ca17ad7.js"><link rel="prefetch" href="/assets/session.html.e9c8c833.js"><link rel="prefetch" href="/assets/sm.html.6699ffe4.js"><link rel="prefetch" href="/assets/spring-boot-starter.html.0c527697.js"><link rel="prefetch" href="/assets/stack.html.fcfee614.js"><link rel="prefetch" href="/assets/start-arthas.html.31ee061f.js"><link rel="prefetch" href="/assets/stop.html.2e7c2abf.js"><link rel="prefetch" href="/assets/sysenv.html.b451a296.js"><link rel="prefetch" href="/assets/sysprop.html.d930dcd4.js"><link rel="prefetch" href="/assets/tee.html.ee51f52b.js"><link rel="prefetch" href="/assets/thread.html.643cef5a.js"><link rel="prefetch" href="/assets/trace.html.7dfbfb09.js"><link rel="prefetch" href="/assets/tt.html.97b33086.js"><link rel="prefetch" href="/assets/tunnel.html.8d0ac66c.js"><link rel="prefetch" href="/assets/version.html.06950398.js"><link rel="prefetch" href="/assets/vmoption.html.0f459a46.js"><link rel="prefetch" href="/assets/vmtool.html.adfeea8a.js"><link rel="prefetch" href="/assets/web-console.html.e5cfd775.js"><link rel="prefetch" href="/assets/index.html.c0309f84.js"><link rel="prefetch" href="/assets/advanced-use.html.c6f6a88a.js"><link rel="prefetch" href="/assets/advice-class.html.fba35b96.js"><link rel="prefetch" href="/assets/agent.html.c6a4f516.js"><link rel="prefetch" href="/assets/arthas-properties.html.4d77eb12.js"><link rel="prefetch" href="/assets/async.html.066f186b.js"><link rel="prefetch" href="/assets/auth.html.18dee9de.js"><link rel="prefetch" href="/assets/base64.html.cdf21e2d.js"><link rel="prefetch" href="/assets/batch-support.html.49d042fe.js"><link rel="prefetch" href="/assets/cat.html.572c13ce.js"><link rel="prefetch" href="/assets/classloader.html.7edc6fd1.js"><link rel="prefetch" href="/assets/cls.html.c5d91203.js"><link rel="prefetch" href="/assets/commands.html.4d519f02.js"><link rel="prefetch" href="/assets/contact-us.html.19acb455.js"><link rel="prefetch" href="/assets/dashboard.html.6e0fd9c5.js"><link rel="prefetch" href="/assets/docker.html.57292855.js"><link rel="prefetch" href="/assets/download.html.c9308c0c.js"><link rel="prefetch" href="/assets/dump.html.c69caadc.js"><link rel="prefetch" href="/assets/echo.html.f8fe187e.js"><link rel="prefetch" href="/assets/faq.html.eb698c38.js"><link rel="prefetch" href="/assets/getstatic.html.d5884253.js"><link rel="prefetch" href="/assets/grep.html.25d04700.js"><link rel="prefetch" href="/assets/groovy.html.ecfe8d3e.js"><link rel="prefetch" href="/assets/heapdump.html.55597356.js"><link rel="prefetch" href="/assets/help.html.abb127ac.js"><link rel="prefetch" href="/assets/history.html.7ac5f109.js"><link rel="prefetch" href="/assets/http-api.html.b523afd7.js"><link rel="prefetch" href="/assets/idea-plugin.html.da32568b.js"><link rel="prefetch" href="/assets/install-detail.html.aebaee81.js"><link rel="prefetch" href="/assets/jad.html.527a2e52.js"><link rel="prefetch" href="/assets/jvm.html.1082513f.js"><link rel="prefetch" href="/assets/keymap.html.78b69f28.js"><link rel="prefetch" href="/assets/logger.html.960934f5.js"><link rel="prefetch" href="/assets/manual-install.html.c98b7e1b.js"><link rel="prefetch" href="/assets/mbean.html.2a498b98.js"><link rel="prefetch" href="/assets/mc.html.5b2d98a7.js"><link rel="prefetch" href="/assets/memory.html.b93f2254.js"><link rel="prefetch" href="/assets/monitor.html.db174040.js"><link rel="prefetch" href="/assets/ognl.html.97f0364e.js"><link rel="prefetch" href="/assets/options.html.8632a79a.js"><link rel="prefetch" href="/assets/perfcounter.html.ca091871.js"><link rel="prefetch" href="/assets/profiler.html.2e418321.js"><link rel="prefetch" href="/assets/pwd.html.1cf82844.js"><link rel="prefetch" href="/assets/quick-start.html.5fd27e20.js"><link rel="prefetch" href="/assets/quit.html.079fe8b8.js"><link rel="prefetch" href="/assets/redefine.html.60b71d53.js"><link rel="prefetch" href="/assets/release-notes.html.cfa3e304.js"><link rel="prefetch" href="/assets/reset.html.aeb73063.js"><link rel="prefetch" href="/assets/retransform.html.90b4d2d3.js"><link rel="prefetch" href="/assets/save-log.html.82aeb468.js"><link rel="prefetch" href="/assets/sc.html.4bcd4c16.js"><link rel="prefetch" href="/assets/session.html.1b0f50e8.js"><link rel="prefetch" href="/assets/sm.html.c6b546ef.js"><link rel="prefetch" href="/assets/spring-boot-starter.html.3339aa97.js"><link rel="prefetch" href="/assets/stack.html.cbface9b.js"><link rel="prefetch" href="/assets/start-arthas.html.b496a7a0.js"><link rel="prefetch" href="/assets/stop.html.fda72b6e.js"><link rel="prefetch" href="/assets/sysenv.html.2fcabe0b.js"><link rel="prefetch" href="/assets/sysprop.html.91fd91ff.js"><link rel="prefetch" href="/assets/tee.html.40ab7063.js"><link rel="prefetch" href="/assets/thread.html.c2f26777.js"><link rel="prefetch" href="/assets/trace.html.80c1395b.js"><link rel="prefetch" href="/assets/tt.html.61e714d4.js"><link rel="prefetch" href="/assets/tunnel.html.e4bc3a2c.js"><link rel="prefetch" href="/assets/version.html.0af4e411.js"><link rel="prefetch" href="/assets/vmoption.html.ae8c7fea.js"><link rel="prefetch" href="/assets/vmtool.html.758e6040.js"><link rel="prefetch" href="/assets/watch.html.656aeaf0.js"><link rel="prefetch" href="/assets/web-console.html.429076db.js"><link rel="prefetch" href="/assets/404.html.5f2befc1.js"><link rel="prefetch" href="/assets/404.86b95e26.js"><link rel="prefetch" href="/assets/Layout.e2e44844.js">
|
|
|
<link rel="stylesheet" href="/assets/style.372e9f20.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-2aa8cc94><!----><span class="site-name can-hide" data-v-2aa8cc94>arthas</span><span class="navbar-version" data-v-2aa8cc94>v3.6.4</span></a></span><div class="navbar-items-wrapper" style=""><!--[--><!--]--><nav class="navbar-items can-hide"><!--[--><div class="navbar-item"><a href="/" class="" aria-label="首页"><!--[--><!--]--> 首页 <!--[--><!--]--></a></div><div class="navbar-item"><a class="external-link" href="/doc/arthas-tutorials.html?language=cn&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"><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://cn.aliyun.com/product/aliware/mse?spm=arthas.topbar.0.0.0" 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 class="navbar-dropdown-item"><a class="external-link" href="https://www.aliyun.com/aliware/txc?spm=arthas.topbar.0.0.0" rel="noopener noreferrer" target="_blank" aria-label="分布式事务解决方案"><!--[--><!--]--><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 class="navbar-dropdown-item"><a class="external-link" href="https://www.aliyun.com/product/ahas?spm=arthas.topbar.0.0.0" rel="noopener noreferrer" target="_blank" aria-label="高可用解决方案"><!--[--><!--]--><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 class="navbar-dropdown-item"><a class="external-link" href="https://cn.aliyun.com/product/aliware/sae?spm=arthas.topbar.0.0.0" rel="noopener noreferrer" target="_blank" aria-label="微服务Serverless解决方案"><!--[--><!--]--><span>微服务Serverless解决方案</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 class="navbar-dropdown-item"><a class="external-link" href="https://www.aliyun.com/product/edas?spm=arthas.topbar.0.0.0" rel="noopener noreferrer" target="_blank" aria-label="PaaS解决方案"><!--[--><!--]--><span>PaaS解决方案</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 class="navbar-dropdown-item"><a class="external-link" href="https://www.aliyun.com/product/servicemesh?spm=arthas.topbar.0.0.0" 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><!--]--></ul></div></div><div class="navbar-item"><a href="/doc/download.md" class="" aria-label="下载"><!--[--><!--]--> 下载 <!--[--><!--]--></a></div><div class="navbar-item"><a href="/doc/commands.md" class="" aria-label="命令列表"><!--[--><!--]--> 命令列表 <!--[--><!--]--></a></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&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"><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://cn.aliyun.com/product/aliware/mse?spm=arthas.topbar.0.0.0" 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 class="navbar-dropdown-item"><a class="external-link" href="https://www.aliyun.com/aliware/txc?spm=arthas.topbar.0.0.0" rel="noopener noreferrer" target="_blank" aria-label="分布式事务解决方案"><!--[--><!--]--><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 class="navbar-dropdown-item"><a class="external-link" href="https://www.aliyun.com/product/ahas?spm=arthas.topbar.0.0.0" rel="noopener noreferrer" target="_blank" aria-label="高可用解决方案"><!--[--><!--]--><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 class="navbar-dropdown-item"><a class="external-link" href="https://cn.aliyun.com/product/aliware/sae?spm=arthas.topbar.0.0.0" rel="noopener noreferrer" target="_blank" aria-label="微服务Serverless解决方案"><!--[--><!--]--><span>微服务Serverless解决方案</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 class="navbar-dropdown-item"><a class="external-link" href="https://www.aliyun.com/product/edas?spm=arthas.topbar.0.0.0" rel="noopener noreferrer" target="_blank" aria-label="PaaS解决方案"><!--[--><!--]--><span>PaaS解决方案</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 class="navbar-dropdown-item"><a class="external-link" href="https://www.aliyun.com/product/servicemesh?spm=arthas.topbar.0.0.0" 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><!--]--></ul></div></div><div class="navbar-item"><a href="/doc/download.md" class="" aria-label="下载"><!--[--><!--]--> 下载 <!--[--><!--]--></a></div><div class="navbar-item"><a href="/doc/commands.md" class="" aria-label="命令列表"><!--[--><!--]--> 命令列表 <!--[--><!--]--></a></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">文档 <!----></p><ul style="display:none;" 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 class="external-link sidebar-item" href="https://start.aliyun.com/handson-lab?category=arthas" 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 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/advanced-use.html" class="sidebar-item" aria-label="进阶使用"><!--[--><!--]--> 进阶使用 <!--[--><!--]--></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/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/batch-support.html" class="sidebar-item" aria-label="批处理功能"><!--[--><!--]--> 批处理功能 <!--[--><!--]--></a><!----></li><li><p tabindex="0" class="sidebar-item">ognl 表达式用法 <!----></p><ul style="display:none;" class="sidebar-item-children"><!--[--><li><a class="external-link sidebar-item" href="https://github.com/alibaba/arthas/issues/11" rel="noopener noreferrer" target="_blank" aria-label="活用ognl表达式"><!--[--><!--]--><span>活用ognl表达式</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/issues/71" rel="noopener noreferrer" target="_blank" aria-label="一些ognl特殊用法"><!--[--><!--]--><span>一些ognl特殊用法</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></li><!--]--></ul></li><li><a href="/doc/commands.html" class="sidebar-item" aria-label="命令列表"><!--[--><!--]--> 命令列表 <!--[--><!--]--></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/http-api.html" class="sidebar-item" aria-label="Http API"><!--[--><!--]--> Http API <!--[--><!--]--></a><!----></li><li><a href="/doc/docker.html" class="sidebar-item" aria-label="Docker"><!--[--><!--]--> Docker <!--[--><!--]--></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/idea-plugin.html" class="sidebar-item" aria-label="IDEA Plugin"><!--[--><!--]--> IDEA Plugin <!--[--><!--]--></a><!----></li><li><a href="/doc/faq.html" class="sidebar-item" aria-label="FAQ"><!--[--><!--]--> FAQ <!--[--><!--]--></a><!----></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="Start me at github"><!--[--><!--]--><span>Start 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-e0e60120><!--[--><!--]--><div class="right-menu-padding theme-default-content" data-v-e0e60120><!--[--><!--]--><div class="right-menu-wrapper" data-v-e0e60120 data-v-7f642c19><div class="right-menu-margin" data-v-7f642c19><div class="right-menu-title" data-v-7f642c19>目录</div><div class="right-menu-content" data-v-7f642c19><!--[--><!--]--></div></div></div><div data-v-e0e60120><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&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><h3 id="参数说明" tabindex="-1"><a class="header-anchor" href="#参数说明" aria-hidden="true">#</a> 参数说明</h3><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></tbody></table><p>这里重点要说明的是观察表达式,观察表达式的构成主要由 ognl 表达式组成,所以你可以这样写<code>"{params,returnObj}"</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/proper/commons-ognl/language-guide.html" target="_blank" rel="noopener noreferrer">https://commons.apache.org/proper/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><h3 id="使用参考" tabindex="-1"><a class="header-anchor" href="#使用参考" aria-hidden="true">#</a> 使用参考</h3><h4 id="启动-demo" tabindex="-1"><a class="header-anchor" href="#启动-demo" aria-hidden="true">#</a> 启动 Demo</h4><p>启动<a href="/doc/quick-start.html" class="">快速入门</a>里的<code>math-game</code>。</p><h4 id="观察函数调用返回时的参数、this-对象和返回值" tabindex="-1"><a class="header-anchor" href="#观察函数调用返回时的参数、this-对象和返回值" aria-hidden="true">#</a> 观察函数调用返回时的参数、this 对象和返回值</h4><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 -x <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><h4 id="观察函数调用入口的参数和返回值" tabindex="-1"><a class="header-anchor" href="#观察函数调用入口的参数和返回值" aria-hidden="true">#</a> 观察函数调用入口的参数和返回值</h4><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">"{params,returnObj}"</span> -x <span class="token number">2</span> -b
|
|
|
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><h4 id="同时观察函数调用前和函数返回后" tabindex="-1"><a class="header-anchor" href="#同时观察函数调用前和函数返回后" aria-hidden="true">#</a> 同时观察函数调用前和函数返回后</h4><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">"{params,target,returnObj}"</span> -x <span class="token number">2</span> -b -s -n <span class="token number">2</span>
|
|
|
Press Ctrl+C to abort.
|
|
|
Affect<span class="token punctuation">(</span>class-cnt:1 , method-cnt:1<span class="token punctuation">)</span> cost <span class="token keyword">in</span> <span class="token number">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><h4 id="调整-x的值-观察具体的函数参数值" tabindex="-1"><a class="header-anchor" href="#调整-x的值-观察具体的函数参数值" aria-hidden="true">#</a> 调整<code>-x</code>的值,观察具体的函数参数值</h4><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">"{params,target}"</span> -x <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><h4 id="条件表达式的例子" tabindex="-1"><a class="header-anchor" href="#条件表达式的例子" aria-hidden="true">#</a> 条件表达式的例子</h4><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">"{params[0],target}"</span> <span class="token string">"params[0]<0"</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><h4 id="观察异常信息的例子" tabindex="-1"><a class="header-anchor" href="#观察异常信息的例子" aria-hidden="true">#</a> 观察异常信息的例子</h4><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">"{params[0],throwExp}"</span> -e -x <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">>=</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><h4 id="按照耗时进行过滤" tabindex="-1"><a class="header-anchor" href="#按照耗时进行过滤" aria-hidden="true">#</a> 按照耗时进行过滤</h4><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">'{params, returnObj}'</span> <span class="token string">'#cost>200'</span> -x <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>200</code>(单位是<code>ms</code>)表示只有当耗时大于 200ms 时才会输出,过滤掉执行时间小于 200ms 的调用</li></ul><h4 id="观察当前对象中的属性" tabindex="-1"><a class="header-anchor" href="#观察当前对象中的属性" aria-hidden="true">#</a> 观察当前对象中的属性</h4><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">'target'</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">'target.illegalArgumentCount'</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><h4 id="获取类的静态字段、调用类的静态函数的例子" tabindex="-1"><a class="header-anchor" href="#获取类的静态字段、调用类的静态函数的例子" aria-hidden="true">#</a> 获取类的静态字段、调用类的静态函数的例子</h4><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">'{params,@demo.MathGame@random.nextInt(100)}'</span> -v -n <span class="token number">1</span> -x <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">'{params,@demo.MathGame@random.nextInt(100)}'</span> -n <span class="token number">1</span> -x <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><h4 id="排除掉指定的类" tabindex="-1"><a class="header-anchor" href="#排除掉指定的类" aria-hidden="true">#</a> 排除掉指定的类</h4><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><h4 id="不匹配子类" tabindex="-1"><a class="header-anchor" href="#不匹配子类" aria-hidden="true">#</a> 不匹配子类</h4><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><h4 id="使用-v-参数打印更多信息" tabindex="-1"><a class="header-anchor" href="#使用-v-参数打印更多信息" aria-hidden="true">#</a> 使用 -v 参数打印更多信息</h4><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 'params' 'params[0] > 100000'
|
|
|
Press Q or Ctrl+C to abort.
|
|
|
Affect(class count: 1 , method count: 1) cost in 29 ms, listenerId: 11
|
|
|
Condition express: params[0] > 100000 , result: false
|
|
|
Condition express: params[0] > 100000 , result: false
|
|
|
Condition express: params[0] > 100000 , result: true
|
|
|
ts=2020-12-02 22:38:56; [cost=0.060843ms] result=@Object[][
|
|
|
@Integer[200033],
|
|
|
@ArrayList[
|
|
|
@Integer[200033],
|
|
|
],
|
|
|
]
|
|
|
Condition express: params[0] > 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-e0e60120><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: 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><!----><!--[--><!--]--></main><!--]--></div><!----><!--]--></div>
|
|
|
<script type="module" src="/assets/app.bd2aade7.js" defer></script>
|
|
|
</body>
|
|
|
</html>
|