private static string HookGetStackTrace(orig_GetStackTrace orig, Exception self, bool fNeedFileInfo) { var stackTrace = new StackTrace(self, true); MdbManager.Symbolize(stackTrace.GetFrames()); PrettifyStackTraceSources(stackTrace.GetFrames()); var s = stackTrace.ToString(); s = trimParamTypes.Replace(s, "$1"); s = dropGenericTicks.Replace(s, ""); s = dropOffset.Replace(s, ""); s = s.Replace(":-1", ""); return(s); }
private Assembly LoadAssembly(byte[] code, byte[] pdb = null) { var asm = Assembly.Load(code, pdb); assemblies.Add(asm); loadedAssemblies[asm.GetName().Name] = asm; assemblyBinaries[asm.GetName().Name] = code; hostModForAssembly[asm] = this; bytesLoaded += code.LongLength + (pdb?.LongLength ?? 0); #if MONO if (pdb != null) { var cecilAssemblyDef = cecilAssemblyResolver.Resolve(asm.GetName().ToReference()); MdbManager.RegisterMdb(cecilAssemblyDef.MainModule, pdb); } #endif return(asm); }