ProcDebugger.java revision 9883:903a2e023ffb
1/*
2 * Copyright (c) 2002, 2008, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25package sun.jvm.hotspot.debugger.proc;
26
27import java.util.List;
28import sun.jvm.hotspot.debugger.*;
29import sun.jvm.hotspot.debugger.cdbg.*;
30
31/** An extension of the JVMDebugger interface with a few additions to
32    support 32-bit vs. 64-bit debugging as well as features required
33    by the architecture-specific subpackages. */
34
35public interface ProcDebugger extends JVMDebugger {
36  public MachineDescription getMachineDescription() throws DebuggerException;
37  public String       addressValueToString(long address) throws DebuggerException;
38  public boolean      readJBoolean(long address) throws DebuggerException;
39  public byte         readJByte(long address) throws DebuggerException;
40  public char         readJChar(long address) throws DebuggerException;
41  public double       readJDouble(long address) throws DebuggerException;
42  public float        readJFloat(long address) throws DebuggerException;
43  public int          readJInt(long address) throws DebuggerException;
44  public long         readJLong(long address) throws DebuggerException;
45  public short        readJShort(long address) throws DebuggerException;
46  public long         readCInteger(long address, long numBytes, boolean isUnsigned)
47    throws DebuggerException;
48  public ProcAddress   readAddress(long address) throws DebuggerException;
49  public ProcAddress   readCompOopAddress(long address) throws DebuggerException;
50  public ProcAddress   readCompKlassAddress(long address) throws DebuggerException;
51  public ProcOopHandle readOopHandle(long address) throws DebuggerException;
52  public ProcOopHandle readCompOopHandle(long address) throws DebuggerException;
53  public long[]       getThreadIntegerRegisterSet(int tid) throws DebuggerException;
54  public long         getAddressValue(Address addr) throws DebuggerException;
55  public Address      newAddress(long value) throws DebuggerException;
56
57  // for ProcCDebugger, ProcCFrame and SharedObject
58  public List          getThreadList() throws DebuggerException;
59  public List          getLoadObjectList() throws DebuggerException;
60  public CFrame        topFrameForThread(ThreadProxy thread) throws DebuggerException;
61  public ClosestSymbol lookup(long address) throws DebuggerException;
62  public String        demangle(String name);
63}
64