问题标签 [symstore]

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.

0 投票
0 回答
429 浏览

c# - .NET 应用程序的符号服务器

我提供了许多没有 pdb 的应用程序模块的 NuGet 包。对于调试,我想使用符号服务器并在那里存储二进制文件 + pdb 文件。使这成为可能的正确步骤是什么?1. 在 Team City 和所有构建代理上安装调试工具 2. 使用 UNC 路径创建共享目录(例如 \MyPc\SymbolServer) 3. 在调试客户端上将此路径添加到 '_NT_SYMBOL_PATH' 环境变量 4. 使用

在构建代理上

不,当有人需要调试某个版本的二进制文件时,它会自动下载正确版本的二进制文件 + pdb 吗?即使初始 .exe 路径与调试客户端上的路径不同?现在我正在开发 PC 上进行调试,并且我的项目中有另一个版本的源代码(并且在不同的开发 PC 源路径上有所不同)如何使用确切版本的源代码调试代码?

0 投票
0 回答
1043 浏览

windows - Is it safe to remove .pdb directory from a symbol storage if I don't use them anymore?

My local symbol storage directory contains plenty of files which I'd like to erase (because I think they are unused) or move to a separate directory. I'm know that AgeStore and SymStore can be used to trim a symbol storage - but neither seems to support the use case of removing information for specific files from the symbol storage.

My local symbol storage looks something like

Is it safe to just remove directories like vc60.pdb and everything beneath that altogether, or would that break fetching symbols/binaries from the symbol storage?

0 投票
2 回答
1770 浏览

c++ - 使用 symstore.exe 无法在 Windbg 或 Visual Studio 中为 minidump 加载符号

为了跟踪仅在 Windows 8 用户计算机上发生的 Qt 崩溃,我设置了一个本地符号服务器以用于调试崩溃转储。

首先,我使用以下标志进行了完整构建:

并使用 Windows Installer 和 VS 部署项目构建了一个安装程序。然后我运行了以下 symstore.exe 命令:

C:\Program Files (x86)\Windows Kits\8.1\Debuggers\x64>symstore.exe add /r /f C:\builddir\*.* /s "C:\Users\Sam\symbols" /t "Application" /v "rev xxxx" /c "test add"

这在C:\Users\Sam\symbols.

然后我在用户机器上安装并通过 Process Explorer 生成了一个 minidump 文件。我尝试将转储加载到 Visual Studio 并添加C:\Users\Sam\symbols到符号文件位置,但找不到与我的二进制文件匹配的符号。

然后我尝试将它加载到 WinDbg64(这是一个 64 位应用程序)。我设置!sym noisy了设置符号路径.symfix C:\Users\Sam\symbols并重新加载.reload /f。这也没有任何成功,只在加载的地方导出符号。例如:

所有模块都会发生这种情况,但我完全不希望 Qt 组件会出现这种情况,因为它们不是作为常规构建的一部分构建的,甚至将符号文件夹设置为直接包含 pdb 文件的 lib 文件夹也无济于事。

然后,我尝试ChkMatch.exe针对符号存储中的可执行文件和 pdb 文件运行。可执行文件的签名与 pdb 所在的文件夹匹配,表明它们应该是匹配的,但随后出现以下错误:

ChkMatch.exe为了以防万一,我再次针对已安装的可执行文件运行,但得到了相同的签名和相同的错误。

编辑: 我尝试了设置symopt+0x40,它应该让 WinDbg 使用 pdbs 而不仔细检查签名 GUID。然而,它仍然没有加载任何东西。额外输出:

中的文件夹C:\Users\Sam\symbols\QtGui4.dll具有名称4AA92D1B712000并包含应该是正确的 dll 的内容。

0 投票
1 回答
275 浏览

c++ - 如何移动或备份符号服务器?

我一直在使用以下命令在本地机器上存储我的构建符号:

call "C:\Program Files (x86)\Windows Kits\8.1\Debuggers\x64\symstore.exe" add /r /f .\*.* /s "C:\Users\Sam\symbols" /t "Application" /v "rev %SVN_REVISION%" /c "adding revision %SVN_REVISION%"

到目前为止,这对于调试崩溃来说一直很好。但是现在我想在中央服务器上将这些提供给其他人,我需要知道如何移动这个符号服务器。仅复制文件夹是行不通的,文档中有一些示例,但是它们似乎处理将指针移动到符号和给出的示例:

symstore add /y \\hubserver\hubshare\myindex.txt /g \\myarchive\appserver /s \\sampledir\symsrv /p /t "Large Application" /v "Build 432" /c "Sample Add from Index"

用于在我想移动所有条目时移动单个条目。

我尝试用以下方法猜测这种语法:

"C:\Program Files (x86)\Windows Kits\8.1\Debuggers\x64\symstore.exe" /g C:\Users\Sam\symbols /s \\public\symbols

但这不是公认的命令。

0 投票
1 回答
308 浏览

c++ - symstore 错误:无法创建“...\000Admin\0000000001”。Win32 错误 80:文件存在”

作为构建过程的一部分,我们将符号发布到我们的符号服务器(S3 作为网络驱动器)。第一次发布有效,但现在 symstore 任务失败并出现以下错误:

我正在寻求解决此错误或发生此错误的原因的帮助。我已经查看了 symstore 文档并搜索了其他遇到此问题的人,但都空手而归。

0 投票
1 回答
685 浏览

debug-symbols - 如何从 Microsoft Symbol Server 迁移到 Google Breakpad?

我们的产品会生成小型转储文件以防出现问题。我们运行一个符号服务器来存储和访问我们构建的调试符号,以便我们从转储文件中获得正确的堆栈跟踪。

由于我们的产品还可以在其他操作系统(特别是 Linux 和 OS X)上运行,我们开始研究Google breakpad。我似乎也使用小型转储和 PDB 文件进行存储。但是,我想知道:

(如何)我可以将现有的符号服务器迁移到 Google breakpad,这样我就不会丢失所有现有的符号?我想其他人已经做了同样的动作,也许有一些共同的方法?

0 投票
1 回答
176 浏览

svn - 使用 ssindex / svnindex 失败:“无法解析目录”

我尝试使用 SVN 存储库索引我的符号文件,使用命令

svnindex /debug /source=c:\crash /symbols=c:\crash\release

无论我尝试什么,我总是得到:

c:\crash 包含一个简单的 MFC 演示程序,它位于我的本地驱动器 (d:\Repo_Crash) 上的 SVN 存储库中。我安装了 ActivePerl-5.20.2.2002-MSWin32-x86-64int-299195 和 WDK8.1 的独立调试工具包。我将路径设置为 C:\Program Files (x86)\Windows Kits\8.1\Debuggers\x86\srcsrv。SVN 版本为 1.9.0 (r1692801)

查看文件 svn.pm 时,我看到下一部分(第 126 行)总是失败:

所以它给了我警告信息然后返回。

知道这里有什么问题吗?

ps:我一直在谷歌搜索,但没有发现任何相关的东西

0 投票
1 回答
1626 浏览

windows - SymStore - 添加多个文件

我正在尝试使用将一堆.pdb文件添加到符号服务器symstore.exe。不是所有的.pdb' 都在目录中,而是选择它们(基于日期)。

要将它们添加到单个事务中,我正在使用symstore ... /f '@filelist.txt'where filelist.txtis a file contains real .pdbone per line - 正如命令行帮助所说:

(此信息仅存在于命令行帮助中symstore,而不存在于相应的在线帮助页面中。)

这不起作用,它存储0个文件。我认为这个功能——从文件列表中添加多个文件——并没有真正实现。

有没有人成功地在单个事务中添加文件列表symstore.exe

0 投票
1 回答
85 浏览

azure - 授予 Azure 构建代理对 VM 文件夹的写入权限

我有两个我正在尝试连接的天蓝色实体,一个运行我的 nuget 部署的构建代理和一个我正在尝试使用 SymStore 设置符号托管的 VM(Windows Server 2012 R2)。

这个页面我被告知Grant full control permission to the build agent service account.我该怎么做?在Publish Symbols构建步骤中,我可以输入一个 URL 来存储符号,但我无法将构建代理作为我授予完全控制权限的用户登录到 VM。

0 投票
0 回答
50 浏览

c++ - Symstore 不会删除关联的文件夹

我使用网络驱动器上的符号存储来为我们的应用程序收集调试符号。这些符号在调试已加载到 Visual Studio 中的故障转储文件时使用。我有管理删除“旧”版本符号的 Powershell 脚本。或者,所以,我想。最近,在编写另一个脚本时,我注意到使用symstore删除符号实际上并没有删除任何内容。例如,当我使用 symstore 删除符号时,我在 000Admin 文件夹中看到一个“0000000161.deleted”文件。此文件包含相关调试符号的条目。它包含以下条目:

上面的第一个条目是“Aggregat”模块的相关调试符号的文件夹。我希望当我使用事务 ID 删除符号时,相应的文件夹(即 B4E7044117F0469CB321E9FA9003E4CA5)也将被删除。看来情况并非如此。

我的假设正确吗?我是否负责完全清理符号存储结构?