• .NET Core 中提供哪些诊断工具?(官网转发)


    原文:

    https://docs.microsoft.com/zh-cn/dotnet/core/diagnostics/

    软件并非始终按预计方式运行,但 .NET Core 具有可帮助用户快速有效地诊断这些问题的工具和 API。

    本文可帮助用户查找各种所需的工具。

    托管调试器

    借助托管调试器,用户可以与程序进行交互。 暂停、增量执行、检查和恢复操作可让用户深入了解代码的行为。 调试器是诊断易于重现的功能问题的首选。

    日志记录和跟踪

    日志记录和跟踪是相关技术。 它们指的是用于创建日志文件的检测代码。 这些文件记录了程序操作的详细信息。 这些细节可用于诊断最复杂的问题。 当与时间戳结合使用时,这些技术在性能调查中也非常有用。

    指标

    EventCounters 使你可编写指标来识别和监视性能问题。 与跟踪相比,指标产生的性能开销较低,这使指标更适合 always-on 性能监视。 .NET 运行时和库发布了多个已知 EventCounters,你也可以对其进行监视。

    单元测试

    单元测试是持续集成和部署高质量软件的关键组件。 单元测试的目的在于,在用户操作导致系统出现问题时提前向其发出警告。

    转储

    转储是一个文件,其中包含创建时进程的快照。 它们可用于检查应用程序的状态,以便进行调试。

    符号

    符号是调试和其他诊断工具的基本需求。 符号文件的内容在语言、编译器和平台之间各有不同。 以非常概要的角度来看,符号是源代码和编译器生成的二进制文件之间的映射。 这些映射用于在 Visual Studio 和 Visual Studio Code 等诊断工具中提供行号信息和局部变量名称之类的内容。 以下链接包含适用于 Windows 的符号的详细说明,但许多概念也适用于其他平台。 .NET 可移植符号具有类似于 Windows PDB 的“PDB”文件扩展名,但并不与 Windows PDB 格式兼容。

    收集容器中的诊断

    也可使用非容器化 Linux 环境中使用的相同诊断工具收集容器中的诊断。 只需进行几次使用更改就可使这些工具在 Docker 容器中运行。

    .NET Core 诊断全局工具

    dotnet-counters

    dotnet-counters 是一个性能监视工具,用于【初级】运行【状况监视和性能调查】。 它通过 EventCounter API 观察已发布的【性能计数器值】。 例如,可以【快速监视 CPU 使用情况或 .NET Core 应用程序中的异常率等指标】。

    dotnet-dump

    通过 dotnet-dump 工具,可在【不使用本机调试】器的情况下【收集和分析 Windows 和 Linux 核心转储】。

    dotnet-gcdump

    dotnet-gcdump 工具可用于为【活动 .NET 进程收集 GC(垃圾回收器)转储】。

    dotnet-trace

    分析数据通过 .NET Core 中的 EventPipe 公开。 通过 dotnet-trace 工具,可以使用来自【应用的有意思的分析数据】,这些数据可帮助你【分析应用运行缓慢的根本原因】。

    dotnet-symbol

    dotnet-symbol 用于下载打开【核心转储或小型转储所需的文件(符号、DAC/DBI、主机文件等)】。 如果需要【使用符号和模块来调试】在其他计算机上捕获的转储文件,请使用此工具。

    dotnet-sos

    dotnet-sos 在 Linux 和 macOS(如果使用的是 Windbg/cdb,则在 Windows 上)安装 SOS调试扩展

    PerfCollect

    PerfCollect 是一个 bash 脚本,可用于【收集包含 perf 和 LTTng 的跟踪】,以便更深入地分析【在 Linux 分发版上运行的 .NET 应用的性能】。

    .NET Core 诊断教程

    调试内存泄露

    教程:调试内存泄漏演示了如何查找内存泄漏。 dotnet-counters 工具用于【确认泄露】,dotnet-dump 工具用于【诊断泄露】。

    调试高 CPU 使用率

    教程:调试高 CPU 使用率逐步介绍了如何调查高 CPU 使用率。 它使用 dotnet-counters 工具来【确认高 CPU 使用率】。 然后,它逐步介绍了如何【使用性能分析实用工具 (dotnet-trace) 跟踪或 Linux perf 来收集和查看 CPU 使用率配置文件】。

    调试死锁

    教程:调试死锁介绍了如何使用 dotnet-dump 工具来【调查线程和锁】。

    调试 StackOverflow

    教程:调试 StackOverflow 演示了如何【在 Linux 上调试 StackOverflowException】。

    调试 Linux 转储

    调试 Linux 转储说明了如何【收集和分析 Linux 上的转储】。

    使用 EventCounters 衡量性能

    教程:使用 .NET 中的 EventCounters 度量性能演示了如何使用 EventCounter API 来【衡量 .NET 应用的性能】。

  • 相关阅读:
    Python中CreateCompatibleDC和CreateBitmap造成的内存泄漏
    POJ 2420 模拟退火
    LR(1)分析表-语法树-四元式
    C语言文法
    计蒜客 18018 热爱工作的蒜蒜 最短路+dp
    HDU 5988 最小费用流
    POJ 1808 平方剩余
    POJ 2115 单变元模线性方程
    计蒜客 17414 Exponial 指数降幂公式
    计蒜客 17412 Card Hand Sorting 最长公共子序列
  • 原文地址:https://www.cnblogs.com/panpanwelcome/p/14281242.html
Copyright © 2020-2023  润新知