public static IMAGEHLP_MODULE Create() { var r = new IMAGEHLP_MODULE(); r.SizeOfStruct = System.Runtime.InteropServices.Marshal.SizeOf(r); return(r); }
static string GetSymType(IntPtr hProcess, IntPtr dwAddr) { IMAGEHLP_MODULE im = new IMAGEHLP_MODULE(); string result = "None"; im.SizeOfStruct = System.Runtime.InteropServices.Marshal.SizeOf(im); if (!SymGetModuleInfo(hProcess, dwAddr, out im)) { return(result); } switch (im.SymType) { case SYM_TYPE.SymNone: result = "none"; break; case SYM_TYPE.SymCoff: result = "COFF"; break; case SYM_TYPE.SymCv: result = "CV"; break; case SYM_TYPE.SymPdb: result = "PDB"; break; case SYM_TYPE.SymExport: result = "EXP"; break; case SYM_TYPE.SymDeferred: result = "deferred"; break; case SYM_TYPE.SymSym: result = "SYM"; break; case SYM_TYPE.SymDia: result = "PDB v7"; break; default: result = String.Format("unknown: {0}", im.SymType); break; } return(result); }
static extern bool SymGetModuleInfo(IntPtr hProcess, IntPtr dwAddr, out IMAGEHLP_MODULE ModuleInfo);