82 }
83 cachePageSize = 4096;
84 cacheNumPages = parseCacheNumPagesProperty(cacheSize / cachePageSize);
85 unalignedAccessesOkay = false;
86 }
87
88 // Cache portion of the remote process's address space.
89 initCache(cachePageSize, cacheNumPages);
90
91 jbooleanSize = remoteDebugger.getJBooleanSize();
92 jbyteSize = remoteDebugger.getJByteSize();
93 jcharSize = remoteDebugger.getJCharSize();
94 jdoubleSize = remoteDebugger.getJDoubleSize();
95 jfloatSize = remoteDebugger.getJFloatSize();
96 jintSize = remoteDebugger.getJIntSize();
97 jlongSize = remoteDebugger.getJLongSize();
98 jshortSize = remoteDebugger.getJShortSize();
99 javaPrimitiveTypesConfigured = true;
100 narrowOopBase = remoteDebugger.getNarrowOopBase();
101 narrowOopShift = remoteDebugger.getNarrowOopShift();
102 heapOopSize = remoteDebugger.getHeapOopSize();
103 }
104 catch (RemoteException e) {
105 throw new DebuggerException(e);
106 }
107 }
108
109 public long[] getThreadIntegerRegisterSet(Address addr) {
110 try {
111 return remoteDebugger.getThreadIntegerRegisterSet(getAddressValue(addr), true);
112 }
113 catch (RemoteException e) {
114 throw new DebuggerException(e);
115 }
116 }
117
118 public long[] getThreadIntegerRegisterSet(long id) {
119 try {
120 return remoteDebugger.getThreadIntegerRegisterSet(id, false);
121 }
122 catch (RemoteException e) {
299
300 public long getAddressValue(Address addr) throws DebuggerException {
301 if (addr == null) return 0;
302 return ((RemoteAddress) addr).getValue();
303 }
304
305 public Address newAddress(long value) {
306 if (value == 0) return null;
307 return new RemoteAddress(this, value);
308 }
309
310 RemoteAddress readAddress(long address)
311 throws UnmappedAddressException, UnalignedAddressException {
312 long value = readAddressValue(address);
313 return (value == 0 ? null : new RemoteAddress(this, value));
314 }
315
316 RemoteAddress readCompOopAddress(long address)
317 throws UnmappedAddressException, UnalignedAddressException {
318 long value = readCompOopAddressValue(address);
319 return (value == 0 ? null : new RemoteAddress(this, value));
320 }
321
322 RemoteOopHandle readOopHandle(long address)
323 throws UnmappedAddressException, UnalignedAddressException, NotInHeapException {
324 long value = readAddressValue(address);
325 return (value == 0 ? null : new RemoteOopHandle(this, value));
326 }
327
328 RemoteOopHandle readCompOopHandle(long address)
329 throws UnmappedAddressException, UnalignedAddressException, NotInHeapException {
330 long value = readCompOopAddressValue(address);
331 return (value == 0 ? null : new RemoteOopHandle(this, value));
332 }
333
334 boolean areThreadsEqual(Address addr1, Address addr2) {
335 try {
336 return remoteDebugger.areThreadsEqual(getAddressValue(addr1), true,
337 getAddressValue(addr2), true);
338 } catch (RemoteException e) {
|
82 }
83 cachePageSize = 4096;
84 cacheNumPages = parseCacheNumPagesProperty(cacheSize / cachePageSize);
85 unalignedAccessesOkay = false;
86 }
87
88 // Cache portion of the remote process's address space.
89 initCache(cachePageSize, cacheNumPages);
90
91 jbooleanSize = remoteDebugger.getJBooleanSize();
92 jbyteSize = remoteDebugger.getJByteSize();
93 jcharSize = remoteDebugger.getJCharSize();
94 jdoubleSize = remoteDebugger.getJDoubleSize();
95 jfloatSize = remoteDebugger.getJFloatSize();
96 jintSize = remoteDebugger.getJIntSize();
97 jlongSize = remoteDebugger.getJLongSize();
98 jshortSize = remoteDebugger.getJShortSize();
99 javaPrimitiveTypesConfigured = true;
100 narrowOopBase = remoteDebugger.getNarrowOopBase();
101 narrowOopShift = remoteDebugger.getNarrowOopShift();
102 narrowKlassBase = remoteDebugger.getNarrowKlassBase();
103 narrowKlassShift = remoteDebugger.getNarrowKlassShift();
104 heapOopSize = remoteDebugger.getHeapOopSize();
105 klassPtrSize = remoteDebugger.getKlassPtrSize();
106 }
107 catch (RemoteException e) {
108 throw new DebuggerException(e);
109 }
110 }
111
112 public long[] getThreadIntegerRegisterSet(Address addr) {
113 try {
114 return remoteDebugger.getThreadIntegerRegisterSet(getAddressValue(addr), true);
115 }
116 catch (RemoteException e) {
117 throw new DebuggerException(e);
118 }
119 }
120
121 public long[] getThreadIntegerRegisterSet(long id) {
122 try {
123 return remoteDebugger.getThreadIntegerRegisterSet(id, false);
124 }
125 catch (RemoteException e) {
302
303 public long getAddressValue(Address addr) throws DebuggerException {
304 if (addr == null) return 0;
305 return ((RemoteAddress) addr).getValue();
306 }
307
308 public Address newAddress(long value) {
309 if (value == 0) return null;
310 return new RemoteAddress(this, value);
311 }
312
313 RemoteAddress readAddress(long address)
314 throws UnmappedAddressException, UnalignedAddressException {
315 long value = readAddressValue(address);
316 return (value == 0 ? null : new RemoteAddress(this, value));
317 }
318
319 RemoteAddress readCompOopAddress(long address)
320 throws UnmappedAddressException, UnalignedAddressException {
321 long value = readCompOopAddressValue(address);
322 return (value == 0 ? null : new RemoteAddress(this, value));
323 }
324
325 RemoteAddress readCompKlassAddress(long address)
326 throws UnmappedAddressException, UnalignedAddressException {
327 long value = readCompKlassAddressValue(address);
328 return (value == 0 ? null : new RemoteAddress(this, value));
329 }
330
331 RemoteOopHandle readOopHandle(long address)
332 throws UnmappedAddressException, UnalignedAddressException, NotInHeapException {
333 long value = readAddressValue(address);
334 return (value == 0 ? null : new RemoteOopHandle(this, value));
335 }
336
337 RemoteOopHandle readCompOopHandle(long address)
338 throws UnmappedAddressException, UnalignedAddressException, NotInHeapException {
339 long value = readCompOopAddressValue(address);
340 return (value == 0 ? null : new RemoteOopHandle(this, value));
341 }
342
343 boolean areThreadsEqual(Address addr1, Address addr2) {
344 try {
345 return remoteDebugger.areThreadsEqual(getAddressValue(addr1), true,
346 getAddressValue(addr2), true);
347 } catch (RemoteException e) {
|