五分钟带你玩转Arthas(八)常见问题

简介: 五分钟带你玩转Arthas(八)常见问题


FAQ

不在本列表里的问题,请到issue里搜索。 https://github.com/alibaba/arthas/issues

Arthas attach之后对原进程性能有多大的影响

https://github.com/alibaba/arthas/issues/44

target process not responding or HotSpot VM not loaded

com.sun.tools.attach.AttachNotSupportedException: Unable to open  socket file: target process not responding or HotSpot VM not loaded

  1. 检查当前用户和目标java进程是否一致。如果不一致,则切换到同一用户。JVM只能attach同样用户下的java 进程。
  2. 尝试使用 jstack -l $pid,如果进程没有反应,则说明进程可能假死,无法响应JVM attach信号。所以同样基于attach机制的Arthas无法工作。尝试使用jmap heapdump后分析。
  3. 尝试按quick-start里的方式attach arthas-demo。

trace/watch等命令能否增强jdk里的类?

默认情况下会过滤掉java.开头的类,但可以通过参数开启。

options unsafe true

更多参考 options

怎么以json格式查看结果

options json-format true

更多参考 options

Arthas能否跟踪 native 函数

不能。

能不能查看内存里某个变量的值

不能。但可以用一些技巧,用tt命令拦截到对象,或者从静态函数里取到对象。

方法同名过滤

同名方法过滤可以通过匹配表达式,可以使用表达式核心变量中所有变量作为已知条件,可以通过判断参数个数params.length ==1, 参数类型params[0] instanceof java.lang.Integer、返回值类型 returnObj instanceof java.util.List 等等一种或者多种组合进行过滤。

可以使用 -v 查看观察匹配表达式的执行结果 https://github.com/alibaba/arthas/issues/1348

例子arthas-demo

watch demo.MathGame primeFactors traceE '{params,returnObj,throwExp}' -v -n 5 -x 3 'params.length >0 && returnObj instanceof java.util.List'

怎么watch、trace 构造函数 ?

watch demo.MathGame <init> '{params,returnObj,throwExp}' -v -n 5 -x 3 '1==1'

java.lang.ClassFormatError: null、skywalking arthas 兼容使用

当出现这个错误日志java.lang.ClassFormatError: null,通常情况下都是被其他字节码工具修改过与arthas修改字节码不兼容。

比如: 使用 skywalking V8.1.0 以下版本 无法trace、watch 被skywalking agent 增强过的类, V8.1.0 以上版本可以兼容使用,更多参考skywalking配置 skywalking compatible with other javaagent bytecode processing

Arthas能不能离线使用

可以

相关文章
|
5月前
|
Arthas 监控 Java
Arthas (阿尔萨斯)arthas-boot 方式安装及使用教程
Arthas (阿尔萨斯)arthas-boot 方式安装及使用教程
441 0
|
Arthas 监控 Java
Arthas 概述 | 学习笔记
快速学习 Arthas 概述
759 0
Arthas 概述 | 学习笔记
|
Arthas SQL Java
Arthas之WatchSql
在使用Arthas排查线上问题的时候,有些时候我们需要查看某些Sql的生成,如果线上没有完备的APM的话,那么如何临时查看呢,前几篇文章我们分析了Mybatis的插件机制,如果你还记得的话,我们可以通过watch这个插件进行查看。
1690 1
Arthas之WatchSql
|
5月前
|
Arthas Java 测试技术
Arthas基础使用篇
Arthas基础使用篇
|
5月前
|
Arthas Java 测试技术
arthas入门
arthas入门
87 1
|
7月前
|
Arthas Java 测试技术
Arthas 使用
Arthas 使用
38 0
|
Arthas 消息中间件 监控
测试和性能监控神器 JMH & Arthas
测试和性能监控神器 JMH & Arthas
|
Arthas Java 测试技术
Arthas使用指南(下)
相关命令 仅以主要的几个命令作为展示,具体命令及参数可以参阅官方文档。
436 0
Arthas使用指南(下)
|
Arthas 运维 Java
Arthas使用指南(上)
Arthas 是Alibaba开源的Java诊断工具。安装在系统所在服务器。可以帮助开发人员或者运维人员查找问题,分析性能,bug追踪。
548 0
|
Arthas Java 测试技术
Arthas之ClassLoaderLoadClass
在使用Arthas排查线上问题的时候,有些时候我们需要查看某些类有没有被加载,或者这个类的静态成员变量到底有没有被打包,又或者需要load测试一下是否正常,那么这个时候可以通过本文进行相关的操作了。
302 0
Arthas之ClassLoaderLoadClass