本文整理汇总了Java中sun.jvm.hotspot.oops.InstanceKlass类的典型用法代码示例。如果您正苦于以下问题:Java InstanceKlass类的具体用法?Java InstanceKlass怎么用?Java InstanceKlass使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
InstanceKlass类属于sun.jvm.hotspot.oops包,在下文中一共展示了InstanceKlass类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: getInterfaces
import sun.jvm.hotspot.oops.InstanceKlass; //导入依赖的package包/类
List getInterfaces() {
List myInterfaces;
if (saKlass instanceof ArrayKlass) {
// Actually, JLS says arrays implement Cloneable and Serializable
// But, JVMDI-JDI just returns 0 interfaces for arrays. We follow
// the same for consistency.
myInterfaces = new ArrayList(0);
} else {
// Get a list of the sa InstanceKlass types
List saInterfaces = ((InstanceKlass)saKlass).getDirectImplementedInterfaces();
// Create a list of our InterfaceTypes
int len = saInterfaces.size();
myInterfaces = new ArrayList(len);
for (int ii = 0; ii < len; ii++) {
myInterfaces.add(new InterfaceTypeImpl(vm, (InstanceKlass)saInterfaces.get(ii)));
}
}
return myInterfaces;
}
示例2: doit
import sun.jvm.hotspot.oops.InstanceKlass; //导入依赖的package包/类
public void doit(Tokens t) {
if (t.countTokens() != 0) {
usage();
} else {
SystemDictionary sysDict = VM.getVM().getSystemDictionary();
sysDict.allClassesDo(new SystemDictionary.ClassVisitor() {
public void visit(Klass k) {
if (k instanceof InstanceKlass && ((InstanceKlass)k).getConstants().getCache() != null) {
MethodArray methods = ((InstanceKlass)k).getMethods();
for (int i = 0; i < methods.length(); i++) {
Method m = methods.at(i);
HTMLGenerator gen = new HTMLGenerator(false);
out.println(gen.genHTML(m));
}
}
}
}
);
}
}
示例3: addReferenceType
import sun.jvm.hotspot.oops.InstanceKlass; //导入依赖的package包/类
private synchronized ReferenceTypeImpl addReferenceType(Klass kk) {
if (typesByID == null) {
initReferenceTypes();
}
ReferenceTypeImpl newRefType = null;
if (kk instanceof ObjArrayKlass || kk instanceof TypeArrayKlass) {
newRefType = new ArrayTypeImpl(this, (ArrayKlass)kk);
} else if (kk instanceof InstanceKlass) {
if (kk.isInterface()) {
newRefType = new InterfaceTypeImpl(this, (InstanceKlass)kk);
} else {
newRefType = new ClassTypeImpl(this, (InstanceKlass)kk);
}
} else {
throw new RuntimeException("should not reach here:" + kk);
}
typesByID.put(kk, newRefType);
typesBySignature.add(newRefType);
return newRefType;
}
示例4: classLoader
import sun.jvm.hotspot.oops.InstanceKlass; //导入依赖的package包/类
public ClassLoaderReference classLoader() {
if (ref() instanceof TypeArrayKlass) {
// primitive array klasses are loaded by bootstrap loader
return null;
} else {
Klass bottomKlass = ((ObjArrayKlass)ref()).getBottomKlass();
if (bottomKlass instanceof TypeArrayKlass) {
// multidimensional primitive array klasses are loaded by bootstrap loader
return null;
} else {
// class loader of any other obj array klass is same as the loader
// that loaded the bottom InstanceKlass
Instance xx = (Instance)(((InstanceKlass) bottomKlass).getClassLoader());
return vm.classLoaderMirror(xx);
}
}
}
示例5: doit
import sun.jvm.hotspot.oops.InstanceKlass; //导入依赖的package包/类
public void doit(Tokens t) {
if (t.countTokens() != 0) {
usage();
} else {
ClassLoaderDataGraph cldg = VM.getVM().getClassLoaderDataGraph();
cldg.classesDo(new ClassLoaderDataGraph.ClassVisitor() {
public void visit(Klass k) {
if (k instanceof InstanceKlass && ((InstanceKlass)k).getConstants().getCache() != null) {
MethodArray methods = ((InstanceKlass)k).getMethods();
for (int i = 0; i < methods.length(); i++) {
Method m = methods.at(i);
HTMLGenerator gen = new HTMLGenerator(false);
out.println(gen.genHTML(m));
}
}
}
}
);
}
}
示例6: SAInstanceKlassSize
import sun.jvm.hotspot.oops.InstanceKlass; //导入依赖的package包/类
private static void SAInstanceKlassSize(int lingeredAppPid,
String[] instanceKlassNames) {
HotSpotAgent agent = new HotSpotAgent();
try {
agent.attach(lingeredAppPid);
}
catch (DebuggerException e) {
System.out.println(e.getMessage());
System.err.println("Unable to connect to process ID: " + lingeredAppPid);
agent.detach();
e.printStackTrace();
}
for (String instanceKlassName : instanceKlassNames) {
InstanceKlass iKlass = SystemDictionaryHelper.findInstanceKlass(
instanceKlassName);
Asserts.assertNotNull(iKlass,
String.format("Unable to find instance klass for %s", instanceKlassName));
System.out.println("SA: The size of " + instanceKlassName +
" is " + iKlass.getSize());
}
agent.detach();
}
示例7: SAInstanceKlassSize
import sun.jvm.hotspot.oops.InstanceKlass; //导入依赖的package包/类
private static void SAInstanceKlassSize(int pid,
String[] SAInstanceKlassNames) {
HotSpotAgent agent = new HotSpotAgent();
try {
agent.attach(pid);
}
catch (DebuggerException e) {
System.out.println(e.getMessage());
System.err.println("Unable to connect to process ID: " + pid);
agent.detach();
e.printStackTrace();
}
for (String SAInstanceKlassName : SAInstanceKlassNames) {
InstanceKlass ik = SystemDictionaryHelper.findInstanceKlass(
SAInstanceKlassName);
Asserts.assertNotNull(ik,
String.format("Unable to find instance klass for %s", ik));
System.out.println("SA: The size of " + SAInstanceKlassName +
" is " + ik.getSize());
}
agent.detach();
}
示例8: sourceDebugExtensionInfo
import sun.jvm.hotspot.oops.InstanceKlass; //导入依赖的package包/类
private SDE sourceDebugExtensionInfo() {
if (!vm.canGetSourceDebugExtension()) {
return NO_SDE_INFO_MARK;
}
SDE sde = null;
sde = (sdeRef == null) ? null : (SDE)sdeRef.get();
if (sde == null) {
String extension = null;
if (saKlass instanceof InstanceKlass) {
extension = ((InstanceKlass)saKlass).getSourceDebugExtension();
}
if (extension == null) {
sde = NO_SDE_INFO_MARK;
} else {
sde = new SDE(extension);
}
sdeRef = new SoftReference(sde);
}
return sde;
}
示例9: writeFieldDescriptors
import sun.jvm.hotspot.oops.InstanceKlass; //导入依赖的package包/类
private void writeFieldDescriptors(List fields, InstanceKlass ik)
throws IOException {
// ik == null for instance fields.
out.writeShort((short) fields.size());
for (Iterator itr = fields.iterator(); itr.hasNext();) {
Field field = (Field) itr.next();
Symbol name = symTbl.probe(field.getID().getName());
writeSymbolID(name);
char typeCode = (char) field.getSignature().getByteAt(0);
int kind = signatureToHprofKind(typeCode);
out.writeByte((byte)kind);
if (ik != null) {
// static field
writeField(field, ik.getJavaMirror());
}
}
}
示例10: baseSourceName
import sun.jvm.hotspot.oops.InstanceKlass; //导入依赖的package包/类
String baseSourceName() throws AbsentInformationException {
if (saKlass instanceof ArrayKlass) {
throw new AbsentInformationException();
}
Symbol sym = ((InstanceKlass)saKlass).getSourceFileName();
if (sym != null) {
return sym.asString();
} else {
throw new AbsentInformationException();
}
}
示例11: sourceDebugExtensionInfo
import sun.jvm.hotspot.oops.InstanceKlass; //导入依赖的package包/类
private SDE sourceDebugExtensionInfo() {
if (!vm.canGetSourceDebugExtension()) {
return NO_SDE_INFO_MARK;
}
SDE sde = null;
sde = (sdeRef == null) ? null : (SDE)sdeRef.get();
if (sde == null) {
String extension = null;
if (saKlass instanceof InstanceKlass) {
Symbol sdeSym = ((InstanceKlass)saKlass).getSourceDebugExtension();
extension = (sdeSym != null)? sdeSym.asString() : null;
}
if (extension == null) {
sde = NO_SDE_INFO_MARK;
} else {
sde = new SDE(extension);
}
sdeRef = new SoftReference(sde);
}
return sde;
}
示例12: addReferenceType
import sun.jvm.hotspot.oops.InstanceKlass; //导入依赖的package包/类
private synchronized ReferenceTypeImpl addReferenceType(Klass kk) {
if (typesByID == null) {
initReferenceTypes();
}
ReferenceTypeImpl newRefType = null;
if (kk instanceof ObjArrayKlass || kk instanceof TypeArrayKlass) {
newRefType = new ArrayTypeImpl(this, (ArrayKlass)kk);
} else if (kk instanceof InstanceKlass) {
if (kk.isInterface()) {
newRefType = new InterfaceTypeImpl(this, (InstanceKlass)kk);
} else {
newRefType = new ClassTypeImpl(this, (InstanceKlass)kk);
}
} else {
throw new RuntimeException("should not reach here");
}
typesByID.put(kk, newRefType);
typesBySignature.add(newRefType);
return newRefType;
}
示例13: canInclude
import sun.jvm.hotspot.oops.InstanceKlass; //导入依赖的package包/类
public boolean canInclude(InstanceKlass kls) {
if (kls.getClassLoader() == null) return false;
if (emitted.get(kls.getName()) != null) {
// Since multiple class loaders are being shoved
// together duplicate classes are a possibilty. For
// now just ignore them.
return false;
}
emitted.put(kls.getName(), kls);
return true;
}
示例14: genericSignature
import sun.jvm.hotspot.oops.InstanceKlass; //导入依赖的package包/类
public String genericSignature() {
if (saKlass instanceof ArrayKlass) {
return null;
} else {
Symbol genSig = ((InstanceKlass)saKlass).getGenericSignature();
return (genSig != null)? genSig.asString() : null;
}
}
示例15: classLoader
import sun.jvm.hotspot.oops.InstanceKlass; //导入依赖的package包/类
public ClassLoaderReference classLoader() {
Instance xx = (Instance)(((InstanceKlass)saKlass).getClassLoader());
return (ClassLoaderReferenceImpl)vm.classLoaderMirror(xx);
}