前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >dump文件通过OQL查询文件信息

dump文件通过OQL查询文件信息

作者头像
逍遥壮士
发布2022-04-26 20:31:10
9040
发布2022-04-26 20:31:10
举报
文章被收录于专栏:技术趋势技术趋势

上文:如何实现对java生成的.class加密?

OQL是什么?

OQL 是一种类似 SQL 的查询语言,用于查询 Java 堆。OQL 允许从 Java 堆中过滤/选择所需的信息。虽然 VisualVM 已经支持诸如“显示 X 类的所有实例”之类的预定义查询,但 OQL 增加了更多的灵活性。OQL 基于 JavaScript 表达式语言。 OQL 查询的形式如下: https://htmlpreview.github.io/?https://raw.githubusercontent.com/visualvm/visualvm.java.net.backup/master/www/oqlhelp.html

代码语言:javascript
复制
select <JavaScript expression to select>
         [ from [instanceof] <class name> <identifier>
         [ where <JavaScript boolean expression to filter> ] ]

OQL怎么用?

测试代码

代码语言:javascript
复制
/**
 * @author hong
 * @version 1.0
 * @description: oql 测试
 * @date 2022/4/16 10:20
 */
public class OqlTest {
    private static List<Object> lists = new ArrayList<>();
    public static void main(String[] args) throws InterruptedException {
        while (true){
            System.out.println("进来喽!");
            lists.add("123");
            Thread.sleep(1000);
            System.out.println("休息完了!");
        }
    }
}

运行的 配置:-XX:+HeapDumpOnOutOfMemoryError

然后跑起来后启动,然后找到你jdk目录bIn下面的jps,然后获取进程。(注意管理员运行)

然后输入:http://localhost:7000/ 展示如下:

下面通过OQL语句查询,上面哪些可以自行了解。

相关语法查询:http://localhost:7000/oqlhelp/

显示所有类名称:

代码语言:javascript
复制
select classof(cl).name from instanceof java.lang.ClassLoader cl

查找我们创建的OqTest类

通过id查询

点开这个对象

select heap.findObject("0x6d1029358")

点开可以看到我们静态的属性

更多的使用方法,建议还是参考官网或其他现成使用案例;

最后

通过OQL方式来查询dump文件中内存里面的对象或属性,通过该方式可以快速查询,需要将文件下载到本地来进行分析的场景是比较常用,部分JVM分析工具,图形化界面也是通过基于该语法进行集成。不过OQL的学习还是需要了解一些sql基础语法,有sql经验的同学更易上学。

参考文章

https://htmlpreview.github.io/?https://raw.githubusercontent.com/visualvm/visualvm.java.net.backup/master/www/oqlhelp.html

https://blog.csdn.net/pange1991/article/details/82023771

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-04-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 技术趋势 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档