PDBCopy 命令行选项

PDBCopy 命令行使用以下语法。 参数可以按任意顺序包含。

pdbcopy OldPDB NewPDB [Options] 

pdbcopy OldPDB NewPDB -p [-f:Symbol] [-f:@TextFile] [Options] 

pdbcopy OldPDB NewPDB -p [-F:Symbol] [-F:@TextFile] [Options] 

pdbcopy InputPDB BackupPDB -CVE-2018-1037 [autofix|verbose]

pdbcopy /? 

参数

OldPDB
指定要读取的原始符号文件的路径和文件名,包括 .pdb 文件扩展名。 OldPDB 可能包含本地计算机上的目录的绝对路径或相对路径,也可以包含 UNC 路径。 如果未指定路径,则使用当前工作目录。 如果 OldPDB 包含空格,则必须用引号将其括起来。

NewPDB
指定要创建的新符号文件的路径和文件名,包括 .pdb 文件扩展名。 NewPDB 可能包含本地计算机上的目录的绝对路径或相对路径,也可以包含 UNC 路径。 此路径必须已存在;PDBCopy 不会创建新目录。 如果未指定路径,则使用当前工作目录。 如果 NewPDB 包含空格,则必须将其括在引号中。 指定的文件应不存在;如果存在,则新文件可能未写入,或者写入错误。

-P
使 PDBCopy 从新符号文件中删除私有符号数据。 如果旧符号文件不包含私有符号,则此选项不起作用。 如果省略此选项,PDBCopy 会创建符号内容与原始文件相同的新文件。

-f:Symbol
使 PDBCopy 从新符号文件中删除指定的公共符号。 符号 必须指定要删除的符号的名称,包括任何符号名称修饰 (例如,初始下划线) ,但不包括模块名称。 此选项需要 -p 选项。 如果使用多个 -f-f:@ 参数,PDBCopy 将从新符号文件中删除所有指定的符号。

-f:@TextFile
使 PDBCopy 从新符号文件中删除指定文本文件中列出的公共符号。 TextFile 指定此文件的绝对或相对) (文件名和路径。 此文件可以列出任意数量的符号的名称,每行一个符号,包括任何符号名称修饰 (例如,初始下划线) ,但不包括模块名称。 此选项需要 -p 选项。

-F:Symbol
使 PDBCopy 从新符号文件中删除所有公共符号和私有符号,指定的公共符号除外。 符号 必须指定要保留的符号的名称,包括任何符号名称修饰 (例如,初始下划线) ,但不包括模块名称。 此选项需要 -p 选项。 如果使用多个 -F-F:@ 参数,则所有指定的符号都将保留在新符号文件中。

-F:@TextFile
使 PDBCopy 从新符号文件中删除所有公共符号和私有符号,指定文本文件中列出的公共符号除外。 TextFile 指定此文件的绝对或相对) (文件名和路径。 此文件可以列出任意数量的符号的名称,每行一个符号,包括任何符号名称修饰 (例如,初始下划线) ,但不包括模块名称。 此选项需要 -p 选项。

选项 以下选项的任意组合。 这些选项区分大小写。

-s
导致新符号文件具有与旧文件不同的签名。 通常不应使用 -s 选项,因为新签名可能会导致 SymSrv 为新文件分配与旧文件不同的索引值,从而阻止新文件正确替换旧文件。

-vc6
导致 PDBCopy 使用 mspdb60.dll 而不是 mspdb80.dll。 此选项从不是必需的,因为 PDBCopy 会自动查找正确版本的 mspdb*.dll。 默认情况下,PDBCopy 使用 mspdb80.dll,这是 Visual Studio .NET 2002 和更高版本的 Visual Studio 所使用的版本。 如果符号是使用 Visual Studio 6.0 或更早版本生成的,则可以指定此命令行选项,以便 PDBCopy 将改用 mspdb60.dll。 但是,这不是必需的,因为即使不使用此选项,PDBCopy 也会查找相应的文件。 无论使用哪个 mspdb*.dll 版本,都必须位于从中启动 PDBCopy 的命令提示符窗口的可执行路径中。

-CVE-2018-1037

报告 InputPDBFile 是否存在 CVE-2018-1037 中所述的问题,并选择性地修正问题。 有关详细信息和详细的使用情况信息,请参阅 KB# 4131751 - PDBCopy 工具

-?
显示 PDBCopy 命令行的帮助文本。

其他信息

有关 PDBCopy 工具的详细信息,请参阅 使用 PDBCopy