arthas查看对象
时间: 2023-12-12 16:35:56 浏览: 44
可以使用arthas的`jvm`命令来查看对象。具体步骤如下:
1. 进入arthas命令行界面,输入`jvm`命令。
2. 输入`sc`命令查看当前所有的类。
3. 输入`sm -d <类名>`命令查看该类的所有方法。
4. 输入`watch <类名> <方法名> <参数类型> <参数值> "{params,target}"`命令来监控该方法的参数和返回值。
5. 在执行该方法后,可以在arthas命令行界面中看到该方法的返回值和参数信息。
6. 输入`jmap <对象的hashcode>`命令来查看该对象的详细信息。
举个例子,假设我们要查看一个名为`User`的类中的`getUserInfo`方法返回的对象信息,具体步骤如下:
1. 进入arthas命令行界面,输入`jvm`命令。
2. 输入`sc`命令查看当前所有的类,找到`User`类。
3. 输入`sm -d User`命令查看`User`类的所有方法,找到`getUserInfo`方法。
4. 输入`watch User getUserInfo java.lang.String 123456 "{params,target}"`命令来监控`getUserInfo`方法的参数和返回值。
5. 在执行`getUserInfo`方法后,可以在arthas命令行界面中看到该方法的返回值和参数信息。
6. 输入`jmap <对象的hashcode>`命令来查看该对象的详细信息。
相关问题
怎么用arthas查看对象属性
1. 进入arthas命令行界面,执行`dashboard`命令查看当前JVM的进程信息和系统资源使用情况。
2. 执行`sc`命令查看所有已加载的类信息,找到要查看属性的对象所对应的类。
3. 执行`jad`命令反编译该类的字节码,查看类的源代码。
4. 执行`ognl`命令查看对象的属性值,语法为`ognl object.property`,例如:`ognl com.example.User@12345678.id`。
5. 如果属性值是集合类型,可以使用`ognl`命令的`size()`或`[#]`语法查看集合大小或指定索引的元素值,例如:`ognl com.example.User@12345678.roles.size()`。
6. 如果需要在命令行中动态修改对象属性值,可以使用`set`命令,语法为`set object.property=value`,例如:`set com.example.User@12345678.name=Tom`。
7. 使用`monitor`命令监控对象属性的变化,语法为`monitor object.property`,例如:`monitor com.example.User@12345678.age`。
arthas 查看内存搭对象
你可以使用arthas的heapdump命令查看内存中的对象。具体操作步骤如下:
1. 使用jps命令查看Java进程号,找到需要监控的进程号
2. 执行arthas命令:`./as.sh --attach <进程号>`,进入arthas监控界面
3. 执行heapdump命令:`heapdump --live -f /tmp/dump.hprof`,将内存中的对象信息导出到指定文件中
4. 导出完成后,可以使用MAT等工具打开hprof文件,查看内存中的对象信息
如果你想查看某个具体对象的信息,可以使用jmap命令,具体操作步骤如下:
1. 使用jps命令查看Java进程号,找到需要监控的进程号
2. 执行jmap命令:`jmap -histo:live <进程号>`,查看内存中的对象信息
3. 根据输出的信息,找到要查看的对象的类名或实例数量
4. 执行jmap命令:`jmap -dump:live,format=b,file=/tmp/dump.hprof <进程号>`,将内存中的对象信息导出到指定文件中
5. 导出完成后,可以使用MAT等工具打开hprof文件,查看内存中的对象信息