Debugging Tools for Windows |
.shell 命令启动一个shell进程并将他的输出重定向到调试器或指定的文件。
.shell -i InFile [-o OutFile [-e ErrFile]] [Options] ShellCommand
模式 | 用户模式、内核模式 |
目标 | 活动目标、崩溃转储 |
平台 | 所有 |
.shell 命令后的整行都会被当作Windows命令 (即使包含分号)。该行不能用引号括起来。在.shell 和ShellCommand 之间必须有空格(多余的前导空格被忽略)。
如果没有使用-o OutFile 参数,则命令输出会出现在调试器命令窗口中。
执行不带参数的 .shell命令会激活shell并保持打开。之后的所有命令都会被当作Windows命令。这是调试器会显示<.shell process may need input>的信息,并且WinDbg提示符变成 Input> 。有时候如果调试器保持该shell打开,会出现一个另外的命令提示符窗口。应该无视该窗口,而所有的输入输出都通过调试器命令窗口进行。
要关闭shell并返回到调试器本身,可以键入exit 或.shell_quit。 (.shell_quit 命令要更强大,因为即使shell被冻结时也可以工作。)
调试CSRSS时不能使用该命令,因为CSRSS非活动时不能创建新进程。
可以使用-ci 标志来运行一个或多个调试器命令,并且将输出传递给shell进程作为输入。例如,可以将!process 0 7 命令的输出使用如下命令传递给一个Perl脚本:
关于访问命令shell的其他方法,查看使用Shell命令。