Hi, I think this is not particularly easy to do. The steps that are needed on the Java side are:
1. Create a new command object (jde.debugger.command.X) - piece of cake 2. Add it to the DebugCommandFactory list of prototypes - piece of cake 3. The hard part: make it do what you want. It's easy to use the list of StackFrame:s to figure out the value of a variable (see the GetLocals command), but it's quite hard to simulate execution of a function call in a detailed way. I am not at all sure how best to execute a call that could involve access to global variables, synchronization, etc. On top of that, there is the fact that you need to execute the call inside the debuggee VM, not the debugger VM, to ensure that class loading, etc., is all done in the same way. And normally, the debugee VM will be suspended by the debugger when stepping through the code, so I think you'd have to create a new thread with the same context as the current one and execute your call in that scope. It seems to quickly run out of hand here. I tried looking a bit at the JDI interface, but I couldn't see any way to do step 3. I didn't spend a lot of time on it, but it may be something that is not well supported at this level at least. Best regards, Petter > -----Original Message----- > From: Paul Kinnucan [mailto:[EMAIL PROTECTED] > Sent: den 1 september 2003 04:37 > To: [EMAIL PROTECTED] > Cc: [EMAIL PROTECTED] > Subject: [work] How can JDEbug evaluate expression be extended? > > > Jeff VanBaalen writes: > > Does anyone have an extension for the JDEbug "Evaluate Expression" > > command that enables one to examine the result of calling > a method on > > some variable in the current context? > > > > If not, can anyone give me some hints on how hard this > would be to do > > and how to do it? Its been a while, but I have hacked elisp before. > > > > Hi Jeff, > > This would require work on the Java side of JDEbug, not the Lisp > side. You would have to enhance JDEbug's rather primitive > expression interpreter to parse and evaluate method expressions. > > Paul > >
