Hi Peter, Do you have the hsdis-base .so (disassembler plugin) from:
http://kenai.com/projects/base-hsdis/downloads installed in your JVM? If so, can you check if you're getting a message about "Plugin disabled" when the JVM starts? Thanks, Ben On Tue, Dec 15, 2009 at 5:18 PM, Peter Veentjer <alarmnum...@gmail.com>wrote: > Hi Ben, > > thanks for the information. I have just run an application with these > parameters (and played with some using the link you added). But I > don't get the actual assembler generated (or I can't recognise it); I > do get a lot of output however. > > I would expect a lot of i386+ assembler statements (I have done some > assembler many many years ago). > > This is a fragment: > > OopMap{ebp=Oop [256]=Oop [40]=Oop [44]=Oop [48]=Oop [56]=Oop [96]=Oop > [124]=Oop [128]=Oop [180]=Oop [216]=Oop off=31380} > #442 > OopMap{ebp=Oop [256]=Oop [40]=Oop [44]=Oop [48]=Oop [56]=Oop [96]=Oop > [124]=Oop [128]=Oop [180]=Oop [216]=Oop off=31396} > #443 > OopMap{ebp=Oop [256]=Oop [40]=Oop [44]=Oop [48]=Oop [56]=Oop [96]=Oop > [124]=Oop [128]=Oop [180]=Oop [216]=Oop off=31412} > #444 > OopMap{ebp=Oop [256]=Oop [40]=Oop [44]=Oop [48]=Oop [56]=Oop [96]=Oop > [124]=Oop [128]=Oop [180]=Oop [216]=Oop off=31428} > #445 > OopMap{[256]=Oop [24]=Oop [40]=Oop [44]=Oop [48]=Oop [56]=Oop [96]=Oop > [124]=Oop [128]=Oop [180]=Oop [216]=Oop off=31444} > #446 > OopMap{off=31460} > #447 > OopMap{off=31476} > #448 > OopMap{off=31492} > #449 > OopMap{off=31508} > #450 > OopMap{off=31524} > #451 > OopMap{off=31540} > #452 > OopMap{off=31556} > #453 > OopMap{off=31572} > #454 > OopMap{off=31588} > #455 > OopMap{off=31604} > #456 > OopMap{off=31620} > #457 > OopMap{off=31636} > #458 > OopMap{off=31652} > #459 > OopMap{[256]=Oop [40]=Oop [44]=Oop [48]=Oop [96]=Oop [112]=Oop > [132]=Oop [156]=Oop [176]=Oop [180]=Oop [216]=Oop off=31668} > #460 > OopMap{off=31684} > #461 > OopMap{off=31700} > #462 > OopMap{off=31716} > #463 > OopMap{off=31732} > #464 > OopMap{off=31748} > #465 > OopMap{off=31764} > #466 > OopMap{off=31780} > #467 > OopMap{off=31796} > #468 > OopMap{off=31812} > #469 > OopMap{off=31828} > #470 > OopMap{off=31844} > #471 > OopMap{off=31868} > #472 > OopMap{off=31892} > #473 > OopMap{[256]=Oop [24]=Oop [40]=Oop [44]=Oop [48]=Oop [92]=Oop > [216]=Oop off=31908} > #474 > OopMap{off=31932} > #475 > OopMap{off=31948} > #476 > OopMap{off=31964} > #477 > OopMap{off=31980} > #478 > OopMap{off=31996} > #479 > OopMap{off=32012} > #480 > OopMap{off=32028} > #481 > OopMap{off=32044} > #482 > OopMap{off=32060} > #483 > OopMap{off=32076} > #484 > OopMap{off=32096} > #485 > OopMap{off=32116} > #486 > OopMap{off=32132} > #487 > OopMap{[52]=Oop [72]=Oop [108]=Oop [148]=Oop off=32148} > #488 > OopMap{off=32164} > #489 > OopMap{off=32180} > #490 > OopMap{off=32196} > #491 > OopMap{off=32212} > #492 > OopMap{off=32228} > #493 > OopMap{off=32244} > #494 > OopMap{off=32260} > #495 > OopMap{off=32276} > #496 > OopMap{off=32292} > #497 > OopMap{off=32308} > #498 > OopMap{off=32324} > #499 > OopMap{off=32340} > #500 > OopMap{off=32356} > Compiled (c2) 82 nmethod (2) > org.multiverse.stms.AbstractTransaction::getStatus (30 bytes) > total in heap [0xb3ab7a88,0xb3ab7bf8] = 368 > relocation [0xb3ab7b3c,0xb3ab7b54] = 24 > main code [0xb3ab7b60,0xb3ab7bc0] = 96 > stub code [0xb3ab7bc0,0xb3ab7bcf] = 15 > constants [0xb3ab7bcf,0xb3ab7bd0] = 1 > scopes data [0xb3ab7bd0,0xb3ab7bd4] = 4 > scopes pcs [0xb3ab7bd4,0xb3ab7bec] = 24 > dependencies [0xb3ab7bec,0xb3ab7bf0] = 4 > oops [0xb3ab7bf0,0xb3ab7bf8] = 8 > OopMapSet contains 0 OopMaps > > Compiled (c2) 83 nmethod (2) > java.util.Formatter$FormatSpecifier::checkBadFlags (39 bytes) > total in heap [0xb3ac12c8,0xb3ac15d4] = 780 > relocation [0xb3ac137c,0xb3ac13ac] = 48 > main code [0xb3ac13c0,0xb3ac14c0] = 256 > stub code [0xb3ac14c0,0xb3ac14d9] = 25 > constants [0xb3ac14d9,0xb3ac14dc] = 3 > scopes data [0xb3ac14dc,0xb3ac1540] = 100 > scopes pcs [0xb3ac1540,0xb3ac1594] = 84 > dependencies [0xb3ac1594,0xb3ac159c] = 8 > handler table [0xb3ac159c,0xb3ac15b4] = 24 > nul chk table [0xb3ac15b4,0xb3ac15c8] = 20 > > > On Tue, Dec 15, 2009 at 5:13 PM, Ben Evans > <benjamin.john.ev...@googlemail.com> wrote: > > Hi Peter, > > > > Try a combination like -XX:+UnlockDiagnosticVMOptions > > -XX:+PrintNMethods -XX:+PrintSignatureHandlers -XX:+PrintAssembly > > > > Or this link: > > > > http://wikis.sun.com/display/HotSpotInternals/PrintAssembly > > > > This should work on 6u18 and above. > > > > Thanks, > > > > Ben > > > > On 15 Dec 2009, at 12:31, Peter Veentjer <alarmnum...@gmail.com> wrote: > > > >> I also have troubles figuring out how 'smart' the JIT is (or how smart > >> the CPU is). > >> > >> So getting access to the generated assembler would be a big step > >> forward for me as well. > >> > >> ps: > >> although I'm not working on a language, I'm working on a library > >> (http://multiverse.googlecode.com) > >> that could be seen as a language feature (software transactional > >> memory). > >> > >> On Tue, Dec 15, 2009 at 1:09 PM, Kresten Krab Thorup > >> <k...@trifork.com> wrote: > >>> How do you get the emitted code? I did not know you can do that. > >>> Can > >>> you get description of what is inlined and why also? > >>> > >>> On Dec 14, 7:16 pm, Charles Oliver Nutter <head...@headius.com> > >>> wrote: > >>>> Debug it or just read it? There are numerous options available to > >>>> get > >>>> you assembly output, if that's what you want. I've read more of it > >>>> than I like to admit... > >>>> > >>>> - Charlie > >>> > >>> -- > >>> > >>> You received this message because you are subscribed to the Google > >>> Groups "JVM Languages" group. > >>> To post to this group, send email to jvm-langua...@googlegroups.com. > >>> To unsubscribe from this group, send email to > jvm-languages+unsubscr...@googlegroups.com<jvm-languages%2bunsubscr...@googlegroups.com> > >>> . > >>> For more options, visit this group at > http://groups.google.com/group/jvm-languages?hl=en > >>> . > >>> > >>> > >>> > >> > >> -- > >> > >> You received this message because you are subscribed to the Google > >> Groups "JVM Languages" group. > >> To post to this group, send email to jvm-langua...@googlegroups.com. > >> To unsubscribe from this group, send email to > jvm-languages+unsubscr...@googlegroups.com<jvm-languages%2bunsubscr...@googlegroups.com> > >> . > >> For more options, visit this group at > http://groups.google.com/group/jvm-languages?hl=en > >> . > >> > >> > > > > -- > > > > You received this message because you are subscribed to the Google Groups > "JVM Languages" group. > > To post to this group, send email to jvm-langua...@googlegroups.com. > > To unsubscribe from this group, send email to > jvm-languages+unsubscr...@googlegroups.com<jvm-languages%2bunsubscr...@googlegroups.com> > . > > For more options, visit this group at > http://groups.google.com/group/jvm-languages?hl=en. > > > > > > > > -- > > You received this message because you are subscribed to the Google Groups > "JVM Languages" group. > To post to this group, send email to jvm-langua...@googlegroups.com. > To unsubscribe from this group, send email to > jvm-languages+unsubscr...@googlegroups.com<jvm-languages%2bunsubscr...@googlegroups.com> > . > For more options, visit this group at > http://groups.google.com/group/jvm-languages?hl=en. > > > -- You received this message because you are subscribed to the Google Groups "JVM Languages" group. To post to this group, send email to jvm-langua...@googlegroups.com. To unsubscribe from this group, send email to jvm-languages+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/jvm-languages?hl=en.