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);
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }