如何设置 Windows 符号服务器

2024-01-05

我在网络上有一个备用服务器,我想用它来托管我们所有的构建符号。我已经知道如何在本地开发系统上设置符号缓存并将调试器(例如 Windbg)指向“符号文件路径”中的该路径。我认为我可以对网络上具有自己的符号缓存(例如 \\host\symbols)的另一个系统执行相同的操作。

我设置了服务器并在目录上启用了文件共享,因此我可以通过 Windows 资源管理器远程访问它。然而,当我尝试在 WinDbg 中指向它时,它似乎没有拾取那里的符号。

符号文件路径设置如下:

srv*\\192.168.1.20\symbolpath*http://msdl.microsoft.com/download/symbols

看来我没有在服务器上正确配置它——是否有一个步骤我可能遗漏了?


设置符号服务器和/或符号网络共享时需要了解几件事。

WinDbg 符号加载顺序

在符号路径中从头到尾搜索符号,即在符号路径中C:\a;C:\b,它会首先查找C:\a然后在C:\b。虽然这并不重要,但它对性能影响很大。如果您有自己的符号,请始终将它们放在前面,以便将 HTTP 往返保存到 Microsoft 服务器。

符号存储类型

符号存储类型分为三种:

  • 本地存储(磁盘上的目录)
  • 服务器存储(网络共享)
  • 符号服务器/HTTP 存储(带有 HTTP URL)

符号存储层

您可以拥有三种类型的符号存储,并且不应将它们混合在一个目录中:

  • 0 层或简单的 PDB 文件的平面列表,通常作为构建脚本或复制/粘贴操作的输出创建。
  • 2 层:符号存储为<filename>.pdb\<hash>\<filename>.pdb。您可以从现有的空(0 字节)中识别出 2 层符号存储pingme.txt文件和一个000Admin文件夹。不要删除那些。
  • 3 层:符号存储为<fi>\<filename>\<hash>\<filename>.pdb>。您可以从空(0 字节)中识别出 3 层符号存储index2.txt文件。不要删除它。三层存储应该可以提高性能。

您可以使用以下命令将符号从 0 层存储放置到 2 层或 3 层存储:symstore.exe它是WinDbg 附带的。 您可以使用以下命令将 2 层商店转换为 3 层商店:convertstore.exe。如果出现错误,请参阅转换存储错误 https://stackoverflow.com/questions/71067861/what-do-the-various-convertstore-errors-mean.

创建“符号服务器”

您所设置的不是符号服务器,而是服务器符号存储,因为您使用(并且想要使用)网络共享,而不是 HTTP Web 服务器。以下是设置步骤:

  1. 在服务器上新建一个空目录
  2. 如果您想添加来自不同计算机的符号,请共享具有写入权限的文件夹。如果您从服务器本身添加符号(例如,如果服务器是构建可执行文件的持续集成服务器),则读取访问权限应该足够了。
  3. Run symstore add /3 /f "Filename.pdb" /s "\\server\symbols" /t "Title"如果您想从不同的机器添加符号或使用/s "C:\share\symbols"如果您在本地添加它们。

对您要添加的 PDB 文件的所有版本重复步骤 3。您还可以使用通配符,例如*.pdb。理想情况下,您将该步骤集成到构建过程中。

在WinDbg中使用网络共享

出于性能原因,开发人员希望在本地缓存来自网络的您自己的符号以及 Microsoft 符号。因此,我们先创建一个这样的本地缓存:

.sympath cache*C:\Symbols

我通常让缓存文件夹由 NTFS 压缩,因为符号压缩得很好。

接下来,我们先找到自己的符号,以避免往返微软:

.sympath+ \\server\symbols

最后,尝试从 Microsoft 下载其他所有内容:

.symfix+

如果您对 WinDbg 工作区有所了解,则可以将符号路径设置保存在工作区中,这样您就无需在每个调试会话中键入所有这些内容。不幸的是,如果你把它全部放在一行中并用分号分隔(我不太明白为什么),它不起作用,但你可以输入.sympath现在并复制结果。它应该是

cache*c:\symbols;\\server\symbols;SRV*http://msdl.microsoft.com/download/symbols

潜在问题

我现在无法重现这一点,但我记得一些问题。原因是:WinDbg 在访问网络共享时不会要求提供凭据。解决方法是:如果您没有收到来自\\server\symbols,在 Windows 资源管理器中打开该网络共享。 Explorer 将要求提供凭据,它们将被 Windows 缓存,从而被 WinDbg 隐式使用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何设置 Windows 符号服务器 的相关文章

  • 为什么在连接两个字符串时 Python 比 C 更快?

    目前我想比较 Python 和 C 用来处理字符串的速度 我认为 C 应该比 Python 提供更好的性能 然而 我得到了完全相反的结果 这是 C 程序 include
  • 如何从 C# 中的 dataTable.Select( ) 查询中删除单引号?

    所以我有一个经销商名称列表 我正在我的数据表中搜索它们 问题是 一些傻瓜必须被命名为 Young s 这会导致错误 drs dtDealers Select DealerName dealerName 所以我尝试替换字符串 尽管它对我不起作
  • 在c#中执行Redis控制台命令

    我需要从 Redis 控制台获取 客户端列表 输出以在我的 C 应用程序中使用 有没有办法使用 ConnectionMultiplexer 执行该命令 或者是否有内置方法可以查找该信息 CLIENT LIST是 服务器 命令 而不是 数据库
  • 如何填充 ToolStripComboBox?

    我发现它很难将数据绑定到ToolStripComboBox 好像没有这个ValueMember and DisplayMember特性 怎么绑定呢 访问toolstripcombobox中包装的组合框并访问其ValueMember Disp
  • 如何使用 Castle Windsor 将对象注入到 WCF IErrorHandler 实现中?

    我正在使用 WCF 开发一组服务 该应用程序正在使用 Castle Windsor 进行依赖注入 我添加了一个IErrorHandler通过属性添加到服务的实现 到目前为止一切正常 这IErrorHandler对象 一个名为FaultHan
  • Visual Studio 在构建后显示假错误

    我使用的是 Visual Studio 2017 构建后 sln在调试模式下 我收到错误 但是 当我通过双击错误列表选项卡中的错误来访问错误时 错误会从页面中消失 并且错误数量也会减少 我不太确定这种行为以及为什么会发生这种情况 有超过 2
  • C# 数据表更新多行

    我如何使用数据表进行多次更新 我找到了这个更新 1 行 http support microsoft com kb 307587 my code public void ExportCSV string SQLSyntax string L
  • 从客户端访问 DomainService 中的自定义对象

    我正在使用域服务从 Silverlight 客户端的数据库中获取数据 在DomainService1 cs中 我添加了以下内容 EnableClientAccess public class Product public int produ
  • 使用可变参数包类型扩展的 C++ 函数调用者包装器

    我绑定了一些 API 并且绑定了一些函数签名 如下所示 static bool WrapperFunction JSContext cx unsigned argc JS Value vp 我尝试将对象和函数包装在 SpiderMonkey
  • C# 存档中的文件列表

    我正在创建一个 FileFinder 类 您可以在其中进行如下搜索 var fileFinder new FileFinder new string C MyFolder1 C MyFolder2 new string
  • 识别 Visual Studio 中的重载运算符 (c++)

    有没有办法使用 Visual Studio 快速直观地识别 C 中的重载运算符 在我看来 C 中的一大问题是不知道您正在使用的运算符是否已重载 Visual Studio 或某些第三方工具中是否有某些功能可以自动突出显示重载运算符或对重载运
  • 在视口中查找 WPF 控件

    Updated 这可能是一个简单或复杂的问题 但在 wpf 中 我有一个列表框 我用一个填充数据模板从列表中 有没有办法找出特定的数据模板项位于视口中 即我已滚动到其位置并且可以查看 目前我连接到了 listbox ScrollChange
  • 如何在 C 中安全地声明 16 位字符串文字?

    我知道已经有一个标准方法 前缀为L wchar t test literal L Test 问题是wchar t不保证是16位 但是对于我的项目 我需要16位wchar t 我还想避免通过的要求 fshort wchar 那么 C 不是 C
  • 保护 APK 中的字符串

    我正在使用 Xamarin 的 Mono for Android 开发一个 Android 应用程序 我目前正在努力使用 Google Play API 添加应用内购买功能 为此 我需要从我的应用程序内向 Google 发送公共许可证密钥
  • Unity:通过拦截将两个接口注册为一个单例

    我有一个实现两个接口的类 我想对该类的方法应用拦截 我正在遵循中的建议Unity 将两个接口注册为一个单例 https stackoverflow com questions 1394650 unity register two inter
  • 将数组作为参数传递

    如果我们修改作为方法内参数传递的数组的内容 则修改是在参数的副本而不是原始参数上完成的 因此结果不可见 当我们调用具有引用类型参数的方法时 会发生什么过程 这是我想问的代码示例 using System namespace Value Re
  • 实体框架中的“it”是什么

    如果以前有人问过这个问题 请原谅我 但我的任何搜索中都没有出现 它 我有两个数据库表 Person 和 Employee 对每个类型的表进行建模 例如 Employee is a Person 在我的 edmx 设计器中 我定义了一个实体
  • 如何减少具有多个单元的 PdfPTable 的内存消耗

    我正在使用 ITextSharp 创建一个 PDF 它由单个 PdfTable 组成 不幸的是 对于特定的数据集 由于创建了大量 PdfPCell 我遇到了内存不足异常 我已经分析了内存使用情况 我有近百万个单元格的 1 2 在这种情况下有
  • Objective-C / C 给出枚举默认值

    我在某处读到过关于给枚举默认值的内容 如下所示 typedef enum MarketNavigationTypeNone 0 MarketNavigationTypeHeirachy 1 MarketNavigationTypeMarke
  • 如何将十六进制字符串转换为无符号长整型?

    我有以下十六进制值 CString str str T FFF000 如何将其转换为unsigned long 您可以使用strtol作用于常规 C 字符串的函数 它使用指定的基数将字符串转换为 long long l strtol str

随机推荐

  • 显示模态控制器时与呈现控制器交互

    在呈现模型视图控制器时是否可以与呈现视图控制器进行交互 VC1 VC2 在上图中 VC1 是presentingViewControllerVC2 是presentedViewController 我想要实现的用户体验是用户可以与VC1和V
  • NSURLCache 内存大小为零

    我在使用同步调用缓存 NSURLConnection 响应时遇到问题 我在一个类中初始化缓存 然后在另一个类中使用它 请注意高速缓存容量如何初始化为 100KB 但随后又神奇地重置为零 id init if self super init
  • 来自 chokidar 的错误:错误:未知:未知错误,请注意

    在新的 Angular 应用程序中 我收到以下错误 Error from chokidar Error UNKNOWN unknown error watch 我已经删除并重新安装了node modules 再次下载整个项目等等 节点版本是
  • 检测在兼容模式下在 iPad 上运行的 iPhone 应用程序

    我的 iPhone 应用程序并不通用 但我希望它有一个功能可供在 iPad 上玩游戏的人使用 有什么方法可以检测您是否在兼容模式下在 iPad 上运行 用于检测机器规格的 UIDevice 方法都会返回您在 iPhone 上获得的值 至少在
  • iFrame 内的路由错误

    我搭建了一个测试应用程序 当我将 iFrame 放入视图中时出现路由错误 这是我添加 iFrame 的显示模板 视图 条 show html erb p b Body b p 我这样调用页面 http localhost 3000 bars
  • 飞碟不读取样式表

    我在 asp net 应用程序 使用 IKVM 中使用 Flyingsaucer 和 iText 将 HTML 转换为 PDF 如果我将样式直接放在 html 中 它可以正常工作 即使样式放在样式标签之间 但是当我链接样式表时 它无法注意到
  • CMake 项目找不到共享库

    我正在使用 CMake 构建跨平台项目 目前我正在尝试在 Linux 上运行它 我最近添加了一个用于运行测试的项目 但它不会运行 因为它找不到共享库之一 特别是libtbbmalloc so 2 tests error while load
  • 静态析构函数

    假设我有 void foo static Bar bar c 是否保证 Bar Bar 在 bar 上被调用 并且 Bar Bar 永远不会在 bar 上调用 直到 main 退出之后 Thanks 是的 第一次foo 叫做 Bar bar
  • 您如何向非程序员解释演员? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 好吧 标题差不多就是这样 如果我让一个非技术人员 我的妈妈 12 岁的男孩 可卡犬坐在你面前并要求你解释actors http en
  • Pandas - groupby ValueError:无法使用包含多个元素的元组对列进行子集化。使用列表代替

    我将我的 Pandas 从我认为是 1 5 1 更新到了 2 0 1 无论如何 我开始在一些以前运行良好的代码上出现错误 df df groupby df date dt date Lake Canyon mean reset index
  • 警告 C26454:算术溢出:“-”运算在编译时产生负的无符号结果 (io.5)

    代码分析 ON NOTIFY TCN SELCHANGE IDC TAB HISTORY TYPE CAssignHistoryDlg OnTcnSelchangeTabHistoryType 警告 C26454 算术溢出 运算产生负的无符
  • 使用 EF Core 在 Azure Functions 上的 Application Insights 中启用 Sql 依赖关系

    我有一个 Azure Function v3 应用程序 它使用Microsoft EntityFrameworkCore 3 1 5 我无法启用 SQL 依赖项跟踪 已经挣扎了1天了 为了隔离问题 我创建了一个不带 EF 的独立 Azure
  • 如何在Sphinx Alabaster主题下编辑侧边栏

    我有以下内容index rst file Know the cell population of your data Some content toctree maxdepth 2 Installation toctree maxdepth
  • 阻止 Chrome 缓存网站的 DNS 记录

    Chrome 会缓存 DNS 记录 并且在成功连接到我的网站 除非重新启动 后往往会忽略对主机文件的更改 启用 DNS 预取后 这种情况更加明显 是否有任何页面标头指示 Chrome 不缓存网站的 DNS 喜欢Cache Control或类
  • 您可以安装不需要 Visual Studio 的独立 TFS 客户端吗?

    是否可以在未安装 Visual Studio 的服务器上获得独立的 TFS 客户端 我们想要一种从服务器 访问 TFS 项目的方法 而无需安装 Visual Studio 可能的 我见过 Team Explorer 但是如果没有 Visua
  • 获取连接网络的 WiFi 信号强度

    我正在尝试在 Android 应用程序中显示已连接 WiFi 网络的信号强度 我尝试过以下方法 Receiver for information on the network info private BroadcastReceiver m
  • CakePHP:向表单添加字段(动态)

    我正在尝试动态地将字段添加到我的 CakePHP 表单中 但似乎我使用的每种方法都有其自己无法修复的缺点 这是我尝试过的 不要添加新的输入 只需用逗号分隔单个输入中的值即可 这看起来很简单 但在尝试分解输入并将每个值保存在数据库中的新行中时
  • 为 C# 生成 XML 文档的 XSD? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有谁知道某处是否有 XSD 文件可用于验证使用 doc 选项编译 C 项目时生成的 XML 文档 我想
  • 如何为依赖动态数据的函数编写单元测试?

    假设您有一个网站 它使用一个函数从数据库检索数据并返回要显示 解析 等的结果 由于从数据库检索的数据是动态的 并且可能每天都在变化 因此如何正确地为此函数编写单元测试 假设该函数应该返回一个结果数组 显然 单元测试可以测试是否返回数组 但是
  • 如何设置 Windows 符号服务器

    我在网络上有一个备用服务器 我想用它来托管我们所有的构建符号 我已经知道如何在本地开发系统上设置符号缓存并将调试器 例如 Windbg 指向 符号文件路径 中的该路径 我认为我可以对网络上具有自己的符号缓存 例如 host symbols