Example #1
0
        //============================================================================
        // 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);
        }
Example #2
0
        //============================================================================
        // 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);
        }