Exemple #1
0
            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);