符号下载器 (dotnet-symbol)

本文适用于: ✔️ .NET Core 2.1 SDK 及更高版本

安装

若要安装最新版 dotnet-symbol NuGet 包,请使用 dotnet tool install 命令:

dotnet tool install --global dotnet-symbol

摘要

dotnet-symbol [-h|--help] [options] <FILES>

描述

dotnet-symbol 全局工具下载调试核心转储和小型转储所需的文件(符号、DAC、模块等)。 当调试其他计算机上捕获的转储时,这很有用。 dotnet-symbol 可用于下载分析转储所需的模块和符号。

选项

  • --microsoft-symbol-server

    添加 http://msdl.microsoft.com/download/symbols 符号服务器路径(默认)。

  • --server-path <symbol server path>

    将符号服务器添加到服务器路径。

  • authenticated-server-path <pat> <server path>

    使用个人访问令牌 (PAT) 将经过身份验证的符号服务器添加到服务器路径。

  • --cache-directory <file cache directory>

    添加缓存目录。

  • --recurse-subdirectories

    处理所有子目录中的输入文件。

  • --host-only

    仅下载 lldb 加载核心转储所需的主机程序(即 dotnet)。

  • --symbols

    下载符号文件(.pdb、.dbg 和 .dwarf)。

  • --modules

    下载模块文件(.dll、.so 和 .dylib)。

  • --debugging

    下载特殊的调试模块(DAC、DBI 和 SOS)。

  • --windows-pdbs

    当可移植的 PDB 也可用时,会强制下载 Windows PDB。

  • -o, --output <output directory>

    设置输出目录。 否则,请在输入文件旁边写入(默认)。

  • -d, --diagnostics

    启用诊断输出。

  • -h|--help

    显示命令行帮助。

下载符号

默认情况下,针对转储文件运行 dotnet-symbol 将下载调试转储所需的所有模块、符号和 DAC/DBI 文件,包括托管程序集。 由于 SOS 现在可以按需下载符号,因此可以使用仅带主机 (dotnet) 和调试模块的 lldb 分析大多数 Linux 核心转储。 若要获取使用 lldb 诊断核心转储所需的这些文件,请运行以下内容:

dotnet-symbol --host-only --debugging <dump file path>

故障排除

  • 下载符号时出现“404 未找到”。

    只有通过官方渠道(例如官方网站dotnet 安装脚本中的默认源)获得的官方 .NET Core 运行时版本才支持符号下载。 下载调试文件时出现 404 错误,这可能表示转储是使用来自其他源的 .NET Core 运行时创建的,例如,从本地源、特定 Linux 发行版或从社区站点(例如 archlinux)构建的转储。 在此类情况下,应从这些源或创建转储文件的环境复制调试所需的文件(dotnet、libcoreclr.so 和 libmscordaccore.so)。

另请参阅