本文整理汇总了Java中sun.jvm.hotspot.debugger.Address类的典型用法代码示例。如果您正苦于以下问题:Java Address类的具体用法?Java Address怎么用?Java Address使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
Address类属于sun.jvm.hotspot.debugger包,在下文中一共展示了Address类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: lookup
import sun.jvm.hotspot.debugger.Address; //导入依赖的package包/类
Address lookup(String symbol) {
if (symbol.indexOf("::") != -1) {
String[] parts = symbol.split("::");
StringBuffer mangled = new StringBuffer("__1c");
for (int i = 0; i < parts.length; i++) {
int len = parts[i].length();
if (len >= 26) {
mangled.append((char)('a' + (len / 26)));
len = len % 26;
}
mangled.append((char)('A' + len));
mangled.append(parts[i]);
}
mangled.append("_");
symbol = mangled.toString();
}
return VM.getVM().getDebugger().lookup(null, symbol);
}
示例2: doit
import sun.jvm.hotspot.debugger.Address; //导入依赖的package包/类
public void doit(Tokens t) {
int tokens = t.countTokens();
if (tokens != 1) {
usage();
return;
}
String name = t.nextToken();
Address addr = null;
try {
addr = VM.getVM().getDebugger().parseAddress(name);
} catch (NumberFormatException e) {
out.println(e);
return;
}
HTMLGenerator generator = new HTMLGenerator(false);
out.println(generator.genHTML(addr));
}
示例3: doit
import sun.jvm.hotspot.debugger.Address; //导入依赖的package包/类
public void doit(Tokens t) {
if (t.countTokens() != 0) {
usage();
} else {
final PrintStream fout = out;
final HTMLGenerator gen = new HTMLGenerator(false);
CodeCacheVisitor v = new CodeCacheVisitor() {
public void prologue(Address start, Address end) {
}
public void visit(CodeBlob blob) {
fout.println(gen.genHTML(blob.contentBegin()));
}
public void epilogue() {
}
};
VM.getVM().getCodeCache().iterate(v);
}
}
示例4: parseAddress
import sun.jvm.hotspot.debugger.Address; //导入依赖的package包/类
/** From the Debugger interface via JVMDebugger */
public Address parseAddress(String addressString)
throws NumberFormatException {
long addr = utils.scanAddress(addressString);
if (addr == 0) {
return null;
}
return new BsdAddress(this, addr);
}
示例5: lookupOop
import sun.jvm.hotspot.debugger.Address; //导入依赖的package包/类
/** From the SymbolLookup interface via Debugger and JVMDebugger */
public synchronized OopHandle lookupOop(String objectName, String symbol) {
Address addr = lookup(objectName, symbol);
if (addr == null) {
return null;
}
return addr.addOffsetToAsOopHandle(0);
}
示例6: parseAddress
import sun.jvm.hotspot.debugger.Address; //导入依赖的package包/类
/** From the Debugger interface via JVMDebugger */
public Address parseAddress(String addressString)
throws NumberFormatException {
long addr = utils.scanAddress(addressString);
if (addr == 0) {
return null;
}
return new LinuxAddress(this, addr);
}
示例7: vtblForType
import sun.jvm.hotspot.debugger.Address; //导入依赖的package包/类
private Address vtblForType(Type type) {
Address vtblAddr = (Address)typeToVtbl.get(type);
if (vtblAddr == null) {
vtblAddr = vtblAccess.getVtblForType(type);
if (vtblAddr != null) {
typeToVtbl.put(type, vtblAddr);
}
}
return vtblAddr;
}
示例8: guessTypeForAddress
import sun.jvm.hotspot.debugger.Address; //导入依赖的package包/类
public Type guessTypeForAddress(Address addr) {
for (Iterator iter = getTypes(); iter.hasNext(); ) {
Type t = (Type) iter.next();
if (addressTypeIsEqualToType(addr, t)) {
return t;
}
}
return null;
}
示例9: at
import sun.jvm.hotspot.debugger.Address; //导入依赖的package包/类
private HeapRegion at(long index) {
Address arrayAddr = regionsField.getValue(addr);
// Offset of &_region[index]
long offset = index * VM.getVM().getAddressSize();
Address regionAddr = arrayAddr.getAddressAt(offset);
return (HeapRegion) VMObjectFactory.newObject(HeapRegion.class,
regionAddr);
}
示例10: fill
import sun.jvm.hotspot.debugger.Address; //导入依赖的package包/类
String fill(Address a, int width) {
String s = "0x0";
if (a != null) {
s = a.toString();
}
if (s.length() != width) {
return s.substring(0, 2) + "000000000000000000000".substring(0, width - s.length()) + s.substring(2);
}
return s;
}
示例11: decode
import sun.jvm.hotspot.debugger.Address; //导入依赖的package包/类
public static void decode(InstructionVisitor visitor, CodeBlob blob, Address begin, Address end) {
int codeSize = (int)end.minus(begin);
long startPc = VM.getAddressValue(begin);
byte[] code = new byte[codeSize];
for (int i = 0; i < code.length; i++)
code[i] = begin.getJByteAt(i);
Disassembler dis = new Disassembler(startPc, code);
dis.decode(visitor);
}
示例12: getAddressAt
import sun.jvm.hotspot.debugger.Address; //导入依赖的package包/类
protected Address getAddressAt(int index) {
if (index < 0 || index >= length()) throw new ArrayIndexOutOfBoundsException(index);
Type elemType = getElemType();
if (getElemType().isCIntegerType()) throw new RuntimeException("elemType must not be of CInteger type");
Address data = getAddress().addOffsetTo(dataFieldOffset);
long elemSize = elemType.getSize();
return data.getAddressAt(index * elemSize);
}
示例13: getIntegerAt
import sun.jvm.hotspot.debugger.Address; //导入依赖的package包/类
/**
* Gets the element at the given index.
*/
protected long getIntegerAt(int index) {
if (index < 0 || index >= length()) throw new ArrayIndexOutOfBoundsException(index + " " + length());
Type elemType = getElemType();
if (!getElemType().isCIntegerType()) throw new RuntimeException("elemType must be of CInteger type");
Address data = getAddress().addOffsetTo(dataFieldOffset);
long elemSize = elemType.getSize();
return data.getCIntegerAt(index * elemSize, elemSize, false);
}
示例14: getOopMapForReturnAddress
import sun.jvm.hotspot.debugger.Address; //导入依赖的package包/类
public ImmutableOopMap getOopMapForReturnAddress(Address returnAddress, boolean debugging) {
Address pc = returnAddress;
if (Assert.ASSERTS_ENABLED) {
Assert.that(getOopMaps() != null, "nope");
}
return getOopMaps().findMapAtOffset(pc.minus(codeBegin()), debugging);
}
示例15: MethodArray
import sun.jvm.hotspot.debugger.Address; //导入依赖的package包/类
public MethodArray(Address addr) {
super(addr, dataFieldOffset);
}