blob: 17a81f8b154608cd495f98c3c70dd83e9654f885 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Target Communication Framework Services - Symbols</title>
</head>
<body lang='EN-US'>
<h1>Target Communication Framework Services - Symbols</h1>
<ul>
<li><a href='#VersionHistory'>Version History</a>
<li><a href='#Overview'>Overview</a>
<li><a href='#Cmds'>Commands</a>
<li><a href='#API'>API</a>
</ul>
<h1>Symbols Service</h1>
<h2><a name='VersionHistory'>Version History</a></h2>
<table border=1 cellpadding=8>
<tr>
<th>Version
<th>Date
<th>Change
<tr>
<td>1.0
<td>2011-11-11
<td>Initial
</table>
<h2><a name='Overview'>Overview</a></h2>
<p><font color=#FF7000>TBD</font></p>
<p>The service uses standard format for error reports,
see <a href='TCF Error Report Format.html'>Error Report Format</a>.</p>
<h2><a name='Cmds'>Commands</a></h2>
<p><font color=#FF7000>TBD</font></p>
<h2><a name='API'>API</a></h2>
<pre>
<font color=#3F5FBF>/**
* TCF symbols service interface.
*
* <font color=#7F9FBF>@noimplement</font> This interface is not intended to be implemented by clients.
*/</font>
<font color=#7F0055>public interface</font> ISymbols <font color=#7F0055>extends</font> IService {
<font color=#3F5FBF>/**
* This service name, as it appears on the wire - a TCF name of the service.
*/</font>
<font color=#7F0055>static final</font> String NAME = "Symbols";
enum SymbolClass {
unknown, // unknown symbol class
value, // constant value
reference, // variable data object
function, // function body
type, // a type
comp_unit, // compilation unit
block, // lexical block
namespace, // C++ namespace
<font color=#3F5FBF>/** <font color=#7F9FBF>@since</font> 1.3 */</font>
variant_part, // a variant part of a structure
<font color=#3F5FBF>/** <font color=#7F9FBF>@since</font> 1.3 */</font>
variant // a member of a variant part of a structure
}
enum TypeClass {
unknown, // unknown type class
cardinal, // unsigned integer
integer, // signed integer
real, // float, double
pointer, // pointer to anything.
array, // array of anything.
composite, // struct, union, or class.
enumeration, // enumeration type.
function, // function type.
member_pointer, // pointer to member type
<font color=#3F5FBF>/** <font color=#7F9FBF>@since</font> 1.3 */</font>
complex // complex float
}
<font color=#7F0055>static final int</font>
SYM_FLAG_PARAMETER = 0x00000001,
SYM_FLAG_TYPEDEF = 0x00000002,
SYM_FLAG_CONST_TYPE = 0x00000004,
SYM_FLAG_PACKET_TYPE = 0x00000008,
SYM_FLAG_SUBRANGE_TYPE = 0x00000010,
SYM_FLAG_VOLATILE_TYPE = 0x00000020,
SYM_FLAG_RESTRICT_TYPE = 0x00000040,
SYM_FLAG_UNION_TYPE = 0x00000080,
SYM_FLAG_CLASS_TYPE = 0x00000100,
SYM_FLAG_INTERFACE_TYPE = 0x00000200,
SYM_FLAG_SHARED_TYPE = 0x00000400,
SYM_FLAG_REFERENCE = 0x00000800,
SYM_FLAG_BIG_ENDIAN = 0x00001000,
SYM_FLAG_LITTLE_ENDIAN = 0x00002000,
SYM_FLAG_OPTIONAL = 0x00004000,
SYM_FLAG_EXTERNAL = 0x00008000,
SYM_FLAG_VARARG = 0x00010000,
SYM_FLAG_ARTIFICIAL = 0x00020000,
SYM_FLAG_TYPE_PARAMETER = 0x00040000,
SYM_FLAG_PRIVATE = 0x00080000,
SYM_FLAG_PROTECTED = 0x00100000,
SYM_FLAG_PUBLIC = 0x00200000,
SYM_FLAG_ENUM_TYPE = 0x00400000,
SYM_FLAG_STRUCT_TYPE = 0x00800000,
SYM_FLAG_STRING_TYPE = 0x01000000,
SYM_FLAG_INHERITANCE = 0x02000000;
<font color=#3F5FBF>/** <font color=#7F9FBF>@since</font> 1.3 */</font>
<font color=#7F0055>static final int</font>
SYM_FLAG_BOOL_TYPE = 0x04000000,
SYM_FLAG_INDIRECT = 0x08000000,
SYM_FLAG_RVALUE = 0x10000000;
<font color=#3F5FBF>/**
* Symbol context interface.
* <font color=#7F9FBF>@noimplement</font> This interface is not intended to be implemented by clients.
*/</font>
<font color=#7F0055>interface</font> Symbol {
<font color=#3F5FBF>/**
* Get symbol ID.
* <font color=#7F9FBF>@return</font> symbol ID.
*/</font>
String getID();
<font color=#3F5FBF>/**
* Get symbol owner ID.
* The owner can be a thread or memory space (process).
* Certain changes in owner state can invalidate cached symbol properties,
* see getUpdatePolicy() and UPDATE_*.
*/</font>
String getOwnerID();
<font color=#3F5FBF>/**
* Get symbol properties update policy ID.
* Symbol properties can change during program execution.
* If a client wants to cache symbols, it should invalidate cached data
* according to update policies of cached symbols.
* <font color=#7F9FBF>@return</font> symbol update policy ID, see UPDATE_*
*/</font>
<font color=#7F0055>int</font> getUpdatePolicy();
<font color=#3F5FBF>/**
* Get symbol name.
* <font color=#7F9FBF>@return</font> symbol name or null.
*/</font>
String getName();
<font color=#3F5FBF>/**
* Get symbol class.
* <font color=#7F9FBF>@return</font> symbol class.
*/</font>
SymbolClass getSymbolClass();
<font color=#3F5FBF>/**
* Get symbol type class.
* <font color=#7F9FBF>@return</font> type class.
*/</font>
TypeClass getTypeClass();
<font color=#3F5FBF>/**
* Get type ID.
* If the symbol is a type and not a 'typedef', return same as getID().
* <font color=#7F9FBF>@return</font> type ID.
*/</font>
String getTypeID();
<font color=#3F5FBF>/**
* Get base type ID.
* If this symbol is a
* pointer type - return pointed type;
* array type - return element type;
* function type - return function result type;
* otherwise return null.
* <font color=#7F9FBF>@return</font> type ID.
*/</font>
String getBaseTypeID();
<font color=#3F5FBF>/**
* Get index type ID.
* If this symbol is a
* array type - return array index type;
* otherwise return null.
* <font color=#7F9FBF>@return</font> type ID.
*/</font>
String getIndexTypeID();
<font color=#3F5FBF>/**
* Get container type ID.
* If this symbol is a
* field or member - return containing class type;
* member pointer - return containing class type;
* otherwise return null.
* <font color=#7F9FBF>@return</font> type ID.
*/</font>
String getContainerID();
<font color=#3F5FBF>/**
* Return value size of the symbol (or type).
* <font color=#7F9FBF>@return</font> size in bytes.
*/</font>
<font color=#7F0055>int</font> getSize();
<font color=#3F5FBF>/**
* If symbol is an array type - return number of elements.
* <font color=#7F9FBF>@return</font> number of elements.
*/</font>
<font color=#7F0055>int</font> getLength();
<font color=#3F5FBF>/**
* If symbol is an array type - return array index lower bound.
* <font color=#7F9FBF>@return</font> lower bound.
*/</font>
Number getLowerBound();
<font color=#3F5FBF>/**
* If symbol is an array type - return array index upper bound.
* <font color=#7F9FBF>@return</font> upper bound.
*/</font>
Number getUpperBound();
<font color=#3F5FBF>/**
* If symbol is an array type - return array stride in bits.
* <font color=#7F9FBF>@return</font> stride in bits.
* <font color=#7F9FBF>@since</font> 1.3
*/</font>
Number getBitStride();
<font color=#3F5FBF>/**
* Return offset from 'this' for member of class, struct or union.
* <font color=#7F9FBF>@return</font> offset in bytes.
*/</font>
<font color=#7F0055>int</font> getOffset();
<font color=#3F5FBF>/**
* Return address of the symbol.
* <font color=#7F9FBF>@return</font> address or null.
*/</font>
Number getAddress();
<font color=#3F5FBF>/**
* If symbol is a constant object, return its value.
* <font color=#7F9FBF>@return</font> symbol value as array of bytes.
*/</font>
<font color=#7F0055>byte</font>[] getValue();
<font color=#3F5FBF>/**
* Get symbol values endianness.
* Only valid when getValue() != null.
* Note: this is endianness of byte array returned by getValue() method,
* and it can be different from endianness of the symbol itself,
* which is reported by SYM_FLAG_BIG_ENDIAN/SYM_FLAG_LITTLE_ENDIAN.
* <font color=#7F9FBF>@return</font> true if symbol value is big-endian.
*/</font>
<font color=#7F0055>boolean</font> isBigEndian();
<font color=#3F5FBF>/**
* Return register ID if the symbol represents a register variable.
* <font color=#7F9FBF>@return</font> register ID or null.
*/</font>
String getRegisterID();
<font color=#3F5FBF>/**
* Return symbol flags, see SYM_FLAG_*.
* <font color=#7F9FBF>@return</font> bit set of symbol flags.
*/</font>
<font color=#7F0055>int</font> getFlags();
<font color=#3F5FBF>/**
* Get value of the given flag.
* <font color=#7F9FBF>@param</font> flag - one of SYM_FLAG_*.
* <font color=#7F9FBF>@return</font> the flag value.
*/</font>
<font color=#7F0055>boolean</font> getFlag(<font color=#7F0055>int</font> flag);
<font color=#3F5FBF>/**
* Get complete map of context properties.
* <font color=#7F9FBF>@return</font> map of context properties.
*/</font>
Map&lt;String,Object&gt; getProperties();
}
<font color=#3F5FBF>/**
* Symbol context property names.
*/</font>
<font color=#7F0055>static final</font> String
PROP_ID = "ID",
PROP_OWNER_ID = "OwnerID",
PROP_UPDATE_POLICY = "UpdatePolicy",
PROP_NAME = "Name",
PROP_SYMBOL_CLASS = "Class",
PROP_TYPE_CLASS = "TypeClass",
PROP_TYPE_ID = "TypeID",
PROP_BASE_TYPE_ID = "BaseTypeID",
PROP_INDEX_TYPE_ID = "IndexTypeID",
PROP_CONTAINER_ID = "ContainerID",
PROP_SIZE = "Size",
PROP_LENGTH = "Length",
PROP_LOWER_BOUND = "LowerBound",
PROP_UPPER_BOUND = "UpperBound",
PROP_OFFSET = "Offset",
PROP_ADDRESS = "Address",
PROP_VALUE = "Value",
PROP_BIG_ENDIAN = "BigEndian",
PROP_REGISTER = "Register",
PROP_FLAGS = "Flags";
<font color=#3F5FBF>/** <font color=#7F9FBF>@since</font> 1.3 */</font>
<font color=#7F0055>static final</font> String
PROP_BIT_STRIDE = "BitStride",
PROP_BINARY_SCALE = "BinaryScale",
PROP_DECIMAL_SCALE = "DecimalScale";
<font color=#3F5FBF>/**
* Symbol context properties update policies.
*/</font>
<font color=#7F0055>static final int</font>
<font color=#3F5FBF>/**
* Update policy "Memory Map": symbol properties become invalid when
* memory map changes - when modules are loaded or unloaded.
* Symbol OwnerID indicates memory space (process) that is invalidation events source.
* Most static variables and types have this update policy.
*/</font>
UPDATE_ON_MEMORY_MAP_CHANGES = 0,
<font color=#3F5FBF>/**
* Update policy "Execution State": symbol properties become invalid when
* execution state changes - a thread is suspended, resumed or exited.
* Symbol OwnerID indicates executable context (thread) that is invalidation events source.
* Most stack (auto) variables have this update policy.
*/</font>
UPDATE_ON_EXE_STATE_CHANGES = 1;
<font color=#3F5FBF>/**
* Retrieve symbol context info for given symbol ID.
* @see Symbol
*
* <font color=#7F9FBF>@param</font> id - symbol context ID.
* <font color=#7F9FBF>@param</font> done - call back interface called when operation is completed.
* <font color=#7F9FBF>@return</font> - pending command handle.
*/</font>
IToken getContext(String id, DoneGetContext done);
<font color=#3F5FBF>/**
* Client call back interface for getContext().
*/</font>
<font color=#7F0055>interface</font> DoneGetContext {
<font color=#3F5FBF>/**
* Called when context data retrieval is done.
* <font color=#7F9FBF>@param</font> token - command handle
* <font color=#7F9FBF>@param</font> error - error description if operation failed, null if succeeded.
* <font color=#7F9FBF>@param</font> context - context properties.
*/</font>
<font color=#7F0055>void</font> doneGetContext(IToken token, Exception error, Symbol context);
}
<font color=#3F5FBF>/**
* Retrieve children IDs for given parent ID.
* Meaning of the operation depends on parent kind:
* 1. struct, union, or class type - get fields;
* 2. enumeration type - get enumerators;
*
* <font color=#7F9FBF>@param</font> parent_context_id - parent symbol context ID.
* <font color=#7F9FBF>@param</font> done - call back interface called when operation is completed.
* <font color=#7F9FBF>@return</font> - pending command handle.
*/</font>
IToken getChildren(String parent_context_id, DoneGetChildren done);
<font color=#3F5FBF>/**
* Client call back interface for getChildren().
*/</font>
<font color=#7F0055>interface</font> DoneGetChildren {
<font color=#3F5FBF>/**
* Called when context list retrieval is done.
* <font color=#7F9FBF>@param</font> token - command handle
* <font color=#7F9FBF>@param</font> error - error description if operation failed, null if succeeded.
* <font color=#7F9FBF>@param</font> context_ids - array of available context IDs.
*/</font>
<font color=#7F0055>void</font> doneGetChildren(IToken token, Exception error, String[] context_ids);
}
<font color=#3F5FBF>/**
* Search symbol with given name in given context.
* Return first symbol that matches.
* The context can be memory space, process, thread or stack frame.
*
* <font color=#7F9FBF>@param</font> context_id - a search scope.
* <font color=#7F9FBF>@param</font> ip - instruction pointer - ignored if context_id is a stack frame ID
* <font color=#7F9FBF>@param</font> name - symbol name.
* <font color=#7F9FBF>@param</font> done - call back interface called when operation is completed.
* <font color=#7F9FBF>@return</font> - pending command handle.
*/</font>
IToken find(String context_id, Number ip, String name, DoneFind done);
<font color=#3F5FBF>/**
* Search symbol with given name in given context.
* Return all symbol that matches, starting with current scope and going up to compilation unit global scope.
* The context can be memory space, process, thread or stack frame.
*
* <font color=#7F9FBF>@param</font> context_id - a search scope.
* <font color=#7F9FBF>@param</font> ip - instruction pointer - ignored if context_id is a stack frame ID
* <font color=#7F9FBF>@param</font> name - symbol name.
* <font color=#7F9FBF>@param</font> done - call back interface called when operation is completed.
* <font color=#7F9FBF>@return</font> - pending command handle.
*/</font>
IToken findByName(String context_id, Number ip, String name, DoneFindAll done);
<font color=#3F5FBF>/**
* Search symbol with given address in given context.
* Return first matching symbol.
* The context can be memory space, process, thread or stack frame.
*
* <font color=#7F9FBF>@param</font> context_id - a search scope.
* <font color=#7F9FBF>@param</font> addr - symbol address.
* <font color=#7F9FBF>@param</font> done - call back interface called when operation is completed.
* <font color=#7F9FBF>@return</font> - pending command handle.
*/</font>
IToken findByAddr(String context_id, Number addr, DoneFind done);
<font color=#3F5FBF>/**
* Search symbol with given address in given context.
* Return all matching symbols.
* The context can be memory space, process, thread or stack frame.
*
* <font color=#7F9FBF>@param</font> context_id - a search scope.
* <font color=#7F9FBF>@param</font> addr - symbol address.
* <font color=#7F9FBF>@param</font> done - call back interface called when operation is completed.
* <font color=#7F9FBF>@return</font> - pending command handle.
* <font color=#7F9FBF>@since</font> 1.3
*/</font>
IToken findByAddr(String context_id, Number addr, DoneFindAll done);
<font color=#3F5FBF>/**
* Search symbol with given address in given context.
* The context can be memory space, process, thread or stack frame.
*
* <font color=#7F9FBF>@param</font> context_id - a search scope.
* <font color=#7F9FBF>@param</font> ip - instruction pointer - ignored if context_id is a stack frame ID
* <font color=#7F9FBF>@param</font> scope_id - a symbols ID of visibility scope.
* <font color=#7F9FBF>@param</font> name - symbol name.
* <font color=#7F9FBF>@param</font> done - call back interface called when operation is completed.
* <font color=#7F9FBF>@return</font> - pending command handle.
*/</font>
IToken findInScope(String context_id, Number ip, String scope_id, String name, DoneFindAll done);
<font color=#3F5FBF>/**
* Client call back interface for find() and findByAddr().
*/</font>
<font color=#7F0055>interface</font> DoneFind {
<font color=#3F5FBF>/**
* Called when symbol search is done.
* <font color=#7F9FBF>@param</font> token - command handle.
* <font color=#7F9FBF>@param</font> error - error description if operation failed, null if succeeded.
* <font color=#7F9FBF>@param</font> symbol_id - symbol ID.
*/</font>
<font color=#7F0055>void</font> doneFind(IToken token, Exception error, String symbol_id);
}
<font color=#3F5FBF>/**
* Client call back interface for findByName(), findInScope() and findByAddr().
*/</font>
<font color=#7F0055>interface</font> DoneFindAll {
<font color=#3F5FBF>/**
* Called when symbol search is done.
* <font color=#7F9FBF>@param</font> token - command handle.
* <font color=#7F9FBF>@param</font> error - error description if operation failed, null if succeeded.
* <font color=#7F9FBF>@param</font> symbol_id - symbol ID.
*/</font>
<font color=#7F0055>void</font> doneFind(IToken token, Exception error, String[] symbol_ids);
}
<font color=#3F5FBF>/**
* List all symbols in given context.
* The context can be a stack frame.
*
* <font color=#7F9FBF>@param</font> context_id - a scope.
* <font color=#7F9FBF>@param</font> done - call back interface called when operation is completed.
* <font color=#7F9FBF>@return</font> - pending command handle.
*/</font>
IToken list(String context_id, DoneList done);
<font color=#3F5FBF>/**
* Client call back interface for list().
*/</font>
<font color=#7F0055>interface</font> DoneList {
<font color=#3F5FBF>/**
* Called when symbol list retrieval is done.
* <font color=#7F9FBF>@param</font> token - command handle.
* <font color=#7F9FBF>@param</font> error - error description if operation failed, null if succeeded.
* <font color=#7F9FBF>@param</font> symbol_ids - array of symbol IDs.
*/</font>
<font color=#7F0055>void</font> doneList(IToken token, Exception error, String[] symbol_ids);
}
<font color=#3F5FBF>/***********************************************************************************************/
<font color=#3F5FBF>/**
* Command codes that used to calculate frame pointer and register values during stack tracing.
*/</font>
<font color=#7F0055>static final int</font>
<font color=#3F5FBF>/** Load a number to the evaluation stack. Command argument is the number. */</font>
CMD_NUMBER = 1,
<font color=#3F5FBF>/** Load a register value to the evaluation stack. Command argument is the register ID. */</font>
CMD_RD_REG = 2,
<font color=#3F5FBF>/** Load frame address to the evaluation stack. */</font>
CMD_FP = 3,
<font color=#3F5FBF>/** Read memory at address on the top of the evaluation stack. Command arguments are
* the value size (Number) and endianness (Boolean, false - little-endian, true - big-endian). */</font>
CMD_RD_MEM = 4,
<font color=#3F5FBF>/** Integer arithmetic and bit-wise <font color=#7F0055>boolean</font> operations */</font>
CMD_ADD = 5,
CMD_SUB = 6,
CMD_MUL = 7,
CMD_DIV = 8,
CMD_AND = 9,
CMD_OR = 10,
CMD_XOR = 11,
CMD_NEG = 12,
CMD_GE = 13,
CMD_GT = 14,
CMD_LE = 15,
CMD_LT = 16,
CMD_SHL = 17,
CMD_SHR = 18,
<font color=#3F5FBF>/** Load expression argument to evaluation stack. */</font>
CMD_ARG = 19,
<font color=#3F5FBF>/** Evaluate DWARF location expression. Command arguments are byte array of
* DWARF expression instructions and an object that contains evaluation parameters. */</font>
CMD_LOCATION = 20,
CMD_FCALL = 21,
CMD_WR_REG = 22,
CMD_WR_MEM = 23,
CMD_PIECE = 24;
<font color=#3F5FBF>/**
* @deprecated
*/</font>
<font color=#7F0055>static final int</font>
CMD_REGISTER = 2,
CMD_DEREF = 4;
<font color=#3F5FBF>/**
* Symbol location properties.
*/</font>
<font color=#7F0055>static final</font> String
<font color=#3F5FBF>/** Number, start address of code range where the location info is valid, or null if it is valid everywhere */</font>
LOC_CODE_ADDR = "CodeAddr",
<font color=#3F5FBF>/** Number, size in bytes of code range where the location info is valid, or null if it is valid everywhere */</font>
LOC_CODE_SIZE = "CodeSize",
<font color=#3F5FBF>/** Number, number of argument required to execute location instructions */</font>
LOC_ARG_CNT = "ArgCnt",
<font color=#3F5FBF>/** List, instructions to compute object value location, e.g. address, or offset, or register ID, etc. */</font>
LOC_VALUE_CMDS = "ValueCmds",
<font color=#3F5FBF>/** List, instructions to compute dynamic array length location */</font>
LOC_LENGTH_CMDS = "LengthCmds";
<font color=#3F5FBF>/**
* Retrieve symbol location information.
* <font color=#7F9FBF>@param</font> symbol_id - symbol ID.
* <font color=#7F9FBF>@param</font> done - call back interface called when operation is completed.
* <font color=#7F9FBF>@return</font> - pending command handle.
*/</font>
IToken getLocationInfo(String symbol_id, DoneGetLocationInfo done);
<font color=#3F5FBF>/**
* Client call back interface for getLocationInfo().
*/</font>
<font color=#7F0055>interface</font> DoneGetLocationInfo {
<font color=#3F5FBF>/**
* Called when location information retrieval is done.
* <font color=#7F9FBF>@param</font> token - command handle.
* <font color=#7F9FBF>@param</font> error - error description if operation failed, null if succeeded.
* <font color=#7F9FBF>@param</font> props - symbol location properties, see LOC_*.
*/</font>
<font color=#7F0055>void</font> doneGetLocationInfo(IToken token, Exception error, Map&lt;String,Object&gt; props);
}
<font color=#3F5FBF>/**
* Retrieve stack tracing commands for given instruction address in a context memory.
* <font color=#7F9FBF>@param</font> context_id - executable context ID.
* <font color=#7F9FBF>@param</font> address - instruction address.
* <font color=#7F9FBF>@param</font> done - call back interface called when operation is completed.
* <font color=#7F9FBF>@return</font> - pending command handle.
*/</font>
IToken findFrameInfo(String context_id, Number address, DoneFindFrameInfo done);
<font color=#3F5FBF>/**
* Client call back interface for findFrameInfo().
*/</font>
<font color=#7F0055>interface</font> DoneFindFrameInfo {
<font color=#3F5FBF>/**
* Called when stack tracing information retrieval is done.
* <font color=#7F9FBF>@param</font> token - command handle.
* <font color=#7F9FBF>@param</font> error - error description if operation failed, null if succeeded.
* <font color=#7F9FBF>@param</font> address - start of instruction address range
* <font color=#7F9FBF>@param</font> size - size of instruction address range
* <font color=#7F9FBF>@param</font> fp_cmds - commands to calculate stack frame pointer
* <font color=#7F9FBF>@param</font> reg_cmds - map register IDs -&gt; commands to calculate register values
*/</font>
<font color=#7F0055>void</font> doneFindFrameInfo(IToken token, Exception error,
Number address, Number size,
Object[] fp_cmds, Map&lt;String,Object[]&gt; reg_cmds);
}
<font color=#3F5FBF>/**
* Get symbol file info for a module that contains given address in a memory space.
* <font color=#7F9FBF>@param</font> context_id - a memory space (process) ID.
* <font color=#7F9FBF>@param</font> address - an address in the memory space.
* <font color=#7F9FBF>@param</font> done - call back interface called when operation is completed.
* <font color=#7F9FBF>@return</font> - pending command handle.
*/</font>
IToken getSymFileInfo(String context_id, Number address, DoneGetSymFileInfo done);
<font color=#3F5FBF>/**
* Client call back interface for getSymFileInfo().
*/</font>
<font color=#7F0055>interface</font> DoneGetSymFileInfo {
<font color=#3F5FBF>/**
* Called when symbol file information retrieval is done.
* <font color=#7F9FBF>@param</font> token - command handle.
* <font color=#7F9FBF>@param</font> error - error description if operation failed, null if succeeded.
* <font color=#7F9FBF>@param</font> props - symbol file properties.
*/</font>
<font color=#7F0055>void</font> doneGetSymFileInfo(IToken token, Exception error, Map&lt;String,Object&gt; props);
}
}
</pre>
</body>
</html>