//============================================================================ // enumSymbolsCallback //============================================================================ bool enumSymbolsCallback(ref DbgHelp.SYMBOL_INFO pSymInfo, uint SymbolSize, IntPtr UserContext) { int index = mSymbolNames.IndexOf(pSymInfo.Name); if (index == -1) { index = mSymbolNames.Count; mSymbolNames.Add(pSymInfo.Name); } SymDesc sd = new SymDesc(); sd.mAddress = (uint)(pSymInfo.Address >> 32); sd.mSize = SymbolSize; sd.mNameIndex = (uint)index;// pSymInfo.Name;// +4; //insert based upon address for (int i = 0; i < mSymbolDat.Count; i++) { if (mSymbolDat[i].mAddress < sd.mAddress) { mSymbolDat.Insert(i, sd); break; } } //gXDBFileBuilder.addSymbol((DWORD)(pSymInfo->Address >> 32U), SymbolSize, pSymInfo->Name + 4); return(true); }
//============================================================================ // enumSymbolsCallback //============================================================================ bool enumSymbolsCallback(ref DbgHelp.SYMBOL_INFO pSymInfo, uint SymbolSize, IntPtr UserContext) { SymDesc sd = new SymDesc(); sd.mAddress = (uint)(pSymInfo.Address >> 32); sd.mSize = SymbolSize; sd.mNameOffset = pSymInfo.Name;// +4; //gXDBFileBuilder.addSymbol((DWORD)(pSymInfo->Address >> 32U), SymbolSize, pSymInfo->Name + 4); return(true); }