internal Symbol(SymbolInfo *pSymInfo) { Name = pSymInfo->ReadSymbolName(); //Name = new string(pSymInfo->Name); SizeOfStruct = (int)pSymInfo->SizeOfStruct; TypeIndex = (int)pSymInfo->TypeIndex; Index = (int)pSymInfo->Index; Size = (int)pSymInfo->Size; ModBase = pSymInfo->ModBase; Flags = pSymInfo->Flags; Value = pSymInfo->Value; Address = pSymInfo->Address; Register = (int)pSymInfo->Register; Scope = (int)pSymInfo->Scope; Tag = pSymInfo->Tag; }
internal Symbol(SymbolInfo *pSymInfo, string name) { Name = name; SizeOfStruct = pSymInfo->SizeOfStruct; TypeIndex = pSymInfo->TypeIndex; Index = pSymInfo->Index; Size = pSymInfo->Size; ModBase = pSymInfo->ModBase; Flags = (SymbolFlag)pSymInfo->Flags; Value = pSymInfo->Value; Address = pSymInfo->Address; Register = pSymInfo->Register; Scope = pSymInfo->Scope; Tag = (SymbolTag)pSymInfo->Tag; }
private static int GetSymbolInfoSize(SymbolInfo *pSym) { // SizeOfStruct + (MaxNameLen - 1) * sizeof(TCHAR) return((int)(pSym->SizeOfStruct + (pSym->MaxNameLen - 1) * sizeof(byte))); }
private static extern bool SymFromAddr(IntPtr hProc, ulong addr, ulong *displacement, SymbolInfo *pSym);