Eclipse 在调试期间,如何评估调试目标VM中的一段代码?

Eclipse 在调试期间,如何评估调试目标VM中的一段代码?,eclipse,debugging,jdi,Eclipse,Debugging,Jdi,在调试期间,例如在Eclipse中,可以计算监视表达式或条件断点。通常,这些在客户端进行评估。例如,在Eclipse中进行调试时,计算这些表达式的是Eclipse本身,而不是调试目标VM。这可能非常昂贵,尤其是在条件断点的情况下,因为调试VM(即Eclipse)需要在每次遇到断点时都处于活动状态,即使条件的计算结果为false 我现在的问题是调试协议是否允许它在调试目标VM中计算此类表达式或条件断点,这样,目标VM仅在表达式/条件真正计算为TRUE时通知调试VM。除了IDE滥用热代码替换,将方法

在调试期间,例如在Eclipse中,可以计算监视表达式或条件断点。通常,这些在客户端进行评估。例如,在Eclipse中进行调试时,计算这些表达式的是Eclipse本身,而不是调试目标VM。这可能非常昂贵,尤其是在条件断点的情况下,因为调试VM(即Eclipse)需要在每次遇到断点时都处于活动状态,即使条件的计算结果为false


我现在的问题是调试协议是否允许它在调试目标VM中计算此类表达式或条件断点,这样,目标VM仅在表达式/条件真正计算为TRUE时通知调试VM。

除了IDE滥用热代码替换,将方法体替换为带有空if块的体,并将条件断点放在其中之外,我在其中找不到任何有助于执行此操作的内容

EventRequest.Set中有一个exprId,它是为将来而记录的,没有公开WIJDI断点请求,所以我认为这已经或者永远不会起作用

顺便说一下,评估发生在目标vmi内部。E如果在表达式中使用equals,equals将在目标vm中运行,但计算将从调试vm触发