public async Task InvokeAsync(HttpContext context) { ClrInfo runtimeInfo = _dataTargetProvider.GetDataTarget().ClrVersions[0]; ClrRuntime runtime = runtimeInfo.CreateRuntime(); var content = TableBuilder.CreateDataTable("Threads", runtime.Threads.Select(f => new { ThreadId = TableColumn.Wrap(f.OSThreadId).Link($"{context.Request.PathBase.Value}/stacks?id={f.OSThreadId}"), GcMode = f.GcMode, Runtime = f.Runtime.ToString(), AppDomains = string.Join(",", f.Runtime.AppDomains.Select(a => a.Name)) })); await _next(context); await context.Response.WriteAsync(content); }
public async Task InvokeAsync(HttpContext context) { await _next(context); var versions = _dataTargetProvider.GetDataTarget().ClrVersions; string content = TableBuilder.CreateDataTable("Clr Info", versions.Select(f => new { ClrVersion = f.Version.ToString(), Flavor = f.Flavor, LocalMatchingDac = f.LocalMatchingDac, DacInfoFileName = f.DacInfo.FileName, DacInfoFileSize = f.DacInfo.FileSize, Architecture = f.DacInfo.TargetArchitecture, })); await context.Response.WriteAsync(content); }
public async Task InvokeAsync(HttpContext context) { ClrInfo runtimeInfo = _dataTargetProvider.GetDataTarget().ClrVersions[0]; ClrRuntime runtime = runtimeInfo.CreateRuntime(); var content = TableBuilder.CreateDataTable("Modules", runtime.Modules.Select(f => new { AssemblyId = f.AssemblyId, AssemblyName = f.AssemblyName, DebuggingMode = f.DebuggingMode, FileName = f.FileName, ImageBase = f.ImageBase, MetadataAddress = f.MetadataAddress, Name = f.Name, Runtime = f.Runtime, })); await _next(context); await context.Response.WriteAsync(content); }