Debugging Tools for Windows |
$<、 $><、$$<、$$><和$$>a< 命令读取指定的脚本文件的内容作为输入的调试器命令。
$><Filename
$$< Filename
$$>< Filename
$$>a< Filename [arg1 arg2 arg3 ... ]
模式 | 用户模式、内核模式 |
目标 | 活动目标、崩溃转储 |
平台 | 所有 |
如果该命令使用$$< 或$$><关键字,那么该关键字和Filename之间的空格是可选的。该命令后可以添加一个分号或其他命令。Filename 可以用引号括起来,不管Filename是否包含空格或者同一行是否还有其他命令,但是这不是必须的。
如果该命令使用$<或$><关键字,则不能在它和Filename之间加入任何空格。 不能使用引号来包含Filename 。该命令之后不能添加分号或其他命令。
$< 和$$<关键字逐个执行脚本文件中的命令。$><和$$><关键字打开脚本文件,将所有回车替换为分号,然后将转换后的文本当作单个命令块来执行。这些关键字在运行包含调试器命令程序的脚本时非常有用。关于这种程序的更多信息,查看使用调试器命令程序。
下表是如何使用这些命令的摘要信息。
关键字 | 文件名前是否允许空格? | 是否将脚本精简为单个命令块? |
---|---|---|
$< | 否 | 否 |
$>< | 否 | 是 |
$$< | 是 | 否 |
$$>< | 是 | 是 |
$$>a< | 是 | 是 |
调试器执行脚本文件时,命令和它们的输出都会在调试器命令窗口显示出来。当到达脚本末尾时,控制权返回到调试器。
$<、$><、$$<和$$><命令会回显脚本文件中包含的命令以及这些命令的输出。$$>a< 命令不会回显脚本文件中的命令,而仅仅只显示它们的输出。
脚本文件可以嵌套。如果调试器在脚本文件中遇到了这样的关键字,执行会移交给新的脚本文件,并且在它执行完成之后返回到先前的位置。脚本也可以被递归调用。
在WinDbg中,可以将附加的命令文本粘贴到调试器命令窗口中。
下面的例子示范了如何将参数传递给脚本文件Myfile.txt。假设该文件包含如下文本:
.echo The second argument is ${$arg2}.
可以通过使用类似这样的命令将参数传递给它:
命令的结果如下:
The second argument is mySecondArg.
下面的示例说明了党传递的参数数目不对时的情况。假设文件My Script.txt包含下面这些文本:
.echo The fifth argument is ${$arg5}.
.echo The fourth argument is ${$arg4}.
下面这条以分号分隔的命令行会产生这样的输出:
The first argument is First one.
The fifth argument is ${$arg5}.
The fourth argument is Four.
ecx=0021f4ac
例中,因为文件名和一些参数包含空格,所以用引号括起来了,虽然第五个参数看起来像是脚本需要的,但是实际上分号在第四个参数的位置就已经终止了$$>a<命令。