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

2024-05-01  本文已影响0人  Bogon

阿里 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

上一篇下一篇

猜你喜欢

热点阅读