APIdia Launch Partner
Top Description Fields Constructors Methods
sun.jvm.hotspot.debugger.windbg

public Class DLL

extends Object
implements LoadObject
Class Inheritance
All Implemented Interfaces
sun.jvm.hotspot.debugger.cdbg.LoadObject
Imports
sun.jvm.hotspot.debugger.*, sun.jvm.hotspot.debugger.win32.coff.*, sun.jvm.hotspot.debugger.cdbg.*, sun.jvm.hotspot.utilities.Assert, sun.jvm.hotspot.utilities.memo.*

Provides a simple wrapper around the COFF library which handles relocation. A DLL can represent either a DLL or an EXE file.

Field Summary

Modifier and TypeField and Description
private Address
private CDebugInfoDataBase
private WindbgDebugger
private MemoizedObject
private String
private long

Constructor Summary

AccessConstructor and Description
public
DLL(WindbgDebugger dbg, String filename, long size, Address relocation)

public
DLL(Address base)

This constructor was originally used to fetch the DLL's name out of the target process to match it up with the known DLL names, before the fetching of the DLL names and bases was folded into one command.

Method Summary

Modifier and TypeMethod and Description
public void
public ClosestSymbol
closestSymbolToPC(Address pcAsAddr)

Implements sun.jvm.hotspot.debugger.cdbg.LoadObject.closestSymbolToPC.

Fetch the name of the closest exported symbol and the distance of the PC to that symbol.

public BlockSym
debugInfoForPC(Address pc)

Implements sun.jvm.hotspot.debugger.cdbg.LoadObject.debugInfoForPC.

Get debug information for the given program counter.

public Address
getBase()

Implements sun.jvm.hotspot.debugger.cdbg.LoadObject.getBase.

Base address at which this loadobject was relocated at run-time

public CDebugInfoDataBase
getDebugInfoDataBase()

Implements sun.jvm.hotspot.debugger.cdbg.LoadObject.getDebugInfoDataBase.

Returns a debug info database for this loadobject if debug info is present; otherwise, returns null.

private ExportDirectoryTable
private COFFFile
public String
getName()

Implements sun.jvm.hotspot.debugger.cdbg.LoadObject.getName.

Returns the full path name of this DLL/EXE, or null if this DLL object was created by parsing the target process's address space.

public long
getSize()

Implements sun.jvm.hotspot.debugger.cdbg.LoadObject.getSize.

Size of the loadobject in bytes (determines the range of program counters and data contained within this loadobject)

public boolean
isDLL()

Indicates whether this is really a DLL or actually a .EXE file.

public LineNumberInfo
lineNumberForPC(Address pc)

Implements sun.jvm.hotspot.debugger.cdbg.LoadObject.lineNumberForPC.

Returns line number information for the given PC, including source file name (not specified whether this is an absolute or relative path) and start and end PCs for this line.

public Address
lookupSymbol(String symbol)

Look up a symbol; returns absolute address or null if symbol was not found.

private Address
lookupSymbol(String symbol, ExportDirectoryTable exports, int loIdx, int hiIdx)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

addrback to summary
private Address addr
dbback to summary
private CDebugInfoDataBase db
dbgback to summary
private WindbgDebugger dbg
fileback to summary
private MemoizedObject file
fullPathNameback to summary
private String fullPathName
sizeback to summary
private long size

Constructor Detail

DLLback to summary
public DLL(WindbgDebugger dbg, String filename, long size, Address relocation) throws COFFException
DLLback to summary
public DLL(Address base) throws COFFException

This constructor was originally used to fetch the DLL's name out of the target process to match it up with the known DLL names, before the fetching of the DLL names and bases was folded into one command. It is no longer used. If it is used, getName() will return null and getSize() will return 0.

Method Detail

closeback to summary
public void close()
closestSymbolToPCback to summary
public ClosestSymbol closestSymbolToPC(Address pcAsAddr) throws DebuggerException

Implements sun.jvm.hotspot.debugger.cdbg.LoadObject.closestSymbolToPC.

Doc from sun.jvm.hotspot.debugger.cdbg.LoadObject.closestSymbolToPC.

Fetch the name of the closest exported symbol and the distance of the PC to that symbol. Returns null if the PC was not within this loadobject or if a symbol could not be found before this PC. FIXME: specify whether this is mangled/demangled.

debugInfoForPCback to summary
public BlockSym debugInfoForPC(Address pc) throws DebuggerException

Implements sun.jvm.hotspot.debugger.cdbg.LoadObject.debugInfoForPC.

Doc from sun.jvm.hotspot.debugger.cdbg.LoadObject.debugInfoForPC.

Get debug information for the given program counter. PC must be contained within this loadobject or a DebuggerException is thrown. Returns null if there is no debug information available (i.e., because this is not a debug build).

getBaseback to summary
public Address getBase()

Implements sun.jvm.hotspot.debugger.cdbg.LoadObject.getBase.

Doc from sun.jvm.hotspot.debugger.cdbg.LoadObject.getBase.

Base address at which this loadobject was relocated at run-time

getDebugInfoDataBaseback to summary
public CDebugInfoDataBase getDebugInfoDataBase() throws DebuggerException

Implements sun.jvm.hotspot.debugger.cdbg.LoadObject.getDebugInfoDataBase.

Doc from sun.jvm.hotspot.debugger.cdbg.LoadObject.getDebugInfoDataBase.

Returns a debug info database for this loadobject if debug info is present; otherwise, returns null.

getExportDirectoryTableback to summary
private ExportDirectoryTable getExportDirectoryTable()
getFileback to summary
private COFFFile getFile()
getNameback to summary
public String getName()

Implements sun.jvm.hotspot.debugger.cdbg.LoadObject.getName.

Returns the full path name of this DLL/EXE, or null if this DLL object was created by parsing the target process's address space.

getSizeback to summary
public long getSize()

Implements sun.jvm.hotspot.debugger.cdbg.LoadObject.getSize.

Doc from sun.jvm.hotspot.debugger.cdbg.LoadObject.getSize.

Size of the loadobject in bytes (determines the range of program counters and data contained within this loadobject)

isDLLback to summary
public boolean isDLL()

Indicates whether this is really a DLL or actually a .EXE file.

lineNumberForPCback to summary
public LineNumberInfo lineNumberForPC(Address pc) throws DebuggerException

Implements sun.jvm.hotspot.debugger.cdbg.LoadObject.lineNumberForPC.

Doc from sun.jvm.hotspot.debugger.cdbg.LoadObject.lineNumberForPC.

Returns line number information for the given PC, including source file name (not specified whether this is an absolute or relative path) and start and end PCs for this line. Returns null if no line number information is available or if the given PC is not in this loadobject.

lookupSymbolback to summary
public Address lookupSymbol(String symbol) throws COFFException

Look up a symbol; returns absolute address or null if symbol was not found.

lookupSymbolback to summary
private Address lookupSymbol(String symbol, ExportDirectoryTable exports, int loIdx, int hiIdx)