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 选项。
Options 以下选项的任意组合。 这些选项区分大小写。
-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。