gpt4 book ai didi

java - JDI 和 JPDA 中的 ObjectReference 底层对象

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:39:48 26 4
gpt4 key购买 nike

非常具体,在 JDI 和 JPDA 中上下文,我有以下问题:

  • 为什么 ObjectReference 不公开其底层对象?它是基于某些规范吗? Eclipse Debug Project 等不暴露底层对象的实现都是一样的吗?

  • 考虑到您拥有来自 ObjectReferenceuniqueID() 的情况,是否有任何方法可以从 JVM 解析底层对象>?

  • 如果对上一个问题不是,那么解析底层对象的最佳方法是什么?我应该补充一点,我熟悉如何从 StackFrame 信息中获取 Value,但我确实需要对象引用 不是字段的内部值或结构。

最佳答案

Why ObjectReference does not expose its underlying object?

我假设您指的是 com.sun.jdi.ObjectReference 接口(interface)。如果是这样,它是两件事的组合:

  • 从表面上看,这没有任何意义。 ObjectReference 在运行调试器的 JVM 中,但相应的 Java 对象存在于目标机器上。

  • 假设它确实有意义,那么公开实际的对象地址和内存内容将是一件坏事。这将允许调试器对目标 JVM 执行会导致硬崩溃的操作。

Considering the situation that you have the uniqueID() from ObjectReference, is there any way to resolve the underlying object from JVM?

没有。

If no to the previous question, then what is the best way to resolve the underlying object?

据我所知,除了使用 JVM 工具接口(interface)在 C/C++ 中编写您自己的调试代理并配置目标 JVM 以运行它之外,没有办法做到这一点。

关于java - JDI 和 JPDA 中的 ObjectReference 底层对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4165360/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com