options
作用:全局开关
名称 | 默认值 | 描述 |
---|---|---|
unsafe | false | 是否支持对系统级别的类进行增强,打开该开关可能导致把 JVM 搞挂,请慎重选择! |
dump | false | 是否支持被增强了的类 dump 到外部文件中,如果打开开关,class 文件会被 dump 到/${application working dir}/arthas-class-dump/ 目录下,具体位置详见控制台输出 |
batch-re-transform | true | 是否支持批量对匹配到的类执行 retransform 操作 |
json-format | false | 是否支持 json 化的输出 |
disable-sub-class | false | 是否禁用子类匹配,默认在匹配目标类的时候会默认匹配到其子类,如果想精确匹配,可以关闭此开关 |
support-default-method | true | 是否支持匹配到 default method, 默认会查找 interface,匹配里面的 default method。 |
save-result | false | 是否打开执行结果存日志功能,打开之后所有命令的运行结果都将保存到~/logs/arthas-cache/result.log 中 |
job-timeout | 1d | 异步后台任务的默认超时时间,超过这个时间,任务自动停止;比如设置 1d, 2h, 3m, 25s,分别代表天、小时、分、秒 |
print-parent-fields | true | 是否打印在 parent class 里的 filed |
verbose | false | 是否打印更多详细信息 |
strict | true | 是否启用 strict 模式 |
查看所有的 options
获取 option 的值
设置指定的 option
例如,想打开执行结果存日志功能,输入如下命令即可:
打开 unsafe 开关,支持 jdk package 下的类
默认情况下,watch
/trace
/tt
/trace
/monitor
等命令不支持java.*
package 下的类。可以设置unsafe
为 true,则可以增强。
关闭 strict 模式,允许在 ognl 表达式里设置对象属性
since 3.6.0
对于新用户,在编写 ognl 表达式时,可能会出现误用。
比如对于Student
,判断年龄等于 18 时,可能条件表达式会误写为target.age=18
,这个表达式实际上是把当前对象的age
设置为 18 了。正确的写法是target.age==18
。
为了防止出现类似上面的误用,Arthas 默认启用strict
模式,在ognl
表达式里,禁止更新对象的 Property 或者调用setter
函数。
以MathGame
为例,会出现以下的错误提示。
用户如果确定要在ognl
表达式里更新对象,可以执行options strict false
,关闭strict
模式。