mirror of
https://github.com/alibaba/arthas.git
synced 2026-10-21 05:19:50 +00:00
78 lines
91 KiB
HTML
78 lines
91 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en-US">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
<meta name="generator" content="VuePress 2.0.0-beta.51">
|
|
<style>
|
|
:root {
|
|
--c-bg: #fff;
|
|
}
|
|
html.dark {
|
|
--c-bg: #22272e;
|
|
}
|
|
html, body {
|
|
background-color: var(--c-bg);
|
|
}
|
|
</style>
|
|
<script>
|
|
const userMode = localStorage.getItem('vuepress-color-scheme');
|
|
const systemDarkMode = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
|
|
if (userMode === 'dark' || (userMode !== 'light' && systemDarkMode)) {
|
|
document.documentElement.classList.toggle('dark', true);
|
|
}
|
|
</script>
|
|
<link rel="icon" href="/images/favicon.ico"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta property="og:title" content="Arthas"><meta property="og:image:alt" content="Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas - alibaba/arthas: Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas"><meta property="og:image" content="/images/arthas_mate_image.png"><meta property="og:description" content="Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas - alibaba/arthas: Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas"><meta property="og:image:width" content="1200"><meta property="og:image:height" content="600"><meta property="twitter:image:src" content="/images/arthas_mate_image.png"><meta property="twitter:image:alt" content="Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas - alibaba/arthas: Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas"><meta itemprop="name" content="Arthas"><meta itemprop="image" content="/images/arthas_mate_image.png"><meta itemprop="description" content="Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas - alibaba/arthas: Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas"><script>
|
|
var _hmt = _hmt || [];
|
|
(function() {
|
|
var hm = document.createElement("script");
|
|
hm.src = "https://hm.baidu.com/hm.js?d5c5e25b100f0eb51a4c35c8a86ea9b4";
|
|
var s = document.getElementsByTagName("script")[0];
|
|
s.parentNode.insertBefore(hm, s);
|
|
})();
|
|
</script><meta name="aes-config" content="pid=xux-opensource&user_type=101&uid=&username=&dim10=arthas"><script src="//g.alicdn.com/alilog/mlog/aplus_v2.js" id="beacon-aplus" exparams="clog=o&aplus&sidx=aplusSidx&ckx=aplusCkx"></script><script src="//g.alicdn.com/aes/??tracker/1.0.34/index.js,tracker-plugin-pv/2.4.5/index.js,tracker-plugin-event/1.2.5/index.js,tracker-plugin-jserror/1.0.13/index.js,tracker-plugin-api/1.1.14/index.js,tracker-plugin-perf/1.1.8/index.js,tracker-plugin-eventTiming/1.0.4/index.js"></script><title>Tips for Complex OGNL Expressions | arthas</title><meta name="description" content="arthas user document">
|
|
<link rel="modulepreload" href="/assets/app.e2427bec.js"><link rel="modulepreload" href="/assets/ognl-express.html.3082adb7.js"><link rel="modulepreload" href="/assets/ognl-express.html.0cd6cdc8.js"><link rel="prefetch" href="/assets/index.html.cd23e113.js"><link rel="prefetch" href="/assets/index.html.6dcd1531.js"><link rel="prefetch" href="/assets/index.html.787b4b50.js"><link rel="prefetch" href="/assets/advanced-use.html.2b80fa7d.js"><link rel="prefetch" href="/assets/advice-class.html.3778e1f2.js"><link rel="prefetch" href="/assets/agent.html.55a8cd63.js"><link rel="prefetch" href="/assets/ai.html.530e41ed.js"><link rel="prefetch" href="/assets/arthas-properties.html.1c61e69c.js"><link rel="prefetch" href="/assets/arthas3.html.11401e69.js"><link rel="prefetch" href="/assets/async.html.89c66164.js"><link rel="prefetch" href="/assets/auth.html.10e5d242.js"><link rel="prefetch" href="/assets/base64.html.26159b8a.js"><link rel="prefetch" href="/assets/batch-support.html.2f7463e9.js"><link rel="prefetch" href="/assets/cat.html.317b776a.js"><link rel="prefetch" href="/assets/classloader-metaspace.html.1c3e8440.js"><link rel="prefetch" href="/assets/classloader.html.3876b1e0.js"><link rel="prefetch" href="/assets/cls.html.60c40d73.js"><link rel="prefetch" href="/assets/commands.html.f93b9fc8.js"><link rel="prefetch" href="/assets/contact-us.html.f14b9ed1.js"><link rel="prefetch" href="/assets/dashboard.html.f3712bf4.js"><link rel="prefetch" href="/assets/docker.html.7291090b.js"><link rel="prefetch" href="/assets/download.html.1a63d650.js"><link rel="prefetch" href="/assets/dump.html.0eae962a.js"><link rel="prefetch" href="/assets/echo.html.4b25719e.js"><link rel="prefetch" href="/assets/external-command.html.9a47f025.js"><link rel="prefetch" href="/assets/faq.html.36186b06.js"><link rel="prefetch" href="/assets/getstatic.html.99701f59.js"><link rel="prefetch" href="/assets/grep.html.6ba4e7cd.js"><link rel="prefetch" href="/assets/groovy.html.6c982925.js"><link rel="prefetch" href="/assets/heapdump.html.2cfa3407.js"><link rel="prefetch" href="/assets/help.html.026cd72d.js"><link rel="prefetch" href="/assets/history.html.9f5e30aa.js"><link rel="prefetch" href="/assets/http-api.html.132670cd.js"><link rel="prefetch" href="/assets/idea-plugin.html.57e8f57c.js"><link rel="prefetch" href="/assets/install-detail.html.93881ff8.js"><link rel="prefetch" href="/assets/jad.html.49ef2409.js"><link rel="prefetch" href="/assets/jfr.html.bab2ebee.js"><link rel="prefetch" href="/assets/jvm.html.684dd27a.js"><link rel="prefetch" href="/assets/keymap.html.96d9632d.js"><link rel="prefetch" href="/assets/line.html.bfbf7f2b.js"><link rel="prefetch" href="/assets/logger.html.3d035db4.js"><link rel="prefetch" href="/assets/manual-install.html.c9b06816.js"><link rel="prefetch" href="/assets/mbean.html.0bf95e2b.js"><link rel="prefetch" href="/assets/mc.html.e292ce83.js"><link rel="prefetch" href="/assets/mcp-server.html.3cd2eec5.js"><link rel="prefetch" href="/assets/memory.html.a1b2b15c.js"><link rel="prefetch" href="/assets/monitor.html.5a803975.js"><link rel="prefetch" href="/assets/ognl-express.html.f156515d.js"><link rel="prefetch" href="/assets/ognl.html.67f38565.js"><link rel="prefetch" href="/assets/options.html.7de13b4f.js"><link rel="prefetch" href="/assets/perfcounter.html.02a2f773.js"><link rel="prefetch" href="/assets/profiler.html.0cd67a30.js"><link rel="prefetch" href="/assets/pwd.html.fe379ca1.js"><link rel="prefetch" href="/assets/quick-start.html.4a4a854b.js"><link rel="prefetch" href="/assets/quit.html.e375b368.js"><link rel="prefetch" href="/assets/redefine.html.02b78145.js"><link rel="prefetch" href="/assets/release-notes.html.daaf684d.js"><link rel="prefetch" href="/assets/reset.html.334188fe.js"><link rel="prefetch" href="/assets/retransform.html.8ab36d20.js"><link rel="prefetch" href="/assets/save-log.html.6b300b97.js"><link rel="prefetch" href="/assets/sc.html.7cdf140e.js"><link rel="prefetch" href="/assets/session.html.0168cb9d.js"><link rel="prefetch" href="/assets/sm.html.fe572b7b.js"><link rel="prefetch" href="/assets/spring-boot-starter.html.89e33109.js"><link rel="prefetch" href="/assets/stack.html.67e8e31b.js"><link rel="prefetch" href="/assets/start-arthas.html.6198e218.js"><link rel="prefetch" href="/assets/stop.html.c39fd416.js"><link rel="prefetch" href="/assets/sysenv.html.152ba8c4.js"><link rel="prefetch" href="/assets/sysprop.html.f03585de.js"><link rel="prefetch" href="/assets/tee.html.dccc689b.js"><link rel="prefetch" href="/assets/thread.html.c9f7c599.js"><link rel="prefetch" href="/assets/trace.html.05e818e5.js"><link rel="prefetch" href="/assets/tt.html.ec638e55.js"><link rel="prefetch" href="/assets/tunnel.html.5c03c09c.js"><link rel="prefetch" href="/assets/version.html.08321a1e.js"><link rel="prefetch" href="/assets/vmoption.html.d219c85b.js"><link rel="prefetch" href="/assets/vmtool.html.b5c2a935.js"><link rel="prefetch" href="/assets/watch.html.a9d6b6e1.js"><link rel="prefetch" href="/assets/web-console.html.7d232bc6.js"><link rel="prefetch" href="/assets/index.html.e6b12e55.js"><link rel="prefetch" href="/assets/advanced-use.html.5dddb9fa.js"><link rel="prefetch" href="/assets/advice-class.html.12568df6.js"><link rel="prefetch" href="/assets/agent.html.d7974fce.js"><link rel="prefetch" href="/assets/ai.html.0d965d9d.js"><link rel="prefetch" href="/assets/arthas-properties.html.962908f3.js"><link rel="prefetch" href="/assets/async.html.58415566.js"><link rel="prefetch" href="/assets/auth.html.9f2ff1c7.js"><link rel="prefetch" href="/assets/base64.html.4b84930d.js"><link rel="prefetch" href="/assets/batch-support.html.2fd7dfc3.js"><link rel="prefetch" href="/assets/cat.html.8d80e219.js"><link rel="prefetch" href="/assets/classloader-metaspace.html.466bb431.js"><link rel="prefetch" href="/assets/classloader.html.3c2e72a7.js"><link rel="prefetch" href="/assets/cls.html.8f3a5491.js"><link rel="prefetch" href="/assets/commands.html.4d2820b1.js"><link rel="prefetch" href="/assets/contact-us.html.f31aa912.js"><link rel="prefetch" href="/assets/dashboard.html.1a8e32e4.js"><link rel="prefetch" href="/assets/docker.html.ab7f2873.js"><link rel="prefetch" href="/assets/download.html.c5d48124.js"><link rel="prefetch" href="/assets/dump.html.24ea4d2e.js"><link rel="prefetch" href="/assets/echo.html.fdda77b4.js"><link rel="prefetch" href="/assets/external-command.html.3e8d782b.js"><link rel="prefetch" href="/assets/faq.html.188c09a3.js"><link rel="prefetch" href="/assets/getstatic.html.06e13f21.js"><link rel="prefetch" href="/assets/grep.html.831320e0.js"><link rel="prefetch" href="/assets/groovy.html.d70f2cba.js"><link rel="prefetch" href="/assets/heapdump.html.aa31b283.js"><link rel="prefetch" href="/assets/help.html.66e76dc7.js"><link rel="prefetch" href="/assets/history.html.62683097.js"><link rel="prefetch" href="/assets/http-api.html.a3d3ab18.js"><link rel="prefetch" href="/assets/idea-plugin.html.ae6aa4f7.js"><link rel="prefetch" href="/assets/install-detail.html.743978fa.js"><link rel="prefetch" href="/assets/jad.html.039013c5.js"><link rel="prefetch" href="/assets/jfr.html.b77304ea.js"><link rel="prefetch" href="/assets/jvm.html.eac591a0.js"><link rel="prefetch" href="/assets/keymap.html.4bc836ba.js"><link rel="prefetch" href="/assets/line.html.a9e8e2e4.js"><link rel="prefetch" href="/assets/logger.html.e09aeaa6.js"><link rel="prefetch" href="/assets/manual-install.html.85f99b8b.js"><link rel="prefetch" href="/assets/mbean.html.927e96dd.js"><link rel="prefetch" href="/assets/mc.html.d96eb37d.js"><link rel="prefetch" href="/assets/mcp-server.html.609551f2.js"><link rel="prefetch" href="/assets/memory.html.3bde6b86.js"><link rel="prefetch" href="/assets/monitor.html.fc2a02d0.js"><link rel="prefetch" href="/assets/ognl.html.c20b61d9.js"><link rel="prefetch" href="/assets/options.html.7c3bfae1.js"><link rel="prefetch" href="/assets/perfcounter.html.27f41458.js"><link rel="prefetch" href="/assets/profiler.html.67035c12.js"><link rel="prefetch" href="/assets/pwd.html.5af5f815.js"><link rel="prefetch" href="/assets/quick-start.html.0a841ca8.js"><link rel="prefetch" href="/assets/quit.html.47228ba9.js"><link rel="prefetch" href="/assets/redefine.html.68e8d9d1.js"><link rel="prefetch" href="/assets/release-notes.html.bb1f1375.js"><link rel="prefetch" href="/assets/reset.html.94ebcaf7.js"><link rel="prefetch" href="/assets/retransform.html.5a86cbf5.js"><link rel="prefetch" href="/assets/save-log.html.f871291e.js"><link rel="prefetch" href="/assets/sc.html.13503b4f.js"><link rel="prefetch" href="/assets/session.html.602a88b1.js"><link rel="prefetch" href="/assets/sm.html.a226714f.js"><link rel="prefetch" href="/assets/spring-boot-starter.html.78d66843.js"><link rel="prefetch" href="/assets/stack.html.aa5021d8.js"><link rel="prefetch" href="/assets/start-arthas.html.614c57c4.js"><link rel="prefetch" href="/assets/stop.html.481c9049.js"><link rel="prefetch" href="/assets/sysenv.html.f7014c3b.js"><link rel="prefetch" href="/assets/sysprop.html.93843170.js"><link rel="prefetch" href="/assets/tee.html.796f8441.js"><link rel="prefetch" href="/assets/thread.html.96dd9ac3.js"><link rel="prefetch" href="/assets/trace.html.4fabc19b.js"><link rel="prefetch" href="/assets/tt.html.ab370b4f.js"><link rel="prefetch" href="/assets/tunnel.html.6d15b349.js"><link rel="prefetch" href="/assets/version.html.acfdfafa.js"><link rel="prefetch" href="/assets/vmoption.html.698e78cd.js"><link rel="prefetch" href="/assets/vmtool.html.ab938841.js"><link rel="prefetch" href="/assets/watch.html.72a5979d.js"><link rel="prefetch" href="/assets/web-console.html.6349f4a1.js"><link rel="prefetch" href="/assets/404.html.1b87fa04.js"><link rel="prefetch" href="/assets/index.html.086821c2.js"><link rel="prefetch" href="/assets/index.html.18118d67.js"><link rel="prefetch" href="/assets/index.html.760efd19.js"><link rel="prefetch" href="/assets/advanced-use.html.2466ac6e.js"><link rel="prefetch" href="/assets/advice-class.html.79697a1e.js"><link rel="prefetch" href="/assets/agent.html.2480ffd9.js"><link rel="prefetch" href="/assets/ai.html.4fc4211a.js"><link rel="prefetch" href="/assets/arthas-properties.html.7dc17e44.js"><link rel="prefetch" href="/assets/arthas3.html.98a1b21b.js"><link rel="prefetch" href="/assets/async.html.60215e2c.js"><link rel="prefetch" href="/assets/auth.html.15a8fda2.js"><link rel="prefetch" href="/assets/base64.html.9f351db1.js"><link rel="prefetch" href="/assets/batch-support.html.f1130b14.js"><link rel="prefetch" href="/assets/cat.html.5c2eddad.js"><link rel="prefetch" href="/assets/classloader-metaspace.html.249e56bc.js"><link rel="prefetch" href="/assets/classloader.html.1dbda3bd.js"><link rel="prefetch" href="/assets/cls.html.14369b3c.js"><link rel="prefetch" href="/assets/commands.html.3d045ea7.js"><link rel="prefetch" href="/assets/contact-us.html.bca72555.js"><link rel="prefetch" href="/assets/dashboard.html.113af276.js"><link rel="prefetch" href="/assets/docker.html.da50033d.js"><link rel="prefetch" href="/assets/download.html.6df5a02f.js"><link rel="prefetch" href="/assets/dump.html.894aad59.js"><link rel="prefetch" href="/assets/echo.html.8bd53ad3.js"><link rel="prefetch" href="/assets/external-command.html.f331f51e.js"><link rel="prefetch" href="/assets/faq.html.0b4e272a.js"><link rel="prefetch" href="/assets/getstatic.html.0079aa66.js"><link rel="prefetch" href="/assets/grep.html.a6f74b81.js"><link rel="prefetch" href="/assets/groovy.html.74effc34.js"><link rel="prefetch" href="/assets/heapdump.html.3c58b047.js"><link rel="prefetch" href="/assets/help.html.0f234388.js"><link rel="prefetch" href="/assets/history.html.a9fdd95c.js"><link rel="prefetch" href="/assets/http-api.html.99c4fcf0.js"><link rel="prefetch" href="/assets/idea-plugin.html.34a25f10.js"><link rel="prefetch" href="/assets/install-detail.html.40e05e2a.js"><link rel="prefetch" href="/assets/jad.html.2e62e37f.js"><link rel="prefetch" href="/assets/jfr.html.fc123fb3.js"><link rel="prefetch" href="/assets/jvm.html.9b922226.js"><link rel="prefetch" href="/assets/keymap.html.33e7213e.js"><link rel="prefetch" href="/assets/line.html.70ec176e.js"><link rel="prefetch" href="/assets/logger.html.c09808a8.js"><link rel="prefetch" href="/assets/manual-install.html.81853c98.js"><link rel="prefetch" href="/assets/mbean.html.ee4f07f1.js"><link rel="prefetch" href="/assets/mc.html.9ed50f47.js"><link rel="prefetch" href="/assets/mcp-server.html.b2d1ada5.js"><link rel="prefetch" href="/assets/memory.html.8e88a19c.js"><link rel="prefetch" href="/assets/monitor.html.b4c17a07.js"><link rel="prefetch" href="/assets/ognl-express.html.1fb465fc.js"><link rel="prefetch" href="/assets/ognl.html.c39364dd.js"><link rel="prefetch" href="/assets/options.html.dae019ce.js"><link rel="prefetch" href="/assets/perfcounter.html.96a88381.js"><link rel="prefetch" href="/assets/profiler.html.8e2f4114.js"><link rel="prefetch" href="/assets/pwd.html.a1551912.js"><link rel="prefetch" href="/assets/quick-start.html.7059ebe7.js"><link rel="prefetch" href="/assets/quit.html.44df6ca4.js"><link rel="prefetch" href="/assets/redefine.html.05bba39f.js"><link rel="prefetch" href="/assets/release-notes.html.c5c1003b.js"><link rel="prefetch" href="/assets/reset.html.5e039e96.js"><link rel="prefetch" href="/assets/retransform.html.cee06ec8.js"><link rel="prefetch" href="/assets/save-log.html.fea95237.js"><link rel="prefetch" href="/assets/sc.html.982b84c0.js"><link rel="prefetch" href="/assets/session.html.35f7a4aa.js"><link rel="prefetch" href="/assets/sm.html.552b6b44.js"><link rel="prefetch" href="/assets/spring-boot-starter.html.adad135d.js"><link rel="prefetch" href="/assets/stack.html.39dc52db.js"><link rel="prefetch" href="/assets/start-arthas.html.497d3293.js"><link rel="prefetch" href="/assets/stop.html.9224e553.js"><link rel="prefetch" href="/assets/sysenv.html.e76b6bf3.js"><link rel="prefetch" href="/assets/sysprop.html.0dfbbffb.js"><link rel="prefetch" href="/assets/tee.html.26f6c8a9.js"><link rel="prefetch" href="/assets/thread.html.f8f09dc5.js"><link rel="prefetch" href="/assets/trace.html.27ac97ec.js"><link rel="prefetch" href="/assets/tt.html.a410b6a0.js"><link rel="prefetch" href="/assets/tunnel.html.3a98510a.js"><link rel="prefetch" href="/assets/version.html.e13ddf0e.js"><link rel="prefetch" href="/assets/vmoption.html.7a568db9.js"><link rel="prefetch" href="/assets/vmtool.html.27325bff.js"><link rel="prefetch" href="/assets/watch.html.2383ed88.js"><link rel="prefetch" href="/assets/web-console.html.e58ea91b.js"><link rel="prefetch" href="/assets/index.html.34145a94.js"><link rel="prefetch" href="/assets/advanced-use.html.38aef1b4.js"><link rel="prefetch" href="/assets/advice-class.html.7352d445.js"><link rel="prefetch" href="/assets/agent.html.d870df79.js"><link rel="prefetch" href="/assets/ai.html.76467e93.js"><link rel="prefetch" href="/assets/arthas-properties.html.c45f5949.js"><link rel="prefetch" href="/assets/async.html.4eaabb46.js"><link rel="prefetch" href="/assets/auth.html.031f3521.js"><link rel="prefetch" href="/assets/base64.html.a74ba9fa.js"><link rel="prefetch" href="/assets/batch-support.html.8e77cbb4.js"><link rel="prefetch" href="/assets/cat.html.a8a712c6.js"><link rel="prefetch" href="/assets/classloader-metaspace.html.1d325e53.js"><link rel="prefetch" href="/assets/classloader.html.0346e215.js"><link rel="prefetch" href="/assets/cls.html.77bb73a5.js"><link rel="prefetch" href="/assets/commands.html.0766e205.js"><link rel="prefetch" href="/assets/contact-us.html.c13483a2.js"><link rel="prefetch" href="/assets/dashboard.html.981a5405.js"><link rel="prefetch" href="/assets/docker.html.3597bdbf.js"><link rel="prefetch" href="/assets/download.html.5f1c78c9.js"><link rel="prefetch" href="/assets/dump.html.30dc9666.js"><link rel="prefetch" href="/assets/echo.html.1ca1bcbf.js"><link rel="prefetch" href="/assets/external-command.html.cc4ab827.js"><link rel="prefetch" href="/assets/faq.html.8aecb0b8.js"><link rel="prefetch" href="/assets/getstatic.html.d3e5edb1.js"><link rel="prefetch" href="/assets/grep.html.c007dc7c.js"><link rel="prefetch" href="/assets/groovy.html.47cc1adc.js"><link rel="prefetch" href="/assets/heapdump.html.291f6f55.js"><link rel="prefetch" href="/assets/help.html.9a08c3c3.js"><link rel="prefetch" href="/assets/history.html.0a1c3393.js"><link rel="prefetch" href="/assets/http-api.html.d561b855.js"><link rel="prefetch" href="/assets/idea-plugin.html.7d6cbcc9.js"><link rel="prefetch" href="/assets/install-detail.html.041805f1.js"><link rel="prefetch" href="/assets/jad.html.1626c1c4.js"><link rel="prefetch" href="/assets/jfr.html.2139c5d1.js"><link rel="prefetch" href="/assets/jvm.html.43ae7a7d.js"><link rel="prefetch" href="/assets/keymap.html.bf1351b4.js"><link rel="prefetch" href="/assets/line.html.01eb3559.js"><link rel="prefetch" href="/assets/logger.html.b88626af.js"><link rel="prefetch" href="/assets/manual-install.html.315a4f72.js"><link rel="prefetch" href="/assets/mbean.html.d1e0ff54.js"><link rel="prefetch" href="/assets/mc.html.f0819ad2.js"><link rel="prefetch" href="/assets/mcp-server.html.c2f288cd.js"><link rel="prefetch" href="/assets/memory.html.e96b1c33.js"><link rel="prefetch" href="/assets/monitor.html.be46b9bd.js"><link rel="prefetch" href="/assets/ognl.html.d226d5a4.js"><link rel="prefetch" href="/assets/options.html.12136572.js"><link rel="prefetch" href="/assets/perfcounter.html.e11ca3a1.js"><link rel="prefetch" href="/assets/profiler.html.3f6cfb27.js"><link rel="prefetch" href="/assets/pwd.html.60a0a503.js"><link rel="prefetch" href="/assets/quick-start.html.90bb144c.js"><link rel="prefetch" href="/assets/quit.html.de692497.js"><link rel="prefetch" href="/assets/redefine.html.c7e214b6.js"><link rel="prefetch" href="/assets/release-notes.html.4d2c5e1d.js"><link rel="prefetch" href="/assets/reset.html.9c6228ed.js"><link rel="prefetch" href="/assets/retransform.html.822f2ec7.js"><link rel="prefetch" href="/assets/save-log.html.aaad8817.js"><link rel="prefetch" href="/assets/sc.html.049f2400.js"><link rel="prefetch" href="/assets/session.html.fa0a110f.js"><link rel="prefetch" href="/assets/sm.html.fd569c95.js"><link rel="prefetch" href="/assets/spring-boot-starter.html.cb1cd476.js"><link rel="prefetch" href="/assets/stack.html.bdb92f2d.js"><link rel="prefetch" href="/assets/start-arthas.html.1a3db2ff.js"><link rel="prefetch" href="/assets/stop.html.c30e7079.js"><link rel="prefetch" href="/assets/sysenv.html.33a80b4e.js"><link rel="prefetch" href="/assets/sysprop.html.ae3ef70a.js"><link rel="prefetch" href="/assets/tee.html.80593816.js"><link rel="prefetch" href="/assets/thread.html.bceb3488.js"><link rel="prefetch" href="/assets/trace.html.63fe4169.js"><link rel="prefetch" href="/assets/tt.html.2b487719.js"><link rel="prefetch" href="/assets/tunnel.html.7e8c485e.js"><link rel="prefetch" href="/assets/version.html.3edc2ceb.js"><link rel="prefetch" href="/assets/vmoption.html.b0134475.js"><link rel="prefetch" href="/assets/vmtool.html.9e179166.js"><link rel="prefetch" href="/assets/watch.html.9d383a57.js"><link rel="prefetch" href="/assets/web-console.html.0614d78d.js"><link rel="prefetch" href="/assets/404.html.58d317de.js">
|
|
<link rel="stylesheet" href="/assets/style.812a0039.css">
|
|
</head>
|
|
<body>
|
|
<div id="app"><!--[--><div class="theme-container"><!--[--><header class="navbar"><div class="toggle-sidebar-button" title="toggle sidebar" aria-expanded="false" role="button" tabindex="0"><div class="icon" aria-hidden="true"><span></span><span></span><span></span></div></div><span><a href="/en/" class="" data-v-a8869d06><!----><span class="site-name can-hide" data-v-a8869d06>arthas</span><span class="navbar-version" data-v-a8869d06>v4.3.5</span></a></span><div class="navbar-items-wrapper" style=""><!--[--><!--]--><nav class="navbar-items can-hide"><!--[--><div class="navbar-item"><a href="/en/" class="" aria-label="HOME"><!--[--><!--]--> HOME <!--[--><!--]--></a></div><div class="navbar-item"><a href="/en/doc" class="router-link-active" aria-label="DOCS"><!--[--><!--]--> DOCS <!--[--><!--]--></a></div><div class="navbar-item"><a href="/en/doc/commands.md" class="" aria-label="COMMANDS"><!--[--><!--]--> COMMANDS <!--[--><!--]--></a></div><div class="navbar-item"><a href="/en/doc/download.md" class="" aria-label="DOWNLOAD"><!--[--><!--]--> DOWNLOAD <!--[--><!--]--></a></div><div class="navbar-item"><div class="navbar-dropdown-wrapper"><button class="navbar-dropdown-title" type="button" aria-label="VERSIONS"><span class="title">VERSIONS</span><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="VERSIONS"><span class="title">VERSIONS</span><span class="right arrow"></span></button><ul style="display:none;" class="navbar-dropdown"><!--[--><li class="navbar-dropdown-item"><a class="external-link" href="https://arthas.aliyun.com/3.x/en/" rel="noopener noreferrer" target="_blank" aria-label="v3.x"><!--[--><!--]--><span>v3.x</span><span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!--[--><!--]--></a></li><!--]--></ul></div></div><div class="navbar-item"><div class="navbar-dropdown-wrapper"><button class="navbar-dropdown-title" type="button" aria-label="Select language"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1em" height="1em" style="height:1.25rem;width:1.25rem;vertical-align:bottom;" viewbox="0 0 24 24"><path fill="currentColor" d="M13.35 22q-.6 0-.862-.387q-.263-.388-.063-.963l3.65-9.675q.15-.4.563-.688Q17.05 10 17.5 10q.425 0 .85.287q.425.288.575.688l3.65 9.675q.2.575-.062.963q-.263.387-.888.387q-.275 0-.5-.175q-.225-.175-.325-.425l-.85-2.45H15.1l-.875 2.45q-.1.25-.35.425q-.25.175-.525.175Zm2.35-4.8h3.6l-1.75-4.95h-.1ZM7.15 8.55q.4.725.85 1.337q.45.613 1.05 1.263q1.1-1.2 1.825-2.462Q11.6 7.425 12.1 6H2q-.425 0-.712-.287Q1 5.425 1 5t.288-.713Q1.575 4 2 4h6V3q0-.425.288-.713Q8.575 2 9 2t.713.287Q10 2.575 10 3v1h6q.425 0 .712.287Q17 4.575 17 5t-.288.713Q16.425 6 16 6h-1.9q-.525 1.775-1.425 3.45q-.9 1.675-2.225 3.15l2.4 2.45l-.75 2.05L9 14l-4.3 4.3q-.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 href="/doc/ognl-express.html" class="" aria-label="简体中文"><!--[--><!--]--> 简体中文 <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a aria-current="page" href="/en/doc/ognl-express.html" class="router-link-active router-link-exact-active router-link-active" 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="toggle color mode"><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="/en/" class="" aria-label="HOME"><!--[--><!--]--> HOME <!--[--><!--]--></a></div><div class="navbar-item"><a href="/en/doc" class="router-link-active" aria-label="DOCS"><!--[--><!--]--> DOCS <!--[--><!--]--></a></div><div class="navbar-item"><a href="/en/doc/commands.md" class="" aria-label="COMMANDS"><!--[--><!--]--> COMMANDS <!--[--><!--]--></a></div><div class="navbar-item"><a href="/en/doc/download.md" class="" aria-label="DOWNLOAD"><!--[--><!--]--> DOWNLOAD <!--[--><!--]--></a></div><div class="navbar-item"><div class="navbar-dropdown-wrapper"><button class="navbar-dropdown-title" type="button" aria-label="VERSIONS"><span class="title">VERSIONS</span><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="VERSIONS"><span class="title">VERSIONS</span><span class="right arrow"></span></button><ul style="display:none;" class="navbar-dropdown"><!--[--><li class="navbar-dropdown-item"><a class="external-link" href="https://arthas.aliyun.com/3.x/en/" rel="noopener noreferrer" target="_blank" aria-label="v3.x"><!--[--><!--]--><span>v3.x</span><span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!--[--><!--]--></a></li><!--]--></ul></div></div><div class="navbar-item"><div class="navbar-dropdown-wrapper"><button class="navbar-dropdown-title" type="button" aria-label="Select language"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1em" height="1em" style="height:1.25rem;width:1.25rem;vertical-align:bottom;" viewbox="0 0 24 24"><path fill="currentColor" d="M13.35 22q-.6 0-.862-.387q-.263-.388-.063-.963l3.65-9.675q.15-.4.563-.688Q17.05 10 17.5 10q.425 0 .85.287q.425.288.575.688l3.65 9.675q.2.575-.062.963q-.263.387-.888.387q-.275 0-.5-.175q-.225-.175-.325-.425l-.85-2.45H15.1l-.875 2.45q-.1.25-.35.425q-.25.175-.525.175Zm2.35-4.8h3.6l-1.75-4.95h-.1ZM7.15 8.55q.4.725.85 1.337q.45.613 1.05 1.263q1.1-1.2 1.825-2.462Q11.6 7.425 12.1 6H2q-.425 0-.712-.287Q1 5.425 1 5t.288-.713Q1.575 4 2 4h6V3q0-.425.288-.713Q8.575 2 9 2t.713.287Q10 2.575 10 3v1h6q.425 0 .712.287Q17 4.575 17 5t-.288.713Q16.425 6 16 6h-1.9q-.525 1.775-1.425 3.45q-.9 1.675-2.225 3.15l2.4 2.45l-.75 2.05L9 14l-4.3 4.3q-.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 href="/doc/ognl-express.html" class="" aria-label="简体中文"><!--[--><!--]--> 简体中文 <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a aria-current="page" href="/en/doc/ognl-express.html" class="router-link-active router-link-exact-active router-link-active" 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><!--[--><!--]--><!--[--><div class="sidebar-search-wrapper" data-v-ff139ca7><div class="sidebar-search" role="search" data-v-ff139ca7><span class="sidebar-search-icon" aria-hidden="true" data-v-ff139ca7></span><input value="" class="sidebar-search-input" type="search" placeholder="Search" aria-label="Search" data-v-ff139ca7><!----></div></div><ul class="sidebar-items" data-v-ff139ca7><!--[--><li data-v-ff139ca7 data-v-558ea87d><p tabindex="0" class="sidebar-item sidebar-heading active" data-v-558ea87d>DOCS <!----></p><ul style="" class="sidebar-item-children" data-v-558ea87d><!--[--><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/" class="router-link-active sidebar-item" aria-label="Introduction" data-v-558ea87d><!--[--><!--]--> Introduction <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/quick-start.html" class="sidebar-item" aria-label="Quick Start" data-v-558ea87d><!--[--><!--]--> Quick Start <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/install-detail.html" class="sidebar-item" aria-label="Install Arthas" data-v-558ea87d><!--[--><!--]--> Install Arthas <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/download.html" class="sidebar-item" aria-label="Download" data-v-558ea87d><!--[--><!--]--> Download <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/advice-class.html" class="sidebar-item" aria-label="Fundamental Fields in Expressions" data-v-558ea87d><!--[--><!--]--> Fundamental Fields in Expressions <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row active collapsible" data-v-558ea87d><button type="button" class="sidebar-tree-toggle" aria-expanded="true" aria-label="Collapse All Commands" data-v-558ea87d><span class="open sidebar-tree-chevron" aria-hidden="true" data-v-558ea87d></span></button><a href="/en/doc/commands.md" class="sidebar-item active collapsible" aria-label="All Commands" data-v-558ea87d><!--[--><!--]--> All Commands <!--[--><!--]--></a></div><ul style="" class="sidebar-item-children" data-v-558ea87d><!--[--><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/auth.html" class="sidebar-item" aria-label="auth" data-v-558ea87d><!--[--><!--]--> auth <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/base64.html" class="sidebar-item" aria-label="base64" data-v-558ea87d><!--[--><!--]--> base64 <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/cat.html" class="sidebar-item" aria-label="cat" data-v-558ea87d><!--[--><!--]--> cat <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/classloader.html" class="sidebar-item" aria-label="classloader" data-v-558ea87d><!--[--><!--]--> classloader <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/classloader-metaspace.html" class="sidebar-item" aria-label="classloader-metaspace" data-v-558ea87d><!--[--><!--]--> classloader-metaspace <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/cls.html" class="sidebar-item" aria-label="cls" data-v-558ea87d><!--[--><!--]--> cls <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/dashboard.html" class="sidebar-item" aria-label="dashboard" data-v-558ea87d><!--[--><!--]--> dashboard <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/dump.html" class="sidebar-item" aria-label="dump" data-v-558ea87d><!--[--><!--]--> dump <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/echo.html" class="sidebar-item" aria-label="echo" data-v-558ea87d><!--[--><!--]--> echo <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/getstatic.html" class="sidebar-item" aria-label="getstatic" data-v-558ea87d><!--[--><!--]--> getstatic <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/grep.html" class="sidebar-item" aria-label="grep" data-v-558ea87d><!--[--><!--]--> grep <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/heapdump.html" class="sidebar-item" aria-label="heapdump" data-v-558ea87d><!--[--><!--]--> heapdump <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/help.html" class="sidebar-item" aria-label="help" data-v-558ea87d><!--[--><!--]--> help <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/history.html" class="sidebar-item" aria-label="history" data-v-558ea87d><!--[--><!--]--> history <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/jad.html" class="sidebar-item" aria-label="jad" data-v-558ea87d><!--[--><!--]--> jad <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/jfr.html" class="sidebar-item" aria-label="jfr" data-v-558ea87d><!--[--><!--]--> jfr <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/jvm.html" class="sidebar-item" aria-label="jvm" data-v-558ea87d><!--[--><!--]--> jvm <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/keymap.html" class="sidebar-item" aria-label="keymap" data-v-558ea87d><!--[--><!--]--> keymap <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/line.html" class="sidebar-item" aria-label="line" data-v-558ea87d><!--[--><!--]--> line <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/logger.html" class="sidebar-item" aria-label="logger" data-v-558ea87d><!--[--><!--]--> logger <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/mbean.html" class="sidebar-item" aria-label="mbean" data-v-558ea87d><!--[--><!--]--> mbean <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/mc.html" class="sidebar-item" aria-label="mc" data-v-558ea87d><!--[--><!--]--> mc <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/memory.html" class="sidebar-item" aria-label="memory" data-v-558ea87d><!--[--><!--]--> memory <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/monitor.html" class="sidebar-item" aria-label="monitor" data-v-558ea87d><!--[--><!--]--> monitor <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/ognl.html" class="sidebar-item" aria-label="ognl" data-v-558ea87d><!--[--><!--]--> ognl <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row active" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a aria-current="page" href="/en/doc/ognl-express.html" class="router-link-active router-link-exact-active router-link-active sidebar-item active" aria-label="Tips for Complex OGNL Expressions" data-v-558ea87d><!--[--><!--]--> Tips for Complex OGNL Expressions <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/options.html" class="sidebar-item" aria-label="options" data-v-558ea87d><!--[--><!--]--> options <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/perfcounter.html" class="sidebar-item" aria-label="perfcounter" data-v-558ea87d><!--[--><!--]--> perfcounter <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/profiler.html" class="sidebar-item" aria-label="profiler" data-v-558ea87d><!--[--><!--]--> profiler <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/pwd.html" class="sidebar-item" aria-label="pwd" data-v-558ea87d><!--[--><!--]--> pwd <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/quit.html" class="sidebar-item" aria-label="quit" data-v-558ea87d><!--[--><!--]--> quit <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/redefine.html" class="sidebar-item" aria-label="redefine" data-v-558ea87d><!--[--><!--]--> redefine <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/reset.html" class="sidebar-item" aria-label="reset" data-v-558ea87d><!--[--><!--]--> reset <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/retransform.html" class="sidebar-item" aria-label="retransform" data-v-558ea87d><!--[--><!--]--> retransform <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/sc.html" class="sidebar-item" aria-label="sc" data-v-558ea87d><!--[--><!--]--> sc <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/session.html" class="sidebar-item" aria-label="session" data-v-558ea87d><!--[--><!--]--> session <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/sm.html" class="sidebar-item" aria-label="sm" data-v-558ea87d><!--[--><!--]--> sm <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/stack.html" class="sidebar-item" aria-label="stack" data-v-558ea87d><!--[--><!--]--> stack <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/stop.html" class="sidebar-item" aria-label="stop" data-v-558ea87d><!--[--><!--]--> stop <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/sysenv.html" class="sidebar-item" aria-label="sysenv" data-v-558ea87d><!--[--><!--]--> sysenv <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/sysprop.html" class="sidebar-item" aria-label="sysprop" data-v-558ea87d><!--[--><!--]--> sysprop <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/tee.html" class="sidebar-item" aria-label="tee" data-v-558ea87d><!--[--><!--]--> tee <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/thread.html" class="sidebar-item" aria-label="thread" data-v-558ea87d><!--[--><!--]--> thread <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/trace.html" class="sidebar-item" aria-label="trace" data-v-558ea87d><!--[--><!--]--> trace <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/tt.html" class="sidebar-item" aria-label="tt" data-v-558ea87d><!--[--><!--]--> tt <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/version.html" class="sidebar-item" aria-label="version" data-v-558ea87d><!--[--><!--]--> version <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/vmoption.html" class="sidebar-item" aria-label="vmoption" data-v-558ea87d><!--[--><!--]--> vmoption <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/vmtool.html" class="sidebar-item" aria-label="vmtool" data-v-558ea87d><!--[--><!--]--> vmtool <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/watch.html" class="sidebar-item" aria-label="watch" data-v-558ea87d><!--[--><!--]--> watch <!--[--><!--]--></a></div><!----></li><!--]--></ul></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row collapsible" data-v-558ea87d><button type="button" class="sidebar-tree-toggle" aria-expanded="false" aria-label="Expand AI Integration" data-v-558ea87d><span class="sidebar-tree-chevron" aria-hidden="true" data-v-558ea87d></span></button><a href="/en/doc/ai.md" class="sidebar-item collapsible" aria-label="AI Integration" data-v-558ea87d><!--[--><!--]--> AI Integration <!--[--><!--]--></a></div><ul style="display:none;" class="sidebar-item-children" data-v-558ea87d><!--[--><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/mcp-server.html" class="sidebar-item" aria-label="Arthas MCP Server" data-v-558ea87d><!--[--><!--]--> Arthas MCP Server <!--[--><!--]--></a></div><!----></li><!--]--></ul></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row collapsible" data-v-558ea87d><button type="button" class="sidebar-tree-toggle" aria-expanded="false" aria-label="Expand Other features" data-v-558ea87d><span class="sidebar-tree-chevron" aria-hidden="true" data-v-558ea87d></span></button><a href="/en/doc/advanced-use.md" class="sidebar-item collapsible" aria-label="Other features" data-v-558ea87d><!--[--><!--]--> Other features <!--[--><!--]--></a></div><ul style="display:none;" class="sidebar-item-children" data-v-558ea87d><!--[--><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/async.html" class="sidebar-item" aria-label="Arthas Async Jobs" data-v-558ea87d><!--[--><!--]--> Arthas Async Jobs <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/save-log.html" class="sidebar-item" aria-label="Log command outputs" data-v-558ea87d><!--[--><!--]--> Log command outputs <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/docker.html" class="sidebar-item" aria-label="Docker" data-v-558ea87d><!--[--><!--]--> Docker <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/web-console.html" class="sidebar-item" aria-label="Web Console" data-v-558ea87d><!--[--><!--]--> Web Console <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/tunnel.html" class="sidebar-item" aria-label="Arthas Tunnel" data-v-558ea87d><!--[--><!--]--> Arthas Tunnel <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/idea-plugin.html" class="sidebar-item" aria-label="IDEA Plugin" data-v-558ea87d><!--[--><!--]--> IDEA Plugin <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/arthas-properties.html" class="sidebar-item" aria-label="Arthas Properties" data-v-558ea87d><!--[--><!--]--> Arthas Properties <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/agent.html" class="sidebar-item" aria-label="Start as a Java Agent" data-v-558ea87d><!--[--><!--]--> Start as a Java Agent <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/spring-boot-starter.html" class="sidebar-item" aria-label="Arthas Spring Boot Starter" data-v-558ea87d><!--[--><!--]--> Arthas Spring Boot Starter <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/external-command.html" class="sidebar-item" aria-label="Load External Commands" data-v-558ea87d><!--[--><!--]--> Load External Commands <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/http-api.html" class="sidebar-item" aria-label="Http API" data-v-558ea87d><!--[--><!--]--> Http API <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/batch-support.html" class="sidebar-item" aria-label="Batch Processing" data-v-558ea87d><!--[--><!--]--> Batch Processing <!--[--><!--]--></a></div><!----></li><!--]--></ul></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/faq.html" class="sidebar-item" aria-label="FAQ" data-v-558ea87d><!--[--><!--]--> FAQ <!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a class="external-link sidebar-item" href="https://github.com/alibaba/arthas/issues?q=label%3Auser-case" rel="noopener noreferrer" target="_blank" aria-label="User cases" data-v-558ea87d><!--[--><!--]--><span>User cases</span><span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a class="external-link sidebar-item" href="https://github.com/alibaba/arthas" rel="noopener noreferrer" target="_blank" aria-label="Star me at github" data-v-558ea87d><!--[--><!--]--><span>Star me at github</span><span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a class="external-link sidebar-item" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md" rel="noopener noreferrer" target="_blank" aria-label="Compile and debug/CONTRIBUTING" data-v-558ea87d><!--[--><!--]--><span>Compile and debug/CONTRIBUTING</span><span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a class="external-link sidebar-item" href="https://github.com/alibaba/arthas/releases" rel="noopener noreferrer" target="_blank" aria-label="Release Notes" data-v-558ea87d><!--[--><!--]--><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">open in new window</span></span><!--[--><!--]--></a></div><!----></li><li data-v-558ea87d data-v-558ea87d><div class="sidebar-tree-row" data-v-558ea87d><span class="sidebar-tree-toggle-placeholder" data-v-558ea87d></span><a href="/en/doc/contact-us.md" class="sidebar-item" aria-label="Contact us" data-v-558ea87d><!--[--><!--]--> Contact us <!--[--><!--]--></a></div><!----></li><!--]--></ul></li><!--]--></ul><!--]--><!--[--><!--]--></aside><!--]--><!--[--><main class="page" data-v-fdd717e0><!--[--><!--]--><div class="right-menu-padding theme-default-content" data-v-fdd717e0><!--[--><!--]--><div class="right-menu-wrapper" data-v-fdd717e0 data-v-64666cd5><div class="right-menu-margin" data-v-64666cd5><div class="right-menu-title" data-v-64666cd5>Table of Contents</div><div class="right-menu-content" data-v-64666cd5><!--[--><!--]--></div></div></div><div data-v-fdd717e0><h1 id="tips-for-complex-ognl-expressions" tabindex="-1"><a class="header-anchor" href="#tips-for-complex-ognl-expressions" aria-hidden="true">#</a> Tips for Complex OGNL Expressions</h1><p>This page covers complex but production-friendly OGNL patterns in Arthas, including variables, collection selection and projection, temporary result construction, null handling, and ClassLoaders. Every complete command in the “Verified complex expressions” section was run in a real Arthas attach session against the repository's <code>math-game</code> JVM. Dynamic values such as thread names, counts, and object addresses will vary by environment.</p><p>Read the <a href="/en/doc/ognl.html" class=""><code>ognl</code> command documentation</a> for basic options and <a href="/en/doc/advice-class.html" class="">Core variables in expressions</a> for variables exposed by commands such as <code>watch</code>.</p><div class="custom-container warning"><p class="custom-container-title">WARNING</p><p>OGNL runs inside the target JVM. A method call can read or modify application state. In production, generate and execute read-only expressions by default, and limit both the number of objects and the expansion depth. Do not invoke application methods such as <code>set*</code>, <code>add</code>, <code>remove</code>, or <code>clear</code>, and do not perform file, network, process, ClassLoader, privilege-escalating reflection, or thread-control operations. Calls to <code>put</code> in this page only modify a temporary <code>Map</code> created by the same expression.</p></div><h2 id="identify-the-expression-context-first" tabindex="-1"><a class="header-anchor" href="#identify-the-expression-context-first" aria-hidden="true">#</a> Identify the expression context first</h2><p>The grammar may be the same while the available variables are different. A common AI agent mistake is to copy context variables from another command into the standalone <code>ognl</code> command.</p><table><thead><tr><th>Location</th><th>Available root objects or variables</th><th>Common mistake</th></tr></thead><tbody><tr><td><code>ognl</code> command</td><td>Static members, constructors, literals, and self-defined <code>#variables</code></td><td>Using <code>params</code>, <code>target</code>, <code>returnObj</code>, or <code>instances</code></td></tr><tr><td><code>getstatic</code> expression</td><td>The static field value being read is the root object</td><td>Treating it as a standalone <code>ognl</code> expression with no root object</td></tr><tr><td>Observation or condition expressions in <code>watch</code>, <code>stack</code>, <code>monitor</code>, <code>tt</code>, and related commands</td><td><a href="/en/doc/advice-class.html" class=""><code>Advice</code></a> variables such as <code>params</code>, <code>target</code>, <code>returnObj</code>, <code>throwExp</code>, and <code>isReturn</code></td><td>Reading a return value at method entry, or invoking <code>returnObj</code> on the exception path</td></tr><tr><td>Conditions in <code>trace</code> and related commands</td><td>Advice variables exposed by that command; some commands also provide <code>#cost</code></td><td>Assuming that every command provides <code>#cost</code></td></tr><tr><td><code>line --express</code> / <code>--condition</code></td><td>Advice variables plus line-level variables such as <code>lineNumber</code>, <code>localVarMap</code>, and <code>#cost</code></td><td>Using <code>localVarMap</code> or <code>lineNumber</code> in another command</td></tr><tr><td><code>vmtool --express</code></td><td><code>instances</code>, the array returned by <code>getInstances</code></td><td>Using <code>instances</code> in the standalone <code>ognl</code> command</td></tr></tbody></table><p>Also distinguish a complete Arthas command from a raw expression parameter:</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token comment"># The Arthas console needs the full command and outer single quotes</span>
|
|
ognl <span class="token string">'#value=@java.lang.System@getProperty("java.version"), #value'</span>
|
|
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div></div></div><p>When an MCP tool, HTTP API, or another client already provides a dedicated parameter named <code>expression</code>, <code>express</code>, or <code>conditionExpress</code>, pass only the raw expression. Do not add <code>ognl</code>, command options, outer single quotes, or a Markdown code fence:</p><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>#value=@java.lang.System@getProperty("java.version"), #value
|
|
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><h2 id="reliable-syntax-building-blocks" tabindex="-1"><a class="header-anchor" href="#reliable-syntax-building-blocks" aria-hidden="true">#</a> Reliable syntax building blocks</h2><table><thead><tr><th>Purpose</th><th>Syntax</th><th>Notes</th></tr></thead><tbody><tr><td>Define a temporary variable</td><td><code>#name=value</code></td><td>A custom variable must start with <code>#</code></td></tr><tr><td>Evaluate in sequence and return the last item</td><td><code>#a=1, #b=2, #a+#b</code></td><td>Use commas, not semicolons; Arthas may treat a semicolon as a command separator</td></tr><tr><td>Access a static method or field</td><td><code>@fully.qualified.Class@method()</code>, <code>@fully.qualified.Class@FIELD</code></td><td>Both <code>@</code> characters are required; prefer the fully qualified class name</td></tr><tr><td>Create a temporary object</td><td><code>new java.util.LinkedHashMap()</code></td><td>Do not include Java generics such as <code>new HashMap<String,Object>()</code></td></tr><tr><td>Create a List</td><td><code>{1, 2, 3}</code></td><td>The result is a List, not a Java array</td></tr><tr><td>Create a Map</td><td><code>#{"name":"arthas", "count":1}</code></td><td>Do not insert anything between <code>#</code> and <code>{</code></td></tr><tr><td>Create an array</td><td><code>new java.lang.String[]{"a", "b"}</code></td><td>The array type must be explicit</td></tr><tr><td>Project a collection</td><td><code>items.{#this.getName()}</code></td><td>Evaluates each item and returns a new List</td></tr><tr><td>Select from a collection</td><td><code>items.{? #this != null}</code></td><td>Returns every matching item</td></tr><tr><td>Select the first or last match</td><td><code>items.{^ condition}</code>, <code>items.{$ condition}</code></td><td>The result is still a List; account for an empty result before reading <code>[0]</code></td></tr><tr><td>Refer to the current item</td><td><code>#this</code></td><td>Its meaning changes with the current level in nested selections and projections</td></tr></tbody></table><p>For complex expressions, explicitly invoke public getters to reduce property-resolution and overload ambiguity. Prefer <code>#this.getName()</code> to <code>#this.name</code>. For maps, prefer <code>get("key")</code> and <code>containsKey("key")</code> to dotted property shorthand.</p><h2 id="verified-complex-expressions" tabindex="-1"><a class="header-anchor" href="#verified-complex-expressions" aria-hidden="true">#</a> Verified complex expressions</h2><div class="custom-container tip"><p class="custom-container-title">TIP</p><p>Some examples in this section use <code>Thread.getAllStackTraces()</code> to obtain a collection in any demo JVM. This operation captures every thread stack. On a production JVM with many threads, prefer a dedicated command such as <code>thread</code>, or assess the cost first, and do not run these examples frequently.</p></div><h3 id="selection-projection-first-match-and-last-match" tabindex="-1"><a class="header-anchor" href="#selection-projection-first-match-and-last-match" aria-hidden="true">#</a> Selection, projection, first match, and last match</h3><p>The following expression defines a list and returns projection, selection, first-match, and last-match results together:</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>ognl <span class="token parameter variable">-x</span> <span class="token number">3</span> <span class="token string">'#numbers={1,2,3,4,5,6}, #{"projection":#numbers.{#this * 10},"selection":#numbers.{? #this % 2 == 0},"first":#numbers.{^ #this % 2 == 0}[0],"last":#numbers.{$ #this % 2 == 0}[0]}'</span>
|
|
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>Even numbers are known to exist in this literal, so <code>[0]</code> is safe here. For runtime collections, save the selected list and check whether it is empty:</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>ognl <span class="token string">'#matched={1,3,5}.{^ #this % 2 == 0}, #matched.isEmpty() ? null : #matched[0]'</span>
|
|
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><h3 id="construct-a-structured-result-with-temporary-variables" tabindex="-1"><a class="header-anchor" href="#construct-a-structured-result-with-temporary-variables" aria-hidden="true">#</a> Construct a structured result with temporary variables</h3><p>Do not repeat expensive calls in a long expression. Save intermediate values, then return a newly created <code>LinkedHashMap</code>:</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>ognl <span class="token parameter variable">-x</span> <span class="token number">2</span> <span class="token string">'#result=new java.util.LinkedHashMap(), #props=@java.lang.System@getProperties(), #threads=@java.lang.Thread@getAllStackTraces(), #result.put("javaVersion", #props.get("java.version")), #result.put("javaHome", #props.get("java.home")), #result.put("threadCount", #threads.size()), #result'</span>
|
|
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>The returned keys are <code>javaVersion</code>, <code>javaHome</code>, and <code>threadCount</code>. Comma-separated subexpressions are evaluated in order, and the value of the whole expression is the final <code>#result</code>.</p><h3 id="select-first-then-return-only-the-required-fields" tabindex="-1"><a class="header-anchor" href="#select-first-then-return-only-the-required-fields" aria-hidden="true">#</a> Select first, then return only the required fields</h3><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>ognl <span class="token string">'@java.lang.Thread@getAllStackTraces().keySet().{? #this.isAlive() && !#this.isDaemon()}.{#this.getName()}'</span>
|
|
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p><code>.{? ...}</code> returns the selected threads. The following <code>.{...}</code> projects only thread names, avoiding expansion of complete <code>Thread</code> objects.</p><h3 id="count-by-group" tabindex="-1"><a class="header-anchor" href="#count-by-group" aria-hidden="true">#</a> Count by group</h3><p>The following expression counts threads by state. <code>#counts</code> is a temporary map created by this expression and does not modify an existing application object:</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>ognl <span class="token parameter variable">-x</span> <span class="token number">2</span> <span class="token string">'#counts=new java.util.LinkedHashMap(), @java.lang.Thread@getAllStackTraces().keySet().{#state=#this.getState().toString(), #counts.put(#state, #counts.containsKey(#state) ? #counts.get(#state) + 1 : 1)}, #counts'</span>
|
|
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>Example output:</p><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>@LinkedHashMap[
|
|
@String[RUNNABLE]:@Integer[10],
|
|
@String[TIMED_WAITING]:@Integer[6],
|
|
@String[WAITING]:@Integer[2],
|
|
]
|
|
</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><p>Do not put Java Stream syntax such as <code>stream().filter(x -> ...)</code>, method references such as <code>Type::method</code>, or <code>computeIfAbsent(..., x -> ...)</code> into OGNL. OGNL does not parse Java lambdas. Use OGNL selection <code>.{? ...}</code> and projection <code>.{...}</code> instead.</p><h3 id="bind-this-early-in-nested-objects" tabindex="-1"><a class="header-anchor" href="#bind-this-early-in-nested-objects" aria-hidden="true">#</a> Bind <code>#this</code> early in nested objects</h3><p>Inside the projection over <code>entrySet()</code>, <code>#this</code> is the current <code>Map.Entry</code>. Bind its key and value to meaningful variables before using them in a longer expression:</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>ognl <span class="token string">'#all=@java.lang.Thread@getAllStackTraces(), #all.entrySet().{? #this.getKey().getName().startsWith("arthas")}.{#thread=#this.getKey(), #stack=#this.getValue(), #thread.getName() + " | " + #thread.getState() + " | depth=" + #stack.length}'</span>
|
|
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><h3 id="handle-null-explicitly" tabindex="-1"><a class="header-anchor" href="#handle-null-explicitly" aria-hidden="true">#</a> Handle null explicitly</h3><p>OGNL does not support JavaScript-style <code>?.</code>. Do not mix in SpEL <code>T(...)</code> or template syntax <code>${...}</code> either. Save a possibly null value and protect the method call with a conditional expression:</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>ognl <span class="token string">'#value=@java.lang.System@getProperty("arthas.not.exists"), #value == null ? "<missing>" : #value.trim()'</span>
|
|
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>Result:</p><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>@String[<missing>]
|
|
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><h3 id="handle-both-return-and-exception-paths-in-watch" tabindex="-1"><a class="header-anchor" href="#handle-both-return-and-exception-paths-in-watch" aria-hidden="true">#</a> Handle both return and exception paths in <code>watch</code></h3><p><code>-f</code> evaluates the expression after both a normal return and an exception. Branch on <code>isReturn</code> before accessing <code>returnObj</code> or <code>throwExp</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">'#result=new java.util.LinkedHashMap(), #result.put("number", params[0]), #result.put("outcome", isReturn ? "return" : "throw"), #result.put("detail", isReturn ? returnObj.size() : throwExp.getMessage()), #result'</span> <span class="token parameter variable">-f</span> <span class="token parameter variable">-n</span> <span class="token number">2</span> <span class="token parameter variable">-x</span> <span class="token number">2</span>
|
|
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>This expression evaluates on both paths in the real <code>math-game</code> JVM. <code>-n 2</code> limits the number of observations so the command terminates.</p><h3 id="use-instances-in-vmtool" tabindex="-1"><a class="header-anchor" href="#use-instances-in-vmtool" aria-hidden="true">#</a> Use <code>instances</code> in <code>vmtool</code></h3><p><code>instances</code> exists only in the expression context of <code>vmtool --action getInstances --express</code>:</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>vmtool <span class="token parameter variable">--action</span> getInstances <span class="token parameter variable">--className</span> java.lang.Thread <span class="token parameter variable">--limit</span> <span class="token number">100</span> <span class="token parameter variable">--express</span> <span class="token string">'instances.{? #this.isAlive() && #this.getName().startsWith("arthas")}.{#this.getName()}'</span>
|
|
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>Use <code>--limit</code> before selection and projection. Do not use <code>--limit -1</code> unconditionally for an application class that may have many instances.</p><h2 id="classloader-selection-is-not-ognl-syntax" tabindex="-1"><a class="header-anchor" href="#classloader-selection-is-not-ognl-syntax" aria-hidden="true">#</a> ClassLoader selection is not OGNL syntax</h2><p>Before accessing an application class, identify its ClassLoader:</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>sc <span class="token parameter variable">-d</span> com.example.OrderService
|
|
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>Read <code>classLoaderHash</code> from the output and pass it as an <code>ognl</code> command option:</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>ognl <span class="token parameter variable">-c</span> <span class="token operator"><</span>classLoaderHash<span class="token operator">></span> <span class="token string">'@com.example.OrderService@STATIC_FIELD'</span>
|
|
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>Keep these points in mind:</p><ul><li><code>-c</code> and <code>--classLoaderClass</code> are Arthas command options, not parts of the OGNL expression.</li><li>A class name may be loaded by multiple ClassLoaders. Do not guess the hash, and remember that it may change after a JVM restart.</li><li>For <code>ClassNotFoundException</code>, inspect the ClassLoader before randomly rewriting OGNL syntax.</li><li><code>--classLoaderClass</code> is appropriate only when exactly one ClassLoader instance has that type. Use the hash when multiple instances match.</li></ul><h2 id="quoting-and-formatting-there-are-two-parsers" tabindex="-1"><a class="header-anchor" href="#quoting-and-formatting-there-are-two-parsers" aria-hidden="true">#</a> Quoting and formatting: there are two parsers</h2><p>Arthas parses the command line first, then OGNL parses the expression. A shell, JSON, or MCP transport adds another formatting layer.</p><ul><li>In the Arthas console, wrap a complete expression in single quotes and use double quotes for OGNL string literals.</li><li>Keep the final command on one physical line. Visual terminal wrapping is harmless, but do not insert a real line break inside a class name, <code>.</code>, <code>@</code>, <code>#variable</code>, or an operator.</li><li>Do not insert whitespace after <code>.</code>, as in the invalid form <code>#map. get("key")</code>.</li><li>Join expression steps with commas, not semicolons.</li><li>Keep outer single quotes around expressions containing <code>{$ ...}</code>, otherwise some shells will interpret <code>$</code>.</li><li>For an MCP expression parameter, do not include Markdown backticks, outer single quotes, or the complete command.</li><li>For JSON transport, escape double quotes according to JSON rules only. Do not copy shell backslash escaping verbatim into a raw expression parameter.</li></ul><p>When quoting becomes deeply nested, prefer an Arthas <a href="/en/doc/batch-support.html" class="">batch file</a> or a dedicated expression field in the API to reduce shell-escaping layers.</p><h2 id="do-not-classify-every-failure-as-a-syntax-error" tabindex="-1"><a class="header-anchor" href="#do-not-classify-every-failure-as-a-syntax-error" aria-hidden="true">#</a> Do not classify every failure as a syntax error</h2><table><thead><tr><th>Symptom or exception keyword</th><th>Check first</th><th>Recommended action</th></tr></thead><tbody><tr><td><code>Malformed OGNL expression</code>, <code>ExpressionSyntaxException</code></td><td>Quotes, brackets, <code>@class@member</code>, commas, and projection/selection braces</td><td>Reduce to a minimal expression, then add one fragment at a time</td></tr><tr><td><code>NoSuchPropertyException</code></td><td>Whether the command exposes that variable; whether the property name is correct</td><td>Check the context-variable table and use an explicit public getter</td></tr><tr><td><code>MethodFailedException</code>, <code>NoSuchMethodException</code></td><td>Method name, argument types, and static versus instance invocation</td><td>Use <code>sm</code>/<code>jad</code> to inspect the real signature instead of guessing an overload</td></tr><tr><td><code>ClassNotFoundException</code></td><td>ClassLoader</td><td>Run <code>sc -d</code>, then specify <code>-c</code></td></tr><tr><td>A null intermediate object</td><td>Missing null branch in a call chain</td><td>Assign it to a <code>#variable</code> and guard the next call with a conditional expression</td></tr><tr><td><code>stricter invocation mode</code></td><td>The method or declaring class is blocked by OGNL strict mode</td><td>Do not disable the protection or bypass it with reflection; use <code>jvm</code>, <code>thread</code>, <code>sysprop</code>, or another dedicated command, or a safe public API</td></tr><tr><td><code>module ... does not export</code></td><td>JDK module boundaries, not necessarily OGNL grammar</td><td>Use a dedicated Arthas command or an accessible public application API</td></tr><tr><td>Timeout, huge output, or target-JVM disturbance</td><td>Expression work and expansion scope</td><td>Select before projecting, avoid repeated calls, and set <code>--limit</code>, <code>-n</code>, and a reasonable <code>-x</code></td></tr></tbody></table><p>For example, <code>@java.lang.Runtime@getRuntime()</code> can be rejected by the default OGNL strict invocation mode even though its syntax is valid. Repeatedly changing <code>@</code>, brackets, or quotes cannot fix this category of failure.</p><h2 id="generation-and-validation-protocol-for-ai-agents" tabindex="-1"><a class="header-anchor" href="#generation-and-validation-protocol-for-ai-agents" aria-hidden="true">#</a> Generation and validation protocol for AI agents</h2><p>Consider adding the following constraints to prompts for agents that generate Arthas commands:</p><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>You are generating OGNL for Arthas. Before generating it, you must confirm:
|
|
1. Whether the caller needs a complete Arthas command or a raw expression parameter. Output only the requested form.
|
|
2. Whether the expression runs in the ognl, getstatic, watch/stack/monitor/tt/trace, line, or vmtool context. Use only variables that actually exist in that context.
|
|
3. For application classes, run sc -d to identify the ClassLoader. If a method or field is uncertain, inspect it with sm/jad instead of guessing its name or overload.
|
|
4. Use @fully.qualified.Class@member for static access, #name for temporary variables, and commas for sequential steps.
|
|
5. Do not generate Java lambdas/Streams, method references, ?., SpEL T(...), ${...}, generic constructors, or semicolon statements.
|
|
6. Default to read-only behavior. Forbid process, file, network, ClassLoader, privilege-escalating reflection, thread-control, and application-state mutations. Mutation is allowed only on temporary collections created with new inside the expression.
|
|
7. Select before projecting, return only required fields, and set reasonable limit, -n, and -x values.
|
|
8. Keep the final expression on one physical line. Never break or insert whitespace inside a class name, dot access, @...@, #variable, or operator.
|
|
|
|
Validate incrementally instead of submitting one untested long expression:
|
|
A. Verify that the minimal root object, static field, or context variable is accessible.
|
|
B. Add only one #variable assignment, method call, selection, or projection per attempt, and execute it.
|
|
C. Add Map/List output construction and limiting options last.
|
|
D. On failure, classify it as command/escaping, grammar, context variable, ClassLoader, null, method signature, access restriction, or resource cost. Preserve the validated prefix and change only the failing fragment.
|
|
E. Claim that an expression is verified only after receiving a real Arthas result without a syntax exception.
|
|
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>Before returning output, the agent should also perform a mechanical check:</p><ul><li>Does every <code>@class@member</code> contain a matching pair of <code>@</code> characters?</li><li>Are <code>()</code>, <code>[]</code>, <code>{}</code>, and quotes balanced?</li><li>Does every custom variable start with <code>#</code>?</li><li>Does <code>#this</code> refer to the intended nesting level in each selection or projection?</li><li>Are possibly empty selections, map values, <code>returnObj</code>, and <code>throwExp</code> protected by a branch?</li><li>Was a command option incorrectly placed inside the expression, or a complete command placed in a tool's expression field?</li><li>Did automatic formatting split a class name, method name, or operator?</li></ul><p>This process—confirm context, execute incrementally, then construct the final output—is more reliable than rewriting an entire complex expression after every failure, and it preserves evidence about the actual cause.</p><h2 id="further-reading" tabindex="-1"><a class="header-anchor" href="#further-reading" aria-hidden="true">#</a> Further reading</h2><ul><li><a href="https://github.com/alibaba/arthas/issues/71" target="_blank" rel="noopener noreferrer">Arthas issue #71: special OGNL usages<span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span></a></li><li><a href="https://commons.apache.org/dormant/commons-ognl/language-guide.html" target="_blank" rel="noopener noreferrer">Apache Commons OGNL Language Guide<span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span></a></li></ul></div><!--[--><!--]--></div><footer class="page-meta right-menu-padding" data-v-fdd717e0><div class="meta-item edit-link"><a class="external-link meta-item-label" href="https://github.com/alibaba/arthas/edit/master/site/docs/en/doc/ognl-express.md" rel="noopener noreferrer" target="_blank" aria-label="Edit this page on GitHub"><!--[--><!--]--><span>Edit this page on GitHub</span><span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!--[--><!--]--></a></div><div class="meta-item last-updated"><span class="meta-item-label">Last Updated: </span><!----></div><div class="meta-item contributors"><span class="meta-item-label">Contributors: </span><span class="meta-item-info"><!--[--><!--[--><span class="contributor" title="email: hengyunabc@gmail.com">hengyunabc</span><!----><!--]--><!--]--></span></div></footer><nav class="page-nav right-menu-padding" data-v-fdd717e0><p class="inner"><span class="prev"><a href="/en/doc/ognl.html" class="" aria-label="ognl"><!--[--><!--]--> ognl <!--[--><!--]--></a></span><span class="next"><a href="/en/doc/options.html" class="" aria-label="options"><!--[--><!--]--> options <!--[--><!--]--></a></span></p></nav><!--[--><!--]--></main><!--]--></div><!----><!--]--></div>
|
|
<script type="module" src="/assets/app.e2427bec.js" defer></script>
|
|
</body>
|
|
</html>
|