public override GenericSymbolCollection this[int aIndex] { get { GenericSymbolCollection ret = null; // lock ( iEngineMap ) { lock ( iEngineSymbol ) { int mapCount = iEngineMap.NumberOfCollections; if (aIndex >= 0 && aIndex < mapCount) { ret = iEngineMap[aIndex]; } else { int symbolBaseIndex = (aIndex - mapCount); int symbolCount = iEngineSymbol.NumberOfCollections; if (symbolBaseIndex >= 0 && symbolBaseIndex < symbolCount) { ret = iEngineSymbol[symbolBaseIndex]; } } } } // return(ret); } }
public GenericSymbol EntryByAddress(long aAddress) { GenericSymbolCollection collection = null; GenericSymbol ret = EntryByAddress(aAddress, out collection); return(ret); }
public SymbolAddressRange(GenericSymbolCollection aCollection) { foreach (GenericSymbol sym in aCollection) { base.Add(sym.AddressRange); } }
protected void OnCollectionCreated(GenericSymbolCollection aCollection) { if (CollectionCreatedHandler != null) { CollectionCreatedHandler(this, aCollection); } }
public override GenericSymbolCollection this[int aIndex] { get { GenericSymbolCollection ret = iEngineSymbol[aIndex]; return(ret); } }
public override GenericSymbolCollection this[int aIndex] { get { // Map files contain only a single symbol collection; GenericSymbolCollection ret = iFiles[aIndex][0]; return(ret); } }
public GenericSymbolCollection CollectionByAddress(long aAddress) { // First check with the map file engine to see if there is a loaded // code segment entry that matches the specified address. GenericSymbolCollection ret = iEngineROFS.CollectionByAddress(aAddress); // if (ret == null) { ret = iEngineROM.CollectionByAddress(aAddress); } // return(ret); }
public static SymbolSymbol NewUnknown(GenericSymbolCollection aCollection) { SymbolSymbol symbol = new SymbolSymbol(aCollection); // symbol.OffsetAddress = GenericSymbol.KNullEntryAddress; symbol.Symbol = GenericSymbol.KNonMatchingSymbolName; if (aCollection.HostBinaryFileName.Length > 0) { symbol.Object = Path.GetFileName(aCollection.HostBinaryFileName); } else { symbol.Object = GenericSymbol.KNonMatchingObjectName; } // return(symbol); }
public GenericSymbol EntryByAddress(long aAddress, out GenericSymbolCollection aCollection) { aCollection = null; GenericSymbolCollection rofsCollection = null; // First check with the map file engine to see if there is a loaded // code segment entry that matches the specified address. GenericSymbol ret = iEngineROFS.EntryByAddress(aAddress, ref rofsCollection); // if (ret == null) { GenericSymbolCollection romCollection = null; ret = iEngineROM.EntryByAddress(aAddress, ref romCollection); // Decide which collection to return in the case that // a) we found a matching symbol, or // b) when we didn't. if (ret == null && rofsCollection != null) { // ROFS wins by default if we found something inside the ROFS engine... aCollection = rofsCollection; } else { // Otherwise we'll use the ROM collection (irrespective of whether something // was found or not) aCollection = romCollection; } } else { // ROFS wins aCollection = rofsCollection; } return(ret); }
public override GenericSymbolCollection this[int aIndex] { get { GenericSymbolCollection ret = null; // foreach (SymbolFileEngine engine in iFiles) { int count = engine.NumberOfCollections; if (aIndex < count) { ret = engine[aIndex]; break; } else { aIndex -= count; } } // return(ret); } }
private SymbolSymbol(GenericSymbolCollection aCollection) : base(aCollection) { }
public static SymbolSymbol New(GenericSymbolCollection aCollection) { return(new SymbolSymbol(aCollection)); }