RFR: 8000489: older builds of hsdis don't work anymore after 6879063
Yumin Qi
yumin.qi at oracle.com
Mon Oct 29 10:35:09 PDT 2012
John,
I haven't considered new JVM work with old hsdis. Will change
disassemble.cpp to check:
first decode_instructions_virtual exists, use it. If not, next check
if decode_instructions exists, then use it.
As you expected, it will look like
/ new hsdis -> decode_instructions ->
decode_instructions_virtual
old VM
\ old hsdis -> decode_instructions
/ new hsdis -> decode_instructions_virtual
new VM
\ old hsdis -> decode_instructions
Thanks
Yumin
On 10/29/2012 9:57 AM, John Rose wrote:
> On Oct 25, 2012, at 1:16 PM, Yumin Qi wrote:
>
>> To John's question, it doesn't require changes to disassembler.cpp:
>>
>> new version ---> decode_instructions_virtual
>> old version ---> decode_instructions ---> decode_instructions_virtual
>>
>> tested with b01 (JDK8) with new hsdis-i386.so.
>
> I think we are aiming to make all four combinations work: {old JVM ,
> new JVM} x { old hsdis , new hsdis }.
>
> For this to work, there must be "tolerance" in both the JVM and hsdis
> for old code. That's why I was looking for a change to
> disassembler.cpp, so that old hsdis modules will still work.
>
> In particular, the older builds of hsdis won't work properly unless
> the new JVM looks for the old hsdis entry point (if it fails to find
> the new hsdis entry point, of course).
>
> Basically, I am expecting that if the new JVM fails to find
> hsdis`decode_instructions_virtual, it will look for
> hsdis`decode_instructions instead, and will call that latter function
> with the (fewer) arguments that it expected.
>
> Am I missing something here?
>
> — John
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/serviceability-dev/attachments/20121029/ab018a2e/attachment.html
More information about the serviceability-dev
mailing list