RFE: 4508774: Implementation for GetOperandStack

Jan Siersch jan.siersch at uni-ulm.de
Tue Feb 11 08:07:11 PST 2014

Hi Serguei,

I have just signed the OCA and mailed it to oracle. Hope you can use the 
code once they have processed my request.


On 02/11/2014 09:27 AM, serguei.spitsyn at oracle.com wrote:
> Hi Jan,
> I was told that you are not allowed to contribute until you sign an OSA.
> This is a link to follow:
>   http://openjdk.java.net/contribute/
> I'm deleting the attachment from the bug report at the moment. Sorry. :(
> Thanks,
> Serguei
> On 2/10/14 3:36 PM, serguei.spitsyn at oracle.com wrote:
>> Hi Jan,
>> Thank you for contributing a suggested fix for this enhancement!
>> I've attached your diff into the bug report file getOpStack.patch.
>> Of course, we will take care and make sure the final fix is type safe.
>> In case the attachment was removed from the mailing list.
>> Here is an external link to the diff:
>> http://pastebin.com/fbDd7mU3
>> The above link is helpful as your original diff was removed from the 
>> email.
>> Thanks,
>> Serguei
>> On 2/10/14 9:21 AM, Jan Siersch wrote:
>>> Hi all,
>>> this post is about a feature request for JVMTI to allow access to 
>>> the operand stack:
>>> https://bugs.openjdk.java.net/browse/JDK-4508774
>>> As part of a project I'm working on, I have implemented a set of 
>>> functions, namely GetOperand<Type>, which provide the requested 
>>> functionality, and I would like to provide this implementation to 
>>> the OpenJDK project. As I am not a regular contributor to the 
>>> OpenJDK project, I do not have an account for the bug tracker and 
>>> cannot post my code there.
>>> I have attached a diff with the modified hotspot source code to this 
>>> e-mail. This implementation adds a new function category "Operand 
>>> Stack" to JVMTI that contains 5 functions (GetOperandObject, 
>>> GetOperandInt, GetOperandLong, GetOperandFloat, GetOperandDouble) 
>>> which can be used the same way as the corresponding GetLocal<Type> 
>>> functions.
>>> All changes to the source files are purely additive. No existing 
>>> functions are modified. One new VM Operation "GetOperand" is added 
>>> and implemented. The changes are based on the "JDK 7 Updates Master" 
>>> branch. I have compiled OpenJDK locally with these changes and had 
>>> no problems with them.
>>> However this implementation still has one drawback: the functions 
>>> are not type-safe, as I was unable to find the necessary information 
>>> within hotspot to do proper type-checking of operands. For me this 
>>> is not a problem, because in my project I have a way of inferring 
>>> operand types externally, but for proper production code 
>>> type-checking should be added (there is a FIXME in the added source 
>>> for this purpose).
>>> I hope someone reading this list has the time to look at this code 
>>> and if they find it suitable, to integrate it into the OpenJDK 
>>> project. About licensing: you may use this code in whatever way, 
>>> shape or form you see fit.
>>> Regards,
>>> Jan

More information about the hotspot-dev mailing list