< prev index next >

src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/utilities/soql/sa.js

Print this page




 496    for (i = 0; i < num; i++) {
 497       var value = addr.getAddressAt(0);      
 498       writeln(addr2sym(addr) + ':', addr2str(value)); 
 499       addr = addr.addOffsetTo(addressSize);      
 500    }
 501    writeln();
 502 }
 503 
 504 // System dictionary functions
 505 
 506 // find InstanceKlass by name
 507 function findInstanceKlass(name) {
 508    return sapkg.utilities.SystemDictionaryHelper.findInstanceKlass(name);
 509 }
 510 
 511 // get Java system loader (i.e., application launcher loader)
 512 function systemLoader() {
 513    return sa.sysDict.javaSystemLoader();
 514 }
 515 
 516 // iterate system dictionary for each 'Klass' 
 517 function forEachKlass(callback) {
 518    var VisitorClass = sapkg.memory.SystemDictionary.ClassVisitor;
 519    var visitor = new VisitorClass() { visit: callback };
 520    sa.sysDict["classesDo(sun.jvm.hotspot.memory.SystemDictionary.ClassVisitor)"](visitor);
 521 }
 522 
 523 // iterate system dictionary for each 'Klass' and initiating loader
 524 function forEachKlassAndLoader(callback) {
 525    var VisitorClass = sapkg.memory.SystemDictionary.ClassAndLoaderVisitor;
 526    var visitor = new VisitorClass() { visit: callback };
 527    sa.sysDict["classesDo(sun.jvm.hotspot.memory.SystemDictionary.ClassAndLoaderVisitor)"](visitor);
 528 }
 529 
 530 // iterate system dictionary for each primitive array klass
 531 function forEachPrimArrayKlass(callback) {
 532    var VisitorClass = sapkg.memory.SystemDictionary.ClassAndLoaderVisitor;
 533    sa.sysDict.primArrayClassesDo(new VisitorClass() { visit: callback });
 534 }
 535 
 536 // 'oop' to higher-level java object wrapper in which for(i in o) 
 537 // works by iterating java level fields and javaobject.javafield
 538 // syntax works.
 539 function oop2obj(oop) {
 540    return object(addr2str(oop.handle));
 541 }
 542 
 543 // higher level java object wrapper to oop
 544 function obj2oop(obj) {
 545    return addr2oop(str2addr(address(obj)));
 546 }
 547 
 548 // Java heap iteration
 549 
 550 // iterates Java heap for each Oop
 551 function forEachOop(callback) {
 552    function empty() { }
 553    sa.objHeap.iterate(new sapkg.oops.HeapVisitor() {




 496    for (i = 0; i < num; i++) {
 497       var value = addr.getAddressAt(0);      
 498       writeln(addr2sym(addr) + ':', addr2str(value)); 
 499       addr = addr.addOffsetTo(addressSize);      
 500    }
 501    writeln();
 502 }
 503 
 504 // System dictionary functions
 505 
 506 // find InstanceKlass by name
 507 function findInstanceKlass(name) {
 508    return sapkg.utilities.SystemDictionaryHelper.findInstanceKlass(name);
 509 }
 510 
 511 // get Java system loader (i.e., application launcher loader)
 512 function systemLoader() {
 513    return sa.sysDict.javaSystemLoader();
 514 }
 515 
 516 // iterate class loader data for each 'Klass' 
 517 function forEachKlass(callback) {
 518    var VisitorClass = sapkg.classfile.ClassLoaderDataGraph.ClassVisitor;
 519    var visitor = new VisitorClass() { visit: callback };
 520    sa.sysDict["classesDo(sun.jvm.hotspot.classfile.ClassLoaderDataGraph.ClassVisitor)"](visitor);
 521 }
 522 
 523 // iterate system dictionary for each 'Klass' and initiating loader
 524 function forEachKlassAndLoader(callback) {
 525    var VisitorClass = sapkg.classfile.ClassLoaderDataGraph.ClassAndLoaderVisitor;
 526    var visitor = new VisitorClass() { visit: callback };
 527    sa.sysDict["allEntriesDo(sun.jvm.hotspot.classfile.ClassLoaderDataGraph.ClassAndLoaderVisitor)"](visitor);






 528 }
 529 
 530 // 'oop' to higher-level java object wrapper in which for(i in o) 
 531 // works by iterating java level fields and javaobject.javafield
 532 // syntax works.
 533 function oop2obj(oop) {
 534    return object(addr2str(oop.handle));
 535 }
 536 
 537 // higher level java object wrapper to oop
 538 function obj2oop(obj) {
 539    return addr2oop(str2addr(address(obj)));
 540 }
 541 
 542 // Java heap iteration
 543 
 544 // iterates Java heap for each Oop
 545 function forEachOop(callback) {
 546    function empty() { }
 547    sa.objHeap.iterate(new sapkg.oops.HeapVisitor() {


< prev index next >