sách gpt4 ai đã đi

java - 检测 Java 类以创建反向 Java 调试器的最佳方法是什么?

In lại 作者:行者123 更新时间:2023-12-01 12:00:56 28 4
mua khóa gpt4 Nike

我想为 Java 创建一个反向调试器(一个可以在程序执行中倒退的调试器),为此我需要在程序执行的同时存储变量数据。我将为此使用全局缓存和更新缓存的静态方法。

我想以这样的方式检测加载的类,在每个字段/变量修改后,我的静态方法将被调用:例如:

public static void updateCache(String fullVarName, Object value){...}

我观察到的是,当一个字段被更新时,一个 putfield指令被执行。当局部变量被更新时, (I)STORE指令被使用。所以我想到了检测类,每当发现这样的操作码时,我只需插入另一个 getfieldhoặc ILOAD之后,要获取更新的字段/变量的值,然后我使用 invokestatic使用所有必要的信息调用我的静态方法。

问题是还有其他用例,其中变量是集合或数组,并且它们使用特定方法更新,例如更新 HashMap 时。与 map.put(key, value) .所以我也需要拦截这些调用,但是有很多这样的方法,我需要找到它们并对其进行硬编码......
有解决方法吗?或者也许我遗漏了一些东西,有一个更简单的解决方案。

编辑:我之前也研究过 JVMTI 并运行了一些基准测试。对于我的用例来说,它似乎太慢了,例如给我的程序增加了 7-100 倍的减速.....

1 Câu trả lời

如果您的目标只是获得反向调试的可能性,您可以尝试 Jive ( https://cse.buffalo.edu/jive/ )。它可以与 Eclipse 一起使用。

但如果你的目标是自己创建一个反向调试工具,这篇文章可能会对你有所帮助:https://www.researchgate.net/publication/220093333_Back_to_the_Future_Omniscient_Debugging

关于java - 检测 Java 类以创建反向 Java 调试器的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61803557/

28 4 0
Bài viết được đề xuất: java - Ant - 没有公共(public)执行()错误,即使它存在
Bài viết được đề xuất: java - JAIN-SIP WebRTC 信令
Bài viết được đề xuất: java - 在警报对话框中获取用户选择
Bài viết được đề xuất: java - 在android中创建vcf文件时出错
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com