RFR: 8000489: older builds of hsdis don't work anymore after 6879063

yumin.qi at oracle.com yumin.qi at oracle.com
Thu Nov 1 11:06:14 PDT 2012


  Hi, John and all

   Please have a look for new webrev
   http://cr.openjdk.java.net/~minqi/8000489

   The new code works fine:  new vm with new hsdis and old hsdis,  old 
vm with new hsdis and old hsdis.

   (Kris, I tested both with -XX:+PrintInterpreter  and 
-XX:+PrintAssembly separately, the output is OK, please let me know if 
you find new problem with output format)

   One problem is that SA could not work with old hsdis, the reason is 
when decode an address, old hsdis read byte from the address. In fact, 
when SA attached to process or core file, the address is from target 
process or core file, not an address in SA process itself. When hsdis 
read memory from this address --- it reads from SA process itself, could 
not reach out to target space, so the output is wrong. With new hsdis, 
we copy the bytes from target and pass into hsdis as a buffer, and hsdis 
read byte from this buffer, but the address value itself is only for 
print out. With old version hsdis, it will read from SA process.

For VM disassemble output, using old version hsdis has no problem, since 
the address hsdis read is from the process itself as expected.

  I will file a bug to log this problem but no fix for it since the 
interface has no more param for this.

Thanks
Yumin




On 10/29/2012 10:47 AM, John Rose wrote:
> On Oct 29, 2012, at 10:35 AM, Yumin Qi wrote:
>
>>   I haven't considered new JVM work with old hsdis. Will change 
>> disassemble.cpp to check:
>
> Perfect!  Thanks, — John
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20121101/57cb5076/attachment.html 


More information about the hotspot-compiler-dev mailing list