美文网首页
【JAVA】用arthas根据工程报错日志调试

【JAVA】用arthas根据工程报错日志调试

作者: Bogon | 来源:发表于2024-05-01 09:42 被阅读0次

    阿里 arthas离线安装包
    https://github.com/alibaba/arthas/tags

    $  jar -jar  arthas-boot.jar  ${pid}
    

    JAVA工程运行日志servr.log报错:
    at com.test.private.console.controller.VersionController.installViaFileMerge(VersionController.java:2123)

    这个错误信息看起来是来自Java工程的栈跟踪(stack trace)。它告诉你在哪个类的哪一行代码出现了问题。在你的VersionController类的第2123行出现了某种错误。

    要解决这个问题,你需要打开VersionController.java文件,然后找到第2123行的代码,并检查那里可能导致错误的部分。可能的问题包括空指针异常、数组越界、类型转换错误等等。检查这一行代码附近的逻辑,并确保所有的变量和方法调用都是正确的,没有导致异常的地方。

    如果有更多的错误信息或者上下文提供,我可以帮你更具体地分析和解决这个问题。

    用arthas 调试工具:
    jad --source-only com.test.private.console.controller.VersionController.installViaFileMerge

    jad --source-only com.test.private.console.controller.VersionController.installViaFileMerge是Arthas调试工具的命令之一,它用于查看指定类或方法的源代码。

    具体来说,这条命令会反编译com.test.private.console.controller.VersionController类中的installViaFileMerge方法,并将其源代码显示在终端中,以供你查看。

    通过查看源代码,你可以更好地理解方法的实现细节,并在调试代码时提供更多信息。这对于理解问题、调试和修复代码中的错误非常有用。

    用arthas 调试工具:
    trace com.test.private.console.controller.VersionController installViaFileMerge -n 5 --skipJDKMethod false '1==1'

    这条Arthas命令可以在调用com.test.private.console.controller.VersionController类中的installViaFileMerge方法时,追踪方法的执行情况。

    具体来说,这条命令做了以下几件事情:

    1. trace命令用于追踪方法的执行情况。
    2. com.test.private.console.controller.VersionController是指定的类名,表示要追踪的方法所在的类。
    3. installViaFileMerge是指定的方法名,表示要追踪的方法。
    4. -n 5表示追踪方法的执行过程中,只显示最新的5个方法调用。
    5. --skipJDKMethod false表示不跳过JDK自带的方法,也就是包括JDK自带的方法在内的所有方法都会被追踪。
    6. '1==1'是一个可选的过滤条件,用于指定什么情况下进行方法追踪。在这个例子中,过滤条件为1==1,表示追踪所有情况。

    总之,这条命令的作用是在调试时追踪com.test.private.console.controller.VersionController类中的installViaFileMerge方法的执行情况,并输出相关的方法调用信息。

    用arthas 调试工具:
    watch com.test.private.console.controller.VersionController installViaFileMerge '{params,returnObj,throwExp}' -n 5 -x 3 '1==1'

    这条Arthas命令使用了watch命令,它用于监视指定方法的参数、返回值和抛出的异常。

    具体来说,这条命令做了以下几件事情:

    1. watch命令用于监视方法的执行情况。
    2. com.test.private.console.controller.VersionController是指定的类名,表示要监视的方法所在的类。
    3. installViaFileMerge是指定的方法名,表示要监视的方法。
    4. {params,returnObj,throwExp}是监视的内容,表示要监视方法的参数、返回值和抛出的异常。
    5. -n 5表示只显示最新的5次方法调用的监视结果。
    6. -x 3表示当发生异常时,也要显示异常信息,但最多显示3个异常信息。
    7. '1==1'是一个可选的过滤条件,用于指定什么情况下进行方法监视。在这个例子中,过滤条件为1==1,表示监视所有情况。

    综上所述,这条命令的作用是在调试时监视com.test.private.console.controller.VersionController类中的installViaFileMerge方法的参数、返回值和抛出的异常情况,并输出相关的监视信息。

    image.png

    参考

    Java反编译工具 JD-GUI安装使用
    https://www.jianshu.com/p/2abc55f0d7d2

    alibaba/arthas
    https://github.com/alibaba/arthas/tags

    相关文章

      网友评论

          本文标题:【JAVA】用arthas根据工程报错日志调试

          本文链接:https://www.haomeiwen.com/subject/dfvxfjtx.html