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 选项,则该选项必须出现在命令行上的任何其他选项之前。 如果指定了可执行文件,则它必须最后出现在命令行上;可执行文件名称之后的任何文本都将作为其自己的命令行参数传递给可执行程序。
参数
-服务器 ServerTransport
创建可由其他调试器访问的调试服务器。 有关可能的 ServerTransport 值的说明,请参阅激活调试服务器。 使用此参数时,它必须是命令行上的第一个参数。
-远程 ClientTransport
创建调试客户端,并连接到已在运行的调试服务器。 有关可能的 ClientTransport 值的说明,请参阅激活调试客户端。 使用此参数时,它必须是命令行上的第一个参数。
-premote SmartClientTransport
创建智能客户端,并连接到已在运行的进程服务器。 有关可能的 SmartClientTransport 值的说明,请参阅激活智能客户端。
-一个 外延
设置默认扩展 DLL。 默认值为kdextx86.dll或kdexts.dll。 “a”之后不得有空格,并且不能包含.dll文件扩展名。 有关详细信息以及设置此默认值的其他方法,请参阅加载调试器扩展 DLL。
-b
不再支持此选项。
-c ” command ”
指定要在启动时运行的初始调试器命令。 此命令必须用引号引起来。 多个命令可以用分号分隔。 (如果你有一个长命令列表,则将它们放在脚本中可能更容易,然后将 -c 选项与 $<、$、$><><、$><$(运行脚本文件)命令一起使用。
如果要启动调试客户端,此命令必须适用于调试服务器。 不允许使用特定于客户端的命令(如 .lsrcpath)。
-clines 线
设置在远程调试期间可以访问的命令历史记录中的大致命令数。 有关详细信息以及更改此数字的其他方法,请参阅使用调试器命令。
-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 窗口可能暂时出现。
-IU KeyString
将调试器远程处理注册为 URL 类型,以便用户可以使用 URL 自动启动调试器远程客户端。 KeyString 格式为 remdbgeng://RemotingOption
。 RemotingOption 是一个字符串,用于定义激活调试客户端主题中定义的传输协议。 如果此操作成功,则不显示任何消息;如果失败,将显示一条错误消息。
-IU 参数不得与任何其他参数一起使用。 虽然 WinDbg 窗口可能暂时出现,但此命令实际上不会启动 WinDbg。
-我 ImagePath
指定生成错误的可执行文件的位置。 如果路径包含空格,则应将其括在引号中。
-j
允许日记。
-k [ConnectType]
(仅限内核模式)启动内核调试会话。 有关详细信息,请参阅使用 WinDbg 的实时内核模式调试(经典版)。 如果使用 -k 而不遵循任何 ConnectType 选项,则它必须是命令行上的最后一个条目。
-kl
(仅限内核模式)在调试器所在的同一台计算机上启动内核调试会话。
-kx ExdiOptions
(仅限内核模式)使用 EXDI 驱动程序启动内核调试会话。 有关 EXDI 的详细信息,请参阅 配置 EXDI 调试器传输。
-log{o|a} LogFile
开始将信息记录到日志文件。 如果指定的日志文件已存在,则使用 -logo 时将覆盖该文件。 如果使用 loga ,输出将追加到文件。 有关详细信息,请参阅 在 WinDbg 中保留日志文件。
-lsrcpath
设置远程客户端的本地源路径。 此选项必须遵循 命令行上的 -remote 。
-n
干扰符号加载:启用符号处理程序的详细输出。 有关详细信息和其他控制方法,请参阅 SYMOPT_DEBUG。
-noinh
(仅限用户模式)防止调试器创建的进程从调试器继承句柄。 有关控制此内容的其他方法,请参阅 使用 WinDbg 调试用户模式进程。
-noprio
阻止任何优先级更改。 此参数将阻止 WinDbg 在活动期间优先处理 CPU 时间。
-noshell
禁止所有 .shell 命令。 只要调试器正在运行,即使新的调试会话已经开始,这种禁止也将持续。 有关详细信息,以及禁用 shell 命令的其他方法,请参阅 “使用 Shell 命令”。
-o
(仅限用户模式)调试目标应用程序启动的所有进程(子进程)。 默认情况下,由正在调试的进程创建的进程将正常运行。
-openPrivateDumpByHandle 处理
指定要调试的故障转储文件的句柄。
-p PID
指定要调试的十进制进程 ID。 这用于调试已在运行的进程。
-铅
(仅限用户模式)防止调试器在附加到目标进程时请求初始中断。 如果应用程序已挂起,或者想要避免在目标中创建进入线程,这非常有用。
-pd
(仅限用户模式)导致目标应用程序不会在调试会话结束时终止。 有关详细信息,请参阅 在 WinDbg 中 结束调试会话。
-体育
(仅限用户模式)指示目标应用程序已被调试。 有关详细信息,请参阅重新附加到目标应用程序。
-pn 名字
指定要调试的进程的名称。 (此名称必须唯一。)用于调试已在运行的进程。
-公关
(仅限用户模式)使调试器在附加到目标进程时启动运行的目标进程。 如果应用程序已挂起,并且希望应用程序恢复执行,这非常有用。
-psn ServiceName
指定要调试的进程中包含的服务的名称。 这用于调试已在运行的进程。
-铂 秒
指定中断超时(以秒为单位)。 默认为 30。 有关详细信息,请参阅控制目标。
-光伏
(仅限用户模式)指定调试器应以非侵入方式附加到目标进程。 有关详细信息,请参阅非侵入性调试(用户模式)。
-Q
禁止显示“保存工作区?”对话框。 不会自动保存工作区。 有关详细信息,请参阅“使用工作区 - WinDbg”(经典)。
-QS
禁止显示“重新加载源?”对话框。 源文件不会自动重新加载。
-QSY
禁止显示“重新加载源?”对话框,并自动重新加载源文件。
-QY
禁止显示“保存工作区?”对话框,并自动保存工作区。 有关详细信息,请参阅“使用工作区 - WinDbg”(经典)。
-robp
这允许 CDB 在只读内存页上设置断点。 (默认情况下,这样的操作会失败。)
-sdce
导致调试器在符号加载期间显示 文件访问错误消息 。 有关详细信息以及其他控制方法,请参阅 SYMOPT_FAIL_CRITICAL_ERRORS。
-安全
激活安全模式。
-ses
使调试器对所有符号文件执行严格评估,并忽略任何有问题的符号。 有关详细信息和其他控制方法,请参阅 SYMOPT_EXACT_SYMBOLS。
-sflags 0x 数
一次设置所有符号处理程序选项。 数字应是以 0x 为前缀的十六进制数字,允许使用不带 0x 的十进制,但符号选项是二进制标志,因此建议使用十六进制。 应谨慎使用此选项,因为它将覆盖所有符号处理程序的默认值。 有关详细信息,请参阅设置符号选项。
-sicv
使符号处理程序忽略 CV 记录。 有关详细信息和其他控制方法,请参阅 SYMOPT_IGNORE_CVREC。
-罪
使调试器忽略符号路径和可执行映像路径环境变量。 有关详细信息,请参阅 SYMOPT_IGNORE_NT_SYMPATH。
-snc
使调试器关闭 C++ 转换。 有关详细信息和其他控制方法,请参阅 SYMOPT_NO_CPP。
-snul
禁用非限定名称的自动符号加载。 有关详细信息和其他控制方法,请参阅 SYMOPT_NO_UNQUALIFIED_LOADS。
-srcpath SourcePath
指定源文件搜索路径。 用分号分隔多个路径(;)。 如果路径包含空格,则应将其括在引号中。 有关详细信息以及更改此路径的其他方法,请参阅源路径。
-支持
使符号处理程序在每次符号搜索期间搜索公共符号表。 有关详细信息和其他控制方法,请参阅 SYMOPT_AUTO_PUBLICS。
-T 标题
设置 WinDbg 窗口标题。
-v
启用调试器的详细输出。
-W 工作
加载给定的命名工作区。 如果工作区名称包含空格,请用引号将其括起来。 如果不存在此名称的工作区,则会选择使用此名称创建新工作区或放弃加载尝试。 有关详细信息,请参阅使用工作区 - WinDbg (经典版)。
-WF 文件名
从给定文件加载工作区。 文件名 应包含文件和扩展名(通常是 .wew)。 如果工作区名称包含空格,请用引号将其括起来。 如果不存在具有此名称的工作区文件,则会选择创建具有此名称的新工作区文件或放弃加载尝试。 有关详细信息,请参阅使用工作区 - WinDbg (经典版)。
-WX
禁用自动工作区加载。 有关详细信息,请参阅使用工作区 - WinDbg (经典版)。
-y SymbolPath
指定符号搜索路径。 用分号分隔多个路径(;)。 如果路径包含空格,则应将其括在引号中。 有关更改此路径的详细信息和其他方法,请参阅符号路径。
-z DumpFile
指定要调试的崩溃转储文件的名称。 如果路径和文件名包含空格,则必须用引号括起来。 通过包含多个 -z 选项,可以同时打开多个转储文件,每个选项后面都有一个不同的 DumpFile 值。 有关详细信息,请参阅使用 WinDbg 分析用户模式转储文件或分析内核模式转储文件。
-zp PageFile
指定修改后的页面文件的名称。 如果要调试转储文件,并且想要使用 .pagein(内存页)命令,这非常有用。 不能将 -zp 与标准 Windows 页面文件一起使用,只能使用经过特殊修改的页面文件。
可执行
指定可执行进程的命令行。 这用于启动新进程并对其进行调试。 这必须是命令行上的最后一项。 可执行文件名称之后的所有文本都作为其参数字符串传递给可执行文件。 有关详细信息,请参阅 使用 WinDbg 调试用户模式进程。
-?
弹出此 HTML 帮助窗口。
从命令行运行调试器时,请在应用程序文件名后为目标应用程序指定参数。 例如:
windbg myexe arg1 arg2