WinDbg 命令行选项

WinDbg 的首次用户应从 使用 WinDbg 调试 (经典) 部分开始。

WinDbg 命令行使用以下语法:

windbg [ -server ServerTransport | -remote ClientTransport ] [-lsrcpath ]
   [ -premote SmartClientTransport ] [-?] [-ee {masm|c++}] 
   [-clines lines] [-b] [-d] [-aExtension]  
   [-failinc] [-g] [-G] [-hd] [-j] [-n] [-noshell] [-o] [-openPrivateDumpByHandle Handle]
   [-Q | -QY] [-QS | -QSY] [-robp] [-secure] [-ses] [-sdce] 
   [-sicv] [-sins] [-snc] [-snul] [-sup] [-sflags 0xNumber] 
   [-T Title] [-v] [-log{o|a} LogFile] [-noinh] 
   [-i ImagePath] [-y SymbolPath] [-srcpath SourcePath] 
   [-k [ConnectType] | -kl | -kx ExdiOptions] [-c "command"] 
   [-pb] [-pd] [-pe] [-pr] [-pt Seconds] [-pv]
   [-W Workspace] [-WF Filename] [-WX] [-zp PageFile] 
   [ -p PID | -pn Name | -psn ServiceName | -z DumpFile | executable ] 

windbg -I[S] 

windbg -IU KeyString

windbg -IA[S] 

WinDbg 命令行选项的说明如下。 除 -j 外,所有命令行选项都区分大小写。 初始连字符可以替换为 /) (正斜杠。

如果使用 -remote-server 选项,则它必须显示在命令行上的任何其他选项之前。 如果指定 了可执行文件 ,则它必须显示在命令行的最后一个; 可执行文件 名称作为其自己的命令行参数传递给可执行程序后的任何文本。

参数

-serverServerTransport
创建可由其他调试器访问的调试服务器。 有关可能的 ServerTransport 值的说明,请参阅 激活调试服务器。 使用此参数时,它必须是命令行上的第一个参数。

-remoteClientTransport
创建调试客户端,并连接到已在运行的调试服务器。 有关可能的 ClientTransport 值的说明,请参阅 激活调试客户端。 使用此参数时,它必须是命令行上的第一个参数。

-premoteSmartClientTransport
创建智能客户端,并连接到已在运行的进程服务器。 有关可能的 SmartClientTransport 值的说明,请参阅 激活智能客户端

-a扩展
设置默认扩展 DLL。 默认值为 kdextx86.dll 或 kdexts.dll。 “a”后面不能有空格,并且不能包含 .dll 文件扩展名。 有关详细信息以及设置此默认值的其他方法,请参阅 加载调试器扩展 DLL

-B
不再支持此选项。

-c “command
指定要在启动时运行的初始调试器命令。 此命令必须用引号引起来。 可以使用分号分隔多个命令。 (如果命令列表很长,则将其放入脚本中,然后将 -c 选项与 $<、$、$><><、$、$>< (运行脚本文件) 命令可能更容易。)

如果要启动调试客户端,此命令必须适用于调试服务器。 不允许使用特定于客户端的命令,例如 .lsrcpath

-clineslines
设置命令历史记录中可在远程调试期间访问的大致命令数。 有关详细信息以及更改此数字的其他方法,请参阅 使用调试器命令

-d
(内核模式仅) 重启后,一旦加载内核模块,调试器就会进入目标计算机。 (此中断早于 -b 选项的中断。) 请参阅 崩溃和重新启动目标计算机 以了解更改此状态的详细信息和其他方法。

-ee {masm|c++}
设置默认表达式计算器。 如果指定 了 masm ,将使用 MASM 表达式语法。 如果指定 了 c++ ,则将使用 C++ 表达式语法。 如果省略 -ee 选项,则使用 MASM 表达式语法作为默认值。 有关详细信息 ,请参阅计算表达式

-failinc
使调试器忽略任何可疑的符号。 调试用户模式或内核模式小型转储文件时,此选项还会阻止调试器加载无法映射其映像的任何模块。 有关详细信息以及控制此内容的其他方法,请参阅 SYMOPT_EXACT_SYMBOLS

-G
(用户模式仅) 忽略目标应用程序中的初始断点。 此选项将导致目标应用程序在启动或 WinDbg 附加到目标应用程序后继续运行,除非设置了另一个断点。 有关详细信息 ,请参阅初始断点

-G
(用户模式仅) 忽略进程终止时的最终断点。 通常,调试会话在映像运行过程中结束。 此选项将导致调试会话在子级终止时立即结束。 这与输入命令 sxd epr 的效果相同。 有关详细信息,请参阅 控制异常和事件

-高清
(仅用户模式) 指定不应使用调试堆。

-I[S]
安装 WinDbg 作为事后调试器。 有关详细信息,请参阅 启用事后调试

尝试此操作后,将显示成功或失败消息。 如果包含 S ,则此过程在成功的情况下以静默方式完成;仅显示失败消息。

-I 参数不得与任何其他参数一起使用。 此命令实际上不会启动 WinDbg,尽管 WinDbg 窗口可能会暂时出现。

-IA[S]
将 WinDbg 与注册表中的文件扩展名 .dmp、.mdmp 和 .wew 相关联。 尝试此操作后,将显示成功或失败消息。 如果包含 S ,则此过程在成功的情况下以静默方式完成;仅显示失败消息。 建立此关联后,选择并按住 (或右键单击) 具有这些扩展名之一的文件将启动 WinDbg。

-IA 参数不得与任何其他参数一起使用。 此命令实际上不会启动 WinDbg,尽管 WinDbg 窗口可能会暂时出现。

-IUKeyString
将调试器远程处理注册为 URL 类型,以便用户可以使用 URL 自动启动调试器远程客户端。 KeyString 的格式 remdbgeng://RemotingOption为 。 RemotingOption 是一个字符串,用于定义 主题激活调试客户端中定义的传输协议。 如果此操作成功,则不显示任何消息;如果失败,则显示错误消息。

-IU 参数不得与任何其他参数一起使用。 尽管 WinDbg 窗口可能会暂时出现,但此命令实际上不会启动 WinDbg。

-iImagePath
指定生成错误的可执行文件的位置。 如果路径包含空格,则应用引号引起来。

-J
允许日记。

-k [ConnectType]
仅) 启动内核调试会话 (内核模式。 有关详细信息,请参阅 使用 WinDbg (经典) 进行实时 Kernel-Mode 调试 。 如果使用 -k 后没有任何 ConnectType 选项,则它必须是命令行上的最后一个条目。

-Kl
(内核模式仅) 在调试器所在的计算机上启动内核调试会话。

-kxExdiOptions
仅 (内核模式) 使用 EXDI 驱动程序启动内核调试会话。 有关 EXDI 的详细信息,请参阅 配置 EXDI 调试器传输

-log{o a|} LogFile
开始将信息记录到日志文件。 如果指定的日志文件已存在,如果使用 -logo ,则会覆盖该文件。 如果使用 loga ,输出将追加到文件中。 有关详细信息,请参阅 在 WinDbg 中保留日志文件

-lsrcpath
设置远程客户端的本地源路径。 此选项必须在命令行上遵循 -remote

-n
干扰符号加载:启用符号处理程序的详细输出。 有关详细信息以及控制此操作的其他方法,请参阅 SYMOPT_DEBUG

-noinh
仅 (用户模式) 防止调试器创建的进程从调试器继承句柄。 有关对此进行控制的其他方法,请参阅 使用 WinDbg 调试 User-Mode 进程

-noprio
防止任何优先级更改。 此参数将阻止 WinDbg 在活动期间优先处理 CPU 时间。

-noshell
禁止所有 .shell 命令。 只要调试器正在运行,此禁止就会持续,即使开始新的调试会话也是如此。 有关详细信息以及禁用 shell 命令的其他方法,请参阅 使用 Shell 命令

-o
(用户模式仅) 调试目标应用程序启动的所有进程 (子进程) 。 默认情况下,由正在调试的进程创建的进程将按正常方式运行。

-openPrivateDumpByHandleHandle
指定要调试的故障转储文件的句柄。

-pPID
指定要调试的十进制进程 ID。 这用于调试已在运行的进程。

-铅
仅 (用户模式) 防止调试器在附加到目标进程时请求初始中断。 如果应用程序已挂起,或者希望避免在目标中创建中断线程,则这非常有用。

-Pd
(用户模式仅) 导致目标应用程序不会在调试会话结束时终止。 有关详细信息 ,请参阅在 WinDbg (经典) 中结束调试会话

-体育
仅 (用户模式) 指示目标应用程序已在调试中。 有关详细信息 ,请参阅重新附加到目标应用程序

-pnName
指定要调试的进程的名称。 (此名称必须唯一。) 此名称用于调试已在运行的进程。

-公关
(用户模式仅) 导致调试器在附加到它时启动运行的目标进程。 如果应用程序已挂起,并且你希望它继续执行,则这非常有用。

-psnServiceName
指定要调试的进程中包含的服务的名称。 这用于调试已在运行的进程。

-ptSeconds
指定中断超时(以秒为单位)。 默认值为 30。 有关详细信息 ,请参阅控制目标

-光伏
仅 (用户模式) 指定调试器应非侵入性地附加到目标进程。 有关详细信息,请参阅 非侵入调试 (用户模式)

-问
取消显示“保存工作区?”对话框。 工作区不会自动保存。 有关详细信息 ,请参阅使用工作区 - WinDbg (经典)

-Qs
取消显示“重新加载源?”对话框。 不会自动重新加载源文件。

-QSY
取消“重新加载源?”对话框,并自动重新加载源文件。

-QY
取消显示“保存工作区?”对话框,并自动保存工作区。 有关详细信息 ,请参阅使用工作区 - WinDbg (经典)

-robp
这允许 CDB 在只读内存页上设置断点。 (默认情况下,此类操作会失败。)

-sdce
导致调试器在符号加载期间显示 文件访问错误消息 。 有关详细信息以及控制此操作的其他方法,请参阅 SYMOPT_FAIL_CRITICAL_ERRORS

-安全
激活 安全模式

-ses
使调试器对所有符号文件执行严格计算,并忽略任何可疑的符号。 有关详细信息以及控制此内容的其他方法,请参阅 SYMOPT_EXACT_SYMBOLS

-sflags 0xNumber
同时设置所有符号处理程序选项。 Number 应为前缀为 0x 的十六进制数 -- 允许不带 0x 的小数,但符号选项是二进制标志,因此建议使用十六进制。 应谨慎使用此选项,因为它将替代所有符号处理程序默认值。 有关详细信息,请参阅 设置符号选项

-sicv
导致符号处理程序忽略 CV 记录。 有关详细信息以及控制此操作的其他方法,请参阅 SYMOPT_IGNORE_CVREC

-罪
使调试器忽略符号路径和可执行映像路径环境变量。 有关详细信息,请参阅 SYMOPT_IGNORE_NT_SYMPATH

-Snc
导致调试器关闭 C++ 转换。 有关控制此内容的详细信息和其他方法,请参阅 SYMOPT_NO_CPP

-snul
禁用非限定名称的自动符号加载。 有关控制此内容的详细信息和其他方法,请参阅 SYMOPT_NO_UNQUALIFIED_LOADS

-srcpathSourcePath
指定源文件搜索路径。 使用分号 (分隔多个路径 ;) 。 如果路径包含空格,则应用引号引起来。 有关详细信息以及更改此路径的其他方法,请参阅 源路径

-支持
使符号处理程序在每次符号搜索期间搜索公共符号表。 有关控制此内容的详细信息和其他方法,请参阅 SYMOPT_AUTO_PUBLICS

-T标题
设置 WinDbg 窗口标题。

-V
启用调试器的详细输出。

-WWorkspace
加载给定的命名工作区。 如果工作区名称包含空格,请用引号将其括起来。 如果不存在此名称的工作区,则可以选择创建具有此名称的新工作区或放弃加载尝试。 有关详细信息,请参阅 使用工作区 - WinDbg (经典)

-WFFilename
从给定的文件加载工作区。 文件名 应包括文件和扩展名 (通常为 .wew) 。 如果工作区名称包含空格,请用引号将其括起来。 如果不存在具有此名称的工作区文件,则可以选择创建具有此名称的新工作区文件或放弃加载尝试。 有关详细信息,请参阅 使用工作区 - WinDbg (经典)

-Wx
禁用自动工作区加载。 有关详细信息,请参阅 使用工作区 - WinDbg (经典)

-ySymbolPath
指定符号搜索路径。 使用分号 (分隔多个路径 ;) 。 如果路径包含空格,则应将其括在引号中。 有关详细信息,以及更改此路径的其他方法,请参阅 符号路径

-zDumpFile
指定要调试的故障转储文件的名称。 如果路径和文件名包含空格,则必须用引号括起来。 可以通过包含多个 -z 选项一次打开多个转储文件,每个选项后跟不同的 DumpFile 值。 有关详细信息,请参阅 分析 User-Mode 转储文件 或使用 WinDbg 分析 Kernel-Mode 转储文件

-zpPageFile
指定修改后的页面文件的名称。 如果要调试转储文件并想要使用 .pagein (Page In Memory) 命令,这将非常有用。 不能将 -zp 与标准 Windows 页面文件一起使用,只能使用经过特殊修改的页面文件。

可执行
指定可执行进程的命令行。 这用于启动新进程并对其进行调试。 这必须是命令行上的最后一项。 将可执行文件名称后的所有文本作为其参数字符串传递给可执行文件。 有关详细信息,请参阅 使用 WinDbg 调试 User-Mode 进程

-?
弹出此 HTML 帮助窗口。

从命令行运行调试器时,请在应用程序文件名之后指定目标应用程序的参数。 例如:

windbg myexe arg1 arg2