arthas调试时常用命令
时间: 2025-02-12 17:23:26 AIGC 浏览: 56
### Arthas 调试命令列表
#### 查看源码
通过 `jad` 命令可以反编译并查看指定类的方法源码,这对于理解现有代码逻辑非常有帮助[^1]。
```bash
jad com.example.MyClass
```
#### 清屏
为了保持终端界面整洁,可使用 `cls` 来清除屏幕上的所有内容。
```bash
cls
```
#### 获取静态字段信息
利用 `getstatic` 可以获取某个特定对象实例的静态变量值,这有助于监控全局状态的变化情况。
```bash
getstatic java.lang.System out
```
#### 方法执行监视
- **Watch**: 使用 `watch` 命令来观察目标函数每次被调用时传入参数以及最终返回的结果。此功能对于追踪数据流特别有用。
```bash
watch com.example.MyService 'request()' '{params, returnObj}'
```
- **Trace**: 对于想要了解某段代码运行期间消耗了多少时间的情况,则应该采用 `trace` 。它不仅能够统计整个过程所花费的时间,还能进一步细分到各个子操作层面去分析性能瓶颈所在之处。
```bash
trace com.example.MyController handleRequest
```
#### 类加载器查询
当遇到类找不到或者版本冲突等问题时,可以通过 `sc` (search class) 加上 `-d` 参数配合管道符过滤出具体的 ClassLoader Hash ,从而定位问题根源所在[^2]。
```bash
sc -d org.springframework.web.servlet.DispatcherServlet | grep classLoaderHash
```
#### 动态修改业务逻辑
如果需要在线调整某些行为而无需重启应用服务器的话,那么就可以考虑先将字节码转换成 Java 文件再做相应改动;之后借助内存中的即时编译机制重新生成新的 .class 文件实现热部署效果。
另外还可以运用 OGNL 表达式直接对应用程序内的任意属性进行读写访问,例如向集合中添加新元素等简单变更操作也变得轻而易举了[^3]:
```bash
ognl '@java.util.Collections@singletonList("new item")'
```
阅读全文
相关推荐



















