云客户?
免费开始>
在MyJFrog中升级>
云的新功能>







概述

符号文件(是.pdb文件)提供了包含在可执行文件和动态链接库(dll)中的函数的足迹,并且可以提供导致故障点的函数调用的路线图。

Symbol Server存储所有公共构建的. pdb文件和二进制文件。它们用于调试为某个存储的构建报告的任何崩溃或问题。Visual Studio和WinDBG都知道如何访问Symbol Servers,如果你正在调试的二进制文件来自公共构建,调试器将自动获得匹配的PDB文件。

从Artifactory 7.36中,您可以受益于以下高级符号服务器功能:

  • 发布的同时索引您的符号包Artifactory从您的NuGet Client v3与您的NuGet包或作为单独的符号包
  • 从JFrog平台的虚拟和本地存储库中解析符号文件(.pdb)
  • 从远程代理解析符号文件。例如,http://symbols.nuget.org/download/symbols
  • 使用Visual Studio调试器工具调试托管在Artifactory上的Symbol文件。

注意,在Artifactory 7.36之前,Symbol Server支持仅限于将Artifactory设置为作为Artifactory中作为通用包托管的Symbol文件的远程代理

支持PDB格式

  • Microsoft PDB V7 (Microsoft C/ c++ MSF 7.00)
  • 便携式PDB v1.0
页面内容


NuGet符号库布局

NuGet Symbol文件显示为NuGet存储库结构的一部分,如下所示。

├──.symbols / serilog。││GUID_Name文件夹││pdb├──

发布NuGet符号包到Artifactory

JFrog平台支持发布和自动索引供调试器使用的Symbol包。

先决条件

  • 创建NuGet符号包(.snupkg).有关更多信息,请参见创建符号包

设置本地存储库

本地存储库使您能够部署NuGet符号(.snupkg)包。Artifactory计算所有Symbol包的元数据,并对它们进行索引,以允许用户通过Visual Studio调试器下载Symbol文件。

创建一个NuGet Symbol本地存储库:

  1. 导航到政府模块,转到存储库|存储库|当地的|新建本地存储库。
  2. 选择NuGet随着包类型

设置虚拟存储库

Artifactory Virtual Repository聚合来自本地和远程存储库的包。

这允许您从为虚拟存储库定义的单个URL访问本地托管的NuGet Symbol包和远程代理的NuGet Symbol文件。

创建虚拟NuGet存储库。

  1. 政府模块,在仓库|仓库|虚拟.lick新建虚拟存储库并设置NuGet成为它的类型。
  2. 控件下包含的基础本地和远程NuGet Symbol存储库存储库部分。

设置远程符号服务器存储库

您可以通过JFrog平台远程存储库代理远程Symbol Server。一个远程存储库Artifactory中定义的作为在远程URL(例如)上管理的注册中心的缓存代理http://symbols.nuget.org/download/symbols).

从远程存储库请求的符号文件按需缓存。您可以从远程存储库缓存中删除下载的Symbol文件;但是,您不能手动将Symbol包推送到远程NuGet存储库。

要定义要代理的远程存储库作为远程符号服务器,请遵循以下步骤:

  1. 政府模块,选择仓库|仓库|远程
  2. 点击新建远程存储库并选择NuGet从选择包类型对话框中。
  3. 在Basic选项卡中,设置库的关键属性中指定远程注册中心的URLNuGet符号服务器URL字段。请注意,默认设置为http://symbols.nuget.org/download/symbols



配置NuGet命令行作为Symbol Server工作

除了构建和创建NuGet包(.nupkg), NuGet客户端还支持创建关联的Symbol包(.snupkgsymbols.nupkg),其中包含NuGet包的所有相关符号文件。Symbol包可以被推送到Symbol Server,在那里Symbol文件可以被Visual Studio调试器索引和使用。

Symbol包结构类似于NuGet包,但包含Symbol文件而不是源文件。

配置NuGet命令行。

  1. 在JFrog平台中,导航到应用模块|工件|工件
  2. 选择您创建的NuGet存储库,
  3. 选择帮我介绍
  4. 配置选项卡,设置NuGet存储库以针对NuGet客户端工作。

  5. 将以下行添加到NuGet.config文件。
  6. 部署选项卡,从以下推送选项中进行选择。
    • 将NuGet包与其相关的Symbol包一起推送
      当你运行nuget推命令,如果同一目录中存在Symbol包,则该Symbol包将被自动推送到相同的位置。

      如下示例所示。

      Nuget push mypackage.1.0.0nupkg-Source ArtifactoryNuGetV3
  • 只推送NuGet Symbol包
    当你运行nuget推命令时,您可以通过添加` `来决定只推送Symbol包。年代的前缀nupkg字符串。


    如下示例所示。

    Nuget push mypackage.1.0.0年代nupkg -Source ArtifactoryNuGetV3

查看单个符号包信息

将Symbol包部署到Artifactory后,可以查看已索引的Symbol文件。工件浏览,选择你的NuGet库然后向下滚动以找到并选择要检查的符号文件。


在Visual Studio中调试符号文件

Visual Studio和其他调试工具匹配程序集和PDB文件的方法是使用组装散列。该散列存储在。dll.pdb文件和必须匹配,调试和源代码步骤才能工作。


当一个.nupkg包含.pdb文件,Visual Studio将联系MyGet下载符号和源代码。当尝试使用这种类型的包进行调试时,Visual Studio将找到.pdb而不是通过MyGet来下载它,因此将无法进入代码。

先决条件
  1. 在Visual Studio中,在Tools | Options(或Debug | Options) | Debugging | General,清除只启用我的代码字段。
  2. 将Artifactory设置为Visual Studio中的符号服务器,执行以下命令工具|选项|调试|符号并添加虚拟或本地存储库URL路径。

调试Artifactory中的Symbol文件:

  1. 运行Visual Studio调试器并输入凭据。

    登录后,调试器扫描本地缓存,然后转到Artifactory中的虚拟存储库,如下面的示例所示。
  2. 在Visual Studio解析符号之后,继续调试已部署的符号文件。
  • 没有标签
版权所有©2023 JFrog Ltd.