Modifier and Type | Field and Description |
---|---|
private List | |
private static final int | |
private static final int | |
private static final int | |
private Map | |
private Map | |
private BasicLineNumberMapping | |
private Map | |
private Map | |
private static final int | |
private int | |
private List |
Access | Constructor and Description |
---|---|
public |
Modifier and Type | Method and Description |
---|---|
public void | |
public void | |
public void | |
public void | |
public void | beginConstruction()
Supports lazy instantiation and references between types and symbols via insertion using arbitrary Object keys that are wrapped by LazyTypes. |
public BlockSym | debugInfoForPC(Address pc)
Implements sun. Return debug info (closest lexically-enclosing block) for current program counter. |
public void | |
public void | iterate(TypeVisitor v)
Implements sun. Iteration through all types |
public void | iterate(LineNumberVisitor v)
Implements sun. Iteration through all line number information in this database. |
public LineNumberInfo | lineNumberForPC(Address pc)
Implements sun. 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 GlobalSym | lookupSym(String name)
Implements sun. Look up global or module-local symbol by name. |
public Type | lookupType(String name)
Implements sun. Name-to-type mapping |
public Type | lookupType(String name, int cvAttributes)
Implements sun. Name-to-type mapping with const/volatile qualifications |
public void | |
private void | |
public Sym | resolveSym(Sym containingSymbol, Sym targetSym, ResolveListener listener, String detail)
Intended only to be usd by the BasicSym implementation. |
public Type | resolveType(Type containingType, Type targetType, ResolveListener listener, String detail)
Intended only to be used by the BasicType implementation. |
public Type | resolveType(Sym containingSymbol, Type targetType, ResolveListener listener, String detail)
Intended only to be usd by the BasicSym implementation. |
private BlockSym | searchBlocks(Address addr, int lowIdx, int highIdx)
Find the block whose starting address is closest to but less than the given address. |
blocks | back to summary |
---|---|
private List<BlockSym> blocks |
COMPLETE_STATE | back to summary |
---|---|
private static final int COMPLETE_STATE |
CONSTRUCTION_STATE | back to summary |
---|---|
private static final int CONSTRUCTION_STATE |
INITIALIZED_STATE | back to summary |
---|---|
private static final int INITIALIZED_STATE |
lazySymMap | back to summary |
---|---|
private Map<Object, BlockSym> lazySymMap |
lazyTypeMap | back to summary |
---|---|
private Map<Object, Type> lazyTypeMap |
lineNumbers | back to summary |
---|---|
private BasicLineNumberMapping lineNumbers |
nameToSymMap | back to summary |
---|---|
private Map<String, GlobalSym> nameToSymMap |
nameToTypeMap | back to summary |
---|---|
private Map<String, Type> nameToTypeMap |
RESOLVED_STATE | back to summary |
---|---|
private static final int RESOLVED_STATE |
state | back to summary |
---|---|
private int state |
types | back to summary |
---|---|
private List<Type> types |
BasicCDebugInfoDataBase | back to summary |
---|---|
public BasicCDebugInfoDataBase() |
addBlock | back to summary |
---|---|
public void addBlock(Object key, BlockSym block) Add a BlockSym to the debug information database. The given BlockSym may be referred to by a LazyBlockSym wrapping the given Object key, which must be non-null. Any references to other blocks (for example, the parent scope) should be made with LazyBlockSyms. These references will be resolved after the database is built. |
addGlobalSym | back to summary |
---|---|
public void addGlobalSym(GlobalSym sym) |
addLineNumberInfo | back to summary |
---|---|
public void addLineNumberInfo(BasicLineNumberInfo info) |
addType | back to summary |
---|---|
public void addType(Object lazyKey, Type type) Add a type which may later in construction be referred to via a LazyType with this key. lazyKey may be null. |
beginConstruction | back to summary |
---|---|
public void beginConstruction() Supports lazy instantiation and references between types and symbols via insertion using arbitrary Object keys that are wrapped by LazyTypes. Once the database has been fully constructed and all types are present, one should call resolveTypes(), which will resolve all LazyTypes down to concrete types (and signal an error if some lazy types were unresolved). |
debugInfoForPC | back to summary |
---|---|
public BlockSym debugInfoForPC(Address pc) Implements sun. Doc from sun. Return debug info (closest lexically-enclosing block) for current program counter. Returns null if no debug information found or available. |
endConstruction | back to summary |
---|---|
public void endConstruction() |
iterate | back to summary |
---|---|
public void iterate(TypeVisitor v) Implements sun. Doc from sun. Iteration through all types |
iterate | back to summary |
---|---|
public void iterate(LineNumberVisitor v) Implements sun. Doc from sun. Iteration through all line number information in this database. |
lineNumberForPC | back to summary |
---|---|
public LineNumberInfo lineNumberForPC(Address pc) throws DebuggerException Implements sun. Doc from sun. 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. |
lookupSym | back to summary |
---|---|
public GlobalSym lookupSym(String name) Implements sun. Doc from sun. Look up global or module-local symbol by name. FIXME: need some way to identify modules -- has not been thought through yet because it isn't clear exactly how these are represented in the Visual C++ debug info. |
lookupType | back to summary |
---|---|
public Type lookupType(String name) Implements sun. Doc from sun. Name-to-type mapping |
lookupType | back to summary |
---|---|
public Type lookupType(String name, int cvAttributes) Implements sun. Doc from sun. Name-to-type mapping with const/volatile qualifications |
resolve | back to summary |
---|---|
public void resolve(ResolveListener listener) |
resolveLazyMap | back to summary |
---|---|
private void resolveLazyMap(ResolveListener listener) |
resolveSym | back to summary |
---|---|
public Sym resolveSym(Sym containingSymbol, Sym targetSym, ResolveListener listener, String detail) Intended only to be usd by the BasicSym implementation. |
resolveType | back to summary |
---|---|
public Type resolveType(Type containingType, Type targetType, ResolveListener listener, String detail) Intended only to be used by the BasicType implementation. |
resolveType | back to summary |
---|---|
public Type resolveType(Sym containingSymbol, Type targetType, ResolveListener listener, String detail) Intended only to be usd by the BasicSym implementation. |
searchBlocks | back to summary |
---|---|
private BlockSym searchBlocks(Address addr, int lowIdx, int highIdx) Find the block whose starting address is closest to but less than the given address. |