问题标签 [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.

0 投票
0 回答
216 浏览

dbghelp - SymGetSymFromAddr32 中的死锁

我在我的可执行文件的测试版本中调用 SymGetSymFromAddr32。直到最近这才正常工作,但是当使用 Windows SDK 8.1 中的 dbghelp.dll 和 symsrv.dll 时,我的应用程序在调用此函数时挂起。

这是我得到的调用堆栈:

这是在使用 Windows SDK 8.1 中的 DLL 时(试用版本 6.3.9600.17200 和 6.3.9600.17298)。

当我从 Windows SDK 8.0(版本 6.2.9200.20512)切换回 DLL 时,应用程序可以正常工作并且不再挂起。

注意:为了确保我使用的是正确的 dbghelp.dll(支持符号服务器的那个,而不是 Windows 中默认安装的那个),我使用 LoadLibrary 显式加载 dbghelp.dll,并且 symsrv.dll 存储在同一个文件夹中.

有什么建议么?

0 投票
0 回答
1191 浏览

c# - dotPeek 符号服务器未向 VS2013 调试器提供源代码

我对dotPeek符号服务器特性的理解如下:

每当 IDE 要求提供给定程序集的调试信息时,dotPeek 会将程序集和符号(+ 反编译的源代码?)反编译回 IDE。

然而我的经验是这样的:

在配置我的 IDE 并在调试时检查输出窗口后,我看到正在加载所有托管程序集的符号。我可以毫无问题地进入这些库/.NET 平台并在那里进行调试。

但是有一个我遇到问题的第三党集会。输出窗口在我的应用程序启动期间打印:

但是,当我尝试进入 WebApi.Hal 类时,IDE 会要求我提供源代码文件,并且输出会打印以下内容:

配置:

选项 -> 调试 -> 符号:

按此顺序配置三个 Symbol 服务器

http://srv.symbolsource.org/pdb/Public

http://referencesource.microsoft.com/symbols

http://localhost:33417/

选项 -> 调试 -> 常规截图:

选项 -> 调试 -> 常规截图

我错过了什么?

0 投票
1 回答
1021 浏览

nuget - 如何配置 SymbolSource Server Basic

我按照Xavier Decosters 博客条目中的说明安装并运行了SymbolSource Server Basic

我已经按照SymbolSource的建议设置了 Visual Studio

问题是符号服务器为 Visual Studio 要求的所有 url 返回 404。

尝试加载 pdb 时,Visual Studio 会访问以下 url:

  • http.../WinDbg/pdb/MightyLittleGeodesy.pdb/82A03D09EC754F5893C3806CDA329EC92/MightyLittleGeodesy.pdb

  • http.../WinDbg/pdb/MightyLittleGeodesy.pdb/82A03D09EC754F5893C3806CDA329EC92/MightyLittleGeodesy.pd_

  • http.../WinDbg/pdb/MightyLittleGeodesy.pdb/82A03D09EC754F5893C3806CDA329EC92/file.ptr

    来自 Fiddler 的 404 错误

SymbolServer 网站有以下内容:

  • \...\Data\MightyLittleGeodesy\1.0.0.0\Binaries\MightyLittleGeodesy\82A03D09EC754F5893C3806CDA329EC92\MightyLittleGeodesy.pdb

    符号服务器数据目录

我在浏览器中尝试了大量的 url 变体,但我无法让 Symbol 服务器返回除 404 之外的任何内容。

有谁知道在这里做什么?

谢谢-Cedd

0 投票
1 回答
294 浏览

visual-studio - Visual Studio:通过注册表配置符号服务器

在 Visual Studio 中设置 Symbol Server涉及很多 clickety-clack:

  1. 转到工具 -> 选项 -> 调试器 -> 常规。
  2. 取消选中“仅启用我的代码(仅限托管)”。
  3. 取消选中“启用 .NET Framework 源单步执行”。是的,它具有误导性,但如果您不这样做,那么 Visual Studio 将忽略您的自定义服务器顺序(请参阅下文)。
  4. 勾选“启用源服务器支持”。
  5. 取消选中“要求源文件与原始版本完全匹配”</li>
  6. 转到工具 -> 选项 -> 调试器 -> 符号。
  7. 为本地符号/源缓存选择一个文件夹。
  8. 在“符号文件 (.pdb) 位置”下添加符号服务器。

有没有办法用一个简单的 REG 文件或类似的东西来自动化这个 rigamarole?

0 投票
1 回答
1277 浏览

visual-studio-2013 - VS2013 MFC 符号丢失

我的 Visual Studio 2013 无法加载 MFC 符号。在 Visual Studio 中设置一些选项后,我能够为大多数 Windows DLL 加载符号,但 MFC 符号(更准确地说:mfc120ud.i386.pdbmfc120d.i386.pdb)仍然丢失。

到目前为止我已经尝试过:

  • 启用 Microsoft 符号服务器。
  • 在“自动加载符号:”下选择“所有模块,除非排除”
  • 未选中“只是我的代码”
  • 在本地搜索文件

有任何想法吗?

0 投票
1 回答
287 浏览

debugging - 在 Windows 8.1 上找不到 wmp.dll 的符号

尝试在 Windows 8.1 上加载 wmp.dll 的调试符号时,symchk 显示它们在 Microsoft 符号服务器上不存在(见下文)。我还安装了Windows 8.1 x86 32 位零售符号,其中包含所有其他 WMP 文件(wmplayer、wmpeffects、wmpshell 等)的符号,但不包含 wmp.dll。

我也向众所周知的windbgfb [at] microsoft [dot] com地址发送了一封电子邮件,但没有得到回复。有没有其他方法可以要求微软提供这些符号?

顺便说一句,我的 wmp.dll 版本是 12.0.9600.17415,我很确定它仍然是 Windows 8.1 附带的原始版本。未安装包含较新版本的 Windows 更新。

0 投票
1 回答
635 浏览

c# - 未从符号服务器加载符号

我已按照指示创建符号并将其加载到本地符号服务器路径中。我将路径 C:\SymbolServer 添加到 VS 中的 .pdb 位置。

符号服务器文件目录

我还禁用了 Just My Code 并启用了源服务器支持。但是,每次我调试我的程序并查看模块窗口时,它都会说它从项目所在的默认路径加载。(C:\Users\mcgeedm\documents..)我希望它从 C:\SymbolServer 加载. 我正在使用 VS 2012。

0 投票
0 回答
126 浏览

visual-studio-2013 - SymbolSource 不提供异常源代码

我们维护自己的 nuget 服务器,我最近设置了一个 SymbolSource 服务器(http://www.symbolsource.org/;该网站目前没有响应。尝试使用该网站的 google 缓存或 archive.org 版本。图书馆您需要设置一个 SymbolSource 服务器可通过 nuget 获得。)以使用 .pdbs 和源来补充 nuget 服务器。按照这套安装说明(http://www.xavierdecoster.com/setting-up-your-own-symbolsource-server-step-by-step) 我能够为测试 nuget 包上传符号。我在与我以 nuget 形式使用它的机器不同的机器上创建了我的测试包,这样我的 Visual Studio 2013 将无法在本地找到源代码。我在 Visual Studio 2013 工具、选项、调试、符号中为 SymbolSource 服务器添加了一个条目。在工具、选项、调试、常规中,我取消选中“仅启用我的代码”,选中“启用源服务器支持”,并取消选中“要求源文件与原始版本完全匹配”。

我的测试 nuget 包有故意的错误(除以零),所以我会看到一些有趣的东西。当我创建一个主机应用程序并添加测试 nuget 包,然后调用错误的路径时,异常突然爆发,但不是显示源代码,而是弹出一个对话框,询问我源 .cs 文件的位置。由于测试nuget包的源代码不在项目使用它的机器上,我被迫点击“取消”。Visual Studio 破坏了 nuget 包之外的代码。那不是我所希望的。我曾希望 Visual Studio 会从 SymbolSource 服务器打开源代码。

.pdb 下载正确。如果我在调用代码中放置一个断点并进入对 nuget 包中对象的调用,我会看到 nuget 包的正确源代码。如果我随后调用在 nuget 对象中引发异常的代码,调试器会破坏 nuget 包的源代码,就像我在上面希望的那样。一旦发生这种情况,我可以关闭并重新启动项目,并且在 nuget 程序集中的中断仍然会弹出从 SymbolSource 服务器下载的源代码。

我可以猜到,当 nuget 包中出现异常时,Visual Studio 2013 会下载(或已经下载).pdb 文件。然后它知道它需要什么源文件,但在异常情况下它不会从 SymbolSource 服务器下载源文件。相反,它会打开一个对话框,询问源文件在本地计算机上的位置。如果源代码由于其他原因被下载(例如我已经介入),那么它会找到以前下载的源代码。

这似乎是 Visual Studio 错误,或者我错过了 Visual Studio 中的某些设置。我还需要做些什么才能在异常情况下从 SymbolSource 服务器下载源代码,而无需事先进入 nuget 包中的代码?

0 投票
1 回答
137 浏览

debug-symbols - 调试时不相关的符号出现在私有符号服务器中

我们有一个私有符号服务器(只是共享网络驱动器中的一个文件夹)。不久前,我注意到它包含许多不属于我们的 DLL 的符号(System.Xml、clr、kernel32 等)。_NT_SYMBOL_PATH环境变量设置为我的本地缓存在哪里并且是SRV*c:\symbols*G:\Foundations\Symbols*http://msdl.microsoft.com/download/symbols映射的网络驱动器。这是根据此处的说明:https ://msdn.microsoft.com/en-us/library/windows/desktop/ee416588(v=vs.85).aspx#symbol_servers 。c:\symbolsG

今天我终于弄清楚了所有非私有符号是如何到达那里的。我从私有符号服务器中删除了 clr.pdb 文件夹,并开始使用 ClrMD 调试转储。不仅将 clr 符号保存在我的本地缓存中,它们还重新出现在私有符号服务器中。

我该如何防止这种情况发生?我不希望我们的私有符号服务器包含不相关的垃圾,这些垃圾只会占用空间并使文件夹混乱。[我们那里已经有大约 2600 个文件夹,可能 90% 不是我们的。我无法想象如何清理这个......]

更新 1

所以事实证明,这实际上是预期的行为,正如另一个MSDN 页面所记录的那样:https://msdn.microsoft.com/en-us/library/windows/desktop/ms681416(v=vs.85)。 .aspx _

根据另一个文档页面(https://msdn.microsoft.com/en-us/library/windows/desktop/ms680689(v=vs.85).aspx),使用cache元素将某个文件夹标记为缓存。然而,设置_NT_SYMBOL_PATH=CACHE*c:\symbols;SRV*G:\Foundations\Symbols*http://msdl.microsoft.com/download/symbols并没有阻止向私有符号服务器添加符号,并且设置_NT_SYMBOL_PATH=CACHE*c:\symbols;SRV*G:\Foundations\Symbols;SRV*http://msdl.microsoft.com/download/symbols导致了一个奇怪的行为:VisualStudio 能够下载符号并且它们最终没有出现在我的私有符号服务器中,但是,ClrMD 无法下载符号我正在分析的转储...当我在 VS 中打开相同的转储时,它运行良好。所以我猜 ClrMD 以某种方式对符号路径做了一些不同的事情......

0 投票
1 回答
429 浏览

nuget - 将符号包推送到符号服务器的问题

我安装了一个符号服务器(在这篇文章之后:http ://www.xavierdecoster.com/setting-up-your-own-symbolsource-server-step-by-step )并将符号包推送到该服务器。到目前为止,它已经工作了。但是当我将我的机器升级到 Windows 10 和 Visual Studio 2015 企业版时,我无法再将我的符号包(使用 VS2015 构建)推送到符号服务器。

我试图四处搜索,但没有看到任何适合我的问题的解决方案

这是我尝试运行 push 命令时的问题: