从 Visual Studio 中的符号服务器加载与正则表达式匹配的特定符号

问题描述 投票:0回答:1

我们有一个符号服务器来托管我们内部库的 PDB。所有发布的 DLL 都以前缀“ABC”开头

我想将 Visual Studio 配置为仅加载与 ABC 匹配的指定模块。*

在工具 -> 选项 -> 调试 -> 符号中,当我选中“仅指定的模块”并添加“ABC.*.dll”或“ABC.*”时,没有加载任何符号;但是,当我手动列出 DLL 时,它们会起作用。有什么办法可以设置吗?

此外,当我选中“所有模块,除非排除”时,我的符号已加载,但 Visual Studio 也浪费时间为我们不托管的其他 DLL 请求符号。

其他信息:

使用 Visual Studio 2012 SP2 NuPeek 是我们的 NuGet / Symbol Server

visual-studio nuget visual-studio-debugging debug-symbols pdb-files
1个回答
1
投票

您可以将您的符号服务器重定向到本地运行的 python(或您选择的语言)脚本。我这样做是为了在内部重写请求,这样我就可以在 Microsoft 不支持的网络场景中提供文件。

如果您查看 http 请求,您可以连接到 URL 以运行您的正则表达式。 在某些时候,符号服务器将发出如下所示的请求:

http://server.name/serverpath/my.pdb/CHECKSUMOFPDB0123456/my.pdb 

使用 bottle.py 你可以像这样写一个服务器。

@route('/<pdbname>/<pdbchecksum>/<pdbname2>') 
def http_handler(pdbname, pdbchecksum, pdbname2):
    # check its directly requesting a pdb, rather than redirects or similar
    if pdbname == pdbname2:
       if matchesMyRegex(pdbname):
           return redirect("http://myserver/%s/%s/%s" %(pdbname, pdbchecksum, pdbname2))
    return abort(404, "Not found")

我用的是SimpleHTTPServer,但是pseudo bottle.py代码更简洁。

© www.soinside.com 2019 - 2024. All rights reserved.