zoukankan      html  css  js  c++  java
  • arthas Can not find tools.jar 使用报错

    原因是没有安装完整的jdk,当然重新安装jdk应该也是可以的,

    另一种方案是,下载一个完整的jdk8,解压到当前目录的 jdk8,使用命令   ./jdk8/bin/java -jar arthas-boot.jar 2404

    就可以了 

    启动:

    java -jar arthas-boot.jar [PID]

    sc 和 sm

    • 通过sc可以查看已加载类的相关信息,比如该类是从哪个jar包加载的,被哪个类加载器加载的,以及是否是接口等等。
    • sm查看已加载类的方法详情。

    监控方法:

    watch

    • 让你能方便的观察到指定方法的调用情况。能观察到的范围为:返回值、抛出异常、入参,通过编写 OGNL 表达式进行对应变量的查看。
    • watch的使用姿势比较丰富,可以在四个不同的场景观察方法的执行。比如方法调用之前、方法调用之后、方法异常之后、方法结束之后。默认观察的是方法结束之后。
    • 如果观察的是方法结束之后的场景,由于入参可能在执行方法时被改变,所以此时输出的可能不是真正的入参。因此,要看真正的入参,要看方法调用之前的,也就是加上-b的参数。
    • 另外,使用-b参数观察的话,则观察不到方法返回的结果以及抛出的异常了。

     

    参数名称	参数说明
    class-pattern	类名表达式匹配
    method-pattern	方法名表达式匹配
    express	观察表达式
    condition-express	条件表达式
    [b]	在方法调用之前观察
    [e]	在方法异常之后观察
    [s]	在方法返回之后观察
    [f]	在方法结束之后(正常返回和异常返回)观察
    [E]	开启正则表达式匹配,默认为通配符匹配
    [x:]	指定输出结果的属性遍历深度,默认为 1
    [n:]	只执行n次,默认会不断输出,除非用户按下cltr+c
    

      

    # 观察CommonTest的test方法
    # 输出 入参、返回结果、抛出的异常 —— 输出的内容可以动态调整
    # 后面跟着的是 条件表达式,表示耗时超过10ms才输出
    # -n 表示只执行一次,-x表示 入参和返回结果的展开层次为5层
    watch *.CommonTest test "{params,returnObj,throwExp}" '#cost>10' -x 5 -n 1
    
    # 耗时大于10ms并且第一个参数等于1才输出
    watch *.CommonTest test "{params,returnObj,throwExp}" '#cost>10 && params[0]==1' -x 5 -n 1
    # 第一个参数大于1 并且第二个参数等于hello才输出
    watch *.CommonTest test "{params,returnObj,throwExp}" 'params[0]>1 && params[1]=="hello"' -x 5 -n 1
    # 第一个参数小于5或者第二个参数等于"world"就输出
    watch *.CommonTest test "{params,returnObj,throwExp}" 'params[0]<5 || params[1]=="wolrd"' -x 5 -n 1
    # 第一个参数的name字段等于world时才输出。
    # 由于在方法执行过程中参数的name属性可能发生改变,因此加上-b才能观察到真正的入参
    watch -b *.CommonTest test "{params,returnObj,throwExp}" 'params[0].name=="wolrd"' -x 5 -n 1
    
    # 由于同时指定了-s和-b,所以方法被调用一次,就会输出2次结果(两个场景分开输出),分别是方法被调用前,和返回之后
    # 注意,这里如果-n只设置成1,那么只会输出-b对应的输出,-s对应的输出由于没有次数了就无法输出了
    watch *.CommonTest test '{params,returnObj,throwExp}' -x 5 -n 2 -s -b
    

      

  • 相关阅读:
    如何在Ubuntu Server 18.04上安装Microsoft的Procmon
    如何在Ubuntu 20.04上安装Wine 5.0
    如何在Kali Linux 2020中启用SSH服务
    如何在Ubuntu 20.04 LTS Focal Fossa上安装Apache Groovy
    如何使用命令在Ubuntu 20.04 Linux上安装Vmware Tools
    在Ubuntu 20.04 LTS Focal Fossa上安装Zabbix Agent
    hdu 2089 不要62
    hdu 2093 成绩排名
    hdu 2104 hide handkerchief
    leetcode147对链表进行插入排序
  • 原文地址:https://www.cnblogs.com/feiye512/p/12579715.html
Copyright © 2011-2022 走看看