//============================================================================ // enumLinesCallback //============================================================================ bool enumLinesCallback(ref DbgHelp.SRCCODE_INFO LineInfo, IntPtr UserContext) { // UserContext; // gXDBFileBuilder.addLine((DWORD)LineInfo->Address, LineInfo->LineNumber, LineInfo->FileName); LineDesc ld = new LineDesc(); ld.mAddress = (uint)LineInfo.Address; ld.mFilename = LineInfo.FileName; ld.mLine = (short)LineInfo.LineNumber; mLineDat.Add(ld); return(true); }
//============================================================================ // enumLinesCallback //============================================================================ bool enumLinesCallback(ref DbgHelp.SRCCODE_INFO LineInfo, IntPtr UserContext) { int index = mFileNames.IndexOf(LineInfo.FileName); if (index == -1) { index = mFileNames.Count; mFileNames.Add(LineInfo.FileName); } LineDesc ld = new LineDesc(); ld.mAddress = (uint)LineInfo.Address; ld.mFilenameIndex = (uint)index; ld.mLine = (short)LineInfo.LineNumber; return(mAddressHash.addAddress((uint)LineInfo.Address, ld)); }
public bool lookupEnumerated(UInt32 address, ref LookupInfo info) { try { info.mAddress = address; info.mLine = -1; info.mFilename = "?"; info.mSymbol = "?"; info.mFoundLine = false; info.mFoundSymbol = false; for (int i = 0; i < mSymbolDat.Count; i++) { if (mSymbolDat[i].mAddress == address) { info.mFoundSymbol = true; info.mSymbol = mSymbolNames[(int)mSymbolDat[i].mNameIndex]; break; } } { LineDesc ld = (LineDesc)mAddressHash.getObjNearAddress(address); if (ld != null) { info.mFoundLine = true; info.mLine = ld.mLine; info.mFilename = mFileNames[(int)ld.mFilenameIndex]; return(true); } } } catch (Exception e) { } return(false); }