问题标签 [symbol-server]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
debugging - TFS“源服务器”(似乎)不起作用
我正在尝试调试一个故意在依赖库中引发异常的小型应用程序。我为两者都构建了代码,但我在一个我没有用来构建依赖库的工作站上进行调试。在我的小型构建过程中,我有一个步骤可以为依赖库索引源和发布符号(使用 vNext 构建系统)。
我希望能够调试并进入依赖库的代码。我的期望是标记到 pdb 文件中的索引信息将允许“即时”获取源代码文件。
pdb 文件在 vNext 构建过程中成功上传到源服务器,并且 pdb 文件从我在 Visual Studio 中根据 Debug -> Windows -> Modules 指定的符号缓存目录成功加载。
我的应用程序故意抛出异常,因此调试器将有一些东西要闯入。当它发生时,我看到堆栈跟踪中的代码,所以我知道符号正在正确加载。当我双击堆栈跟踪中的那个条目时,我没有被带到源头。
由于索引信息,我本来希望 Visual Studio 获取源代码,但我看到了一个文件浏览对话框。请注意,我使用的是 Visual Studio 2017。
这是 pdb 文件中的索引信息(显示 pdb 已正确索引):
请注意,我已经编辑了一些信息,这只是我不想透露的路径信息和服务器名称,但它们是正确的。如果VSTSSERVER的值和源代码的值都正确,为什么我调试的时候源代码拉不上来。我不确定源代码路径中的这些数字是什么,而且我没有看到任何登录凭据来登录 tfs 服务器。但是,由于我已经通过使用 Visual Studio 的方式连接到 TFS,我想也许不需要凭据?我的构建过程目前没有标记源......这可能是问题的一部分吗?
我对此有点新(尝试在调试期间使用源信息)。让我知道我是否遗漏了什么,如果我遗漏了,我该如何补救这种情况。
在将 Visual Studio 附加到应用程序之前,我确实选中了 Debug -> Options -> General -> Enable Source Server Support(这是两个子复选框)。
visual-studio - 如何使用本地文件夹中的 nuget 符号包进行调试?
我的服务器上有一个文件夹,用于托管我的 nuget 包。这些包不包含源代码或符号 (PDB)。这很好用。
最近,我在本地服务器上设置了另一个文件夹来托管我的 nuget 包中程序集的符号文件。
我已将符号文件夹的路径添加到 Visual Studio,当我将 PDB 文件放在文件夹中时,它们会在 VS 中正确加载,并且我可以在调试时单步执行代码。如果我查看 VS 中的符号加载信息,我可以看到 PDB 是从我服务器上的符号文件夹中下载的,确认一切正常。
我相信做这种事情的首选方法是让 nuget 在创建 nuget 包的同时创建一个符号包,我想转向这种工作方式。
创建符号和 nuget 包不是问题。问题是当我将符号包推送(使用 nuget)到我的符号文件夹时,VS 无法使用它。当我尝试进入我的 nuget 包时,VS 尝试查找 PDB,我可以看到它在我的符号文件夹中查找,但找不到 PDB,这是有道理的,因为它包含在 nuget 符号包中。
谁能解释我错过了什么?
visual-studio - 允许 Microsoft 符号服务器通过防火墙
我们有一个新的设置,我们在上面编码的机器没有互联网访问权限。(我认为愚蠢的想法)。我们的网络安全部门想知道以下 URL 是否是允许防火墙访问 Microsoft 的 Symbol 服务器所需的唯一 URL。
msdl.microsoft.com/download/symbols
这与 Visual Studio 关闭并.pdb
在调试时尝试下载所需文件时使用的 URL 相同吗?
c# - 调试 Nuget 包时找不到符号源代码
我有一个构建内部 Nuget 包的构建服务器。当我使用该软件包并尝试进入一种方法时,它不起作用。
所有符号都发布到我的符号服务器,并且我在我的 VS 设置中启用了它。
如果我检查“模块”窗口,我会看到 Nuget DLL 在那里,并且为它加载了正确的符号,并且从符号服务器加载了正确的符号。
但是,当我尝试进入代码时,它会直接跳过该方法。如果我使用调用堆栈专门查看该代码行,它会显示“找不到 ClientBase.cs”。如果我展开“来源搜索信息”,我会看到:
查找“C:\Build Agent\vsts-agent-win7-x64-2.117.1_work\1\s\ClientsShared\Class\ClientBase.cs”的源代码。(没有校验和。)
文件“C:\Build Agent\vsts-agent-win7-x64-2.117.1_work\1\s\ClientsShared\Class\ClientBase.cs”不存在。
在脚本文档中查找“C:\Build Agent\vsts-agent-win7-x64-2.117.1_work\1\s\ClientsShared\Class\ClientBase.cs”...
查看“C:\Build Agent\vsts-agent-win7-x64-2.117.1_work\1\s\ClientsShared\Class\ClientBase.cs”的项目。
在项目中找不到该文件。
使用源服务器寻找源...
活动解决方案的调试源文件设置表明调试器不会要求用户查找文件:C:\Build Agent\vsts-agent-win7-x64-2.117.1_work\1\s\ClientsShared\Class\ClientBase 。CS。
调试器找不到源文件“C:\Build Agent\vsts-agent-win7-x64-2.117.1_work\1\s\ClientsShared\Class\ClientBase.cs”。
为什么要在 Build Agent 上寻找源代码?这不应该存储在符号服务器上的 PDB 中吗?
visual-studio - Visual Studio 在哪里获取用于查找符号的 DLL 的哈希?
我正在设置我们的私有符号服务器。一切都很好。当我使用符号服务器调试我们的 Nuget 包之一时,请观察以下 Resharper 日志:
在 C:\SNIPPED\SymbolCache\ClassLibrary1.pdb\91180103b9def6ca85f41230aaf9a4611\ClassLibrary1.pdb 中搜索“ClassLibrary1.Class1”类型源
下载器:https://LOCAL_SYMBOL_SVR/app/sources/builds/id-1641/sources/files/ClassLibrary1/ Class1.cs -> 好的,268 字节
看到哈希,91180103b9def6ca85f41230aaf9a4611
?请注意,它是 33 位数字。
我认为它可能存储在 PE 标头中,但dumpbin.exe /all DLL
在其输出中不包含散列。
那个哈希是从哪里来的?它是否存储在DLL 中的某个地方?如果是这样,它是如何以及在哪里存储的?
windows - 存储和管理多个 PDB 文件?
在构建我的应用程序时,会生成一些 PDB 文件,这些文件在调试期间很有用。现在,当用户遇到崩溃时,我会得到转储文件并使用它来分析问题。
不幸的是,为此 PDB 文件的版本需要适合生成故障转储的构建 - 或者换句话说,对于我构建的每个版本,我需要存储相关的 PDB 以便使它们可用于以后的分析。
现在我知道 MS 提供了一个名为“symbolserver”的产品,它完成了存储和管理构建的 PDB 文件的完整工作。不幸的是,这对我来说太复杂了。
所以我的问题是:是否有一种易于使用且易于处理的替代方案可用于存储 PDB 文件的多个版本,以便使它们可用于故障转储分析?
谢谢!
azure-devops - Azure DevOps SourceLink 和符号服务器在 Nuget 包中带有发布 DLL
我有一个 .NET Standard 2.0TestSouceLink
项目,其中包含以下配置.csproj
:
我们有一个 Azure DevOps 服务器,它在构建管道中生成我们的 Nuget 包。
我Publish symbols path
在最后添加了一个任务,将文件推.pdb
送到符号服务器,并且我设法让源链接与 Azure DevOps 符号服务器一起工作,仅具有调试构建配置。
问题是我不希望 Nuget 包中的 DLL 在调试模式下生成。我希望他们成为Release。但是当我在文本框中更改dotnet pack
要使用的任务时,源链接不再起作用。Release
Configuration to package
有没有办法生成一个带有 Release DLL 的 Nuget 包?并且仍然让 Source Link 与 Symbol Server 一起工作?
如果这是唯一的方法,我不介意将.nuspec
文件与Nuget
CLI 一起使用,但是我不想将.pdb
文件包含在 Nuget 包中。
谢谢
azure-devops - Linux 托管代理和 Azure 工件(符号发布)
目前,当我在 Ubuntu 托管代理上运行发布符号任务时,我收到以下错误“当前操作系统无法运行此任务。这通常意味着该任务仅针对 Windows 编写。例如,为 Windows 桌面 PowerShell 编写。”
我已经在 Windows 代理上成功运行了这个任务,但是我看到它在 Linux 上不起作用。我见过的唯一可以在 Linux 上运行的是 SourceLink,但它还不能与 Azure DevOps Artifacts 一起使用。
环顾四周,我看不到任何将符号发布到 Linux 代理上的 Azure DevOps 工件的方法?有没有其他人遇到过这个问题,你能解决这个问题吗?
azure-devops - 源链接无法从私有 azure 符号服务器下载 nuget 的源文件,使用了错误的域 dev.azure.com/raw/
TL;博士
使用 Azure devops,带有源链接的 VS 尝试从https://dev.azure.com/raw/开源表单...出现 404 错误,看起来域生成模式是错误的
我们有 nuget 包,并希望启用对其源代码的调试。一切都通过 azure devops 完成,任务“ https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/build/index-sources-publish-symbols?view=azure-devops ”在设置时构建 nuget。
在 Visual Studio 中,启用“使用源链接”并禁用“仅我的代码”。VS 中的源服务器设置为带有私有凭据的 dev.azure.com。
找到并加载调试符号时,出现有关“源链接将从互联网下载源”的警报,但随后在日志中提到 404 错误
它尝试下载 https://dev.azure.com/raw/SomeName/SomeProject/_git/XXX.Library/8ab2f2673396a762aeb7d70fbdca85357ec731d0/XXX.Library/Utils/ApiProxy.cs 在浏览器中我也无法以 404 状态访问此文件.
但是通过 Azure UI 我可以找到这个文件,例如通过 https://dev.azure.com/SomeName/SomeProject/_git/XXX.Library/commit/e982b34fa3ff2524eb0f479197369555e64534f2?refName=refs%2Fheads%2Fmaster&_a=contents&path=%2FXXX%2FUtils% 2FApiProxy.cs
所以看起来源链接使用 github.com 模式而不是与 azure 相关的模式生成路径。
azure-devops - 使用 Azure Devops Symbole Server 调试 NuGet 包导致找不到类
我最近一直在使用 Azure Devops 来托管一个 NuGet 包作为工件,然后我将在我的另一个项目中使用它。到目前为止一切顺利,我设法得到了包并按预期使用它,但我也希望能够调试它,所以我不得不添加符号(据我所知?)。因此,我在管道中为成功的符号添加了一个发布步骤,并发布了 .pdb 文件。我通过在设置 Debug > Symbols 中连接到 DevOps 来引用我在 Visual Studio 中的符号源。在调试代码时,它会正确地将 .pdb 文件下载到临时位置,并且在代码运行期间它一直停留在那里。在 debugger > windows > modules 它实际上告诉我符号在调试时正确加载,
我尝试了多种方法,例如清除符号缓存、在调试中更改“仅限自己的代码”和“允许源服务器支持”等设置。但无济于事。
我错过了一步还是我做错了什么?