cc682/NetRoc
http://netroc682.spaces.live.com/
DbgSrv命令行选项
DbgSrv命令行使用如下语法。
dbgsrv -t ServerTransport [-x]
dbgsrv -t ServerTransport [-sifeo image.ext] -c[s] AppCmdLine
dbgsrv -?
所有选项都是区分大小写的。
参数
-t
ServerTransport
指定传输协议。完整的可用协议列表和每种情况下ServerTransport 的语法,查看激活进程服务器。
-x
使得剩余的命令行被忽略。该选项当从可能在命令行中添加一些不需要的字符的程序启动DbgSrv时有用。
-sifeo
Executable
挂起给定映像的映像文件执行选项(Image File Execution Option (IFEO))值。Executable需要包含可执行映像的名字和扩展名。-sifeo 使得DbgSrv可以设置成一个使用--c 启动的映像的IFEO调试器,而不会由于IFEO设置造成递归调用。
-c
让DbgSrv创建一个新进程。这和从调试器创建新进程类似,但是该进程被创建时并没有被调试。要调试这个进程,需要启动CDB或WinDbg并使用-premote 选项通过进程服务器附加上去。
s
使得新创建的进程立即挂起。当使用CDB或WinDbg连接到该进程时,可以使用-pr命令行选项或~*m命令来恢复该进程的执行。
AppCmdLine
指定要创建的进程的完整命令行。AppCmdLine 可以是Unicode或ASCII字符串并且可以包含任何可打印字符。所有出现在-c[s]参数之后的文本都会当作AppCmdLine 。
-?
显示一个DbgSrv命令行帮助文本的信息框。
关于DbgSrv的使用,查看进程服务器(用户模式)。
KdSrv命令行选项
KdSrv命令行使用如下语法。
kdsrv -t ServerTransport
参数
-t
ServerTransport
指定传输协议。完整的可用协议列表和每种情况下ServerTransport 的语法,查看激活KD连接服务器。
如果输入kdsrv不带任何参数,会出现一个帮助文本的消息框。
关于KdSrv的使用的更多信息,查看KD连接服务器(内核模式)。
DbEngPrx命令行选项
DbEngPrx命令行选项使用如下语法。
dbengprx [-p] -c ClientTransport -s ServerTransport
dbengprx -?
参数
-p
使得即使所有连接都丢失了,DbEngPrx仍然继续存在。
-c
ClientTransport
指定用来连接到服务器的协议设置。使用的协议应该和服务器创建时的设置匹配。详细信息查看激活转发器。
-s
ServerTransport
指定当客户端连接到转发器时应该使用的协议设置。详细信息查看激活转发器。
-?
显示包含DbEngPrx命令行帮助文本的消息框。
关于DbEngPrx的使用的信息,查看转发器。
KDbgCtrl命令行选项
KDbgCtrl 命令行使用如下语法:
kdbgctrl [-e|-d|-c] [-ea|-da|-ca] [-eu|-du|-cu] [-sdb Size | -cdb]
kdbgctrl -cx
kdbgctrl -?
参数
-e
启用完整内核调试设置。
-d
禁用完整内核调试设置。
-c
显示当前的完整内核调试设置。
-ea
启用自动内核调试设置。
-da
禁用自动内核调试设置。
-ca
显示自动完整内核调试设置。
-eu
启用用户模式错误处理设置。
-du
禁用用户模式错误处理设置。
-cu
显示用户模式错误处理设置。
-sdb
Size
设置DbgPrint缓冲区大小。如果Size 带有0x前缀则被解释为16进制数字。如果带有0(零)前缀,则被解释为8进制。其他情况下,它被当作十进制数。
-cdb
显示当前DbgPrint缓冲区大小,以字节为单位。
-cx
检查当前的完整内核调试设置并返回一个适当的值。该选项不能和其它选项联合使用,并且不显示任何输出。它被设计为在能检查KDbgCtrl程序返回值的批处理文件中使用。可能的返回值如下:
值 | 意义 |
0x10001 | 完全内核调试被启用。 |
0x10002 | 完全内核调试被禁用。 |
其它值表示出现错误。KdbgCtrl不能检查当前的完整内核调试状态。 |
-?
显示KDbgCtrl的命令行帮助。
其它信息
关于KDbgCtrl所有设置的描述,查看使用DbgCtrl。
DbgRpc命令行选项
DbgRpc命令行选项必须包含且只包含-l、-e、 -t、 -c或–a开关中的一个。这些开关之后的选项由它们来决定。-s、 -p和-r选项可以和其它任何选项一起使用。
dbgrpc [-s Server -p ProtSeq] [-r Radix] -l -P ProcessID -L CellID1.CellID2
dbgrpc [-s Server -p ProtSeq] [-r Radix] -e [-E EndpointName]
dbgrpc [-s Server -p ProtSeq] [-r Radix] -t -P ProcessID [-T ThreadID]
dbgrpc [-s Server -p ProtSeq] [-r Radix] [-c|-a] [-C CallID] [-I IfStart] [-N ProcNum] [-P ProcessID]
dbgrpc -?
参数
-s
Server
允许DbgRpc从远程机器查看信息。服务器名不能由斜线开头。关于远程使用DbgRpc的更多信息,查看使用DbgRpc工具。
-p
ProtSeq
指定使用的远程传输。ProtSeq 可能的值为ncacn_ip_tcp (TCP 协议) 和ncacn_np (命名管道协议)。建议使用TCP协议。关于远程使用DbgRpc的更多信息,查看使用DbgRpc工具。
-r
Radix
指定命令行参数使用的进制数。默认是16。如果使用了-r参数,它必须放在行首,因为它只作用于后面的参数。它不会影响DbgRpc工具的输出。
-l
显示指定单元的RPC状态信息。示例查看获取RPC单元信息。
ProcessID
指定某个进程的进程ID(PID)。使用-l 选项时,它应该是包含指定单元的服务的进程。使用-t 选项时,它应该是包含指定线程的进程。使用-c 或-a选项时,该参数是可选的;它应该是拥有希望显示的调用的服务进程。
CellID1.CellID2
指定要显示的单元号。
-e
从系统的RPC状态信息搜索终端信息。示例查看获取RPC终端信息。
EndpointName
指定要显示的终端号。如果省略,系统上所有进程的终端都会显示出来。
-t
从系统RPC状态信息中搜索线程信息。示例查看获取RPC线程信息。
ThreadID
指定要显示的线程的ID。如果省略,指定进程的所有线程会被显示。
-c
在系统RPC状态信息中搜索服务器端调用信息(server-side call (SCALL))。示例查看获取RPC调用信息。
-a
在系统RPC状态信息中搜索客户端调用信息(client call (CCALL))。示例查看获取RPC客户端调用信息。该选项需要完整的RPC状态信息。
CallID
指定调用ID。该参数可选;仅在希望显示匹配指定的CallID 值的调用时使用。
IfStart
显示产生调用的接口的全局唯一标识符(UUID)的第一个DWORD。该参数可选;仅在希望显示匹配指定的IfStart 值得调用时包含。
ProcNum
指定调用的过程号。(RPC运行时通过按照IDL文件中的位置进行编号来区分接口中的不同的过程——接口中第一个过程为0,第二个为1,等等。)该参数可选;仅在希望显示匹配指定的ProcNum 值的调用时使用。
其他信息
关于调试Microsoft远程过程调用(RPC)的更多信息,查看RPC调试。
SymStore命令行选项
SymStore 事务支持下面这些语法形式。第一个参数必须是add 或del。 其他参数的顺序不重要。
symstore add [/r] [/p [/l] [-:MSG Message] [-:REL] [-:NOREFS]] /f File /s Store /t Product [/v Version] [/o] [/c Comment] [/d LogFile] [/compress]
symstore add [/r] [/p [/l] [-:REL] [-:NOREFS]] /g Share /f File /x IndexFile [/a] [/o] [/d LogFile]
symstore add /y IndexFile /g Share /s Store [/p [-:MSG Message] [-:REL] [-:NOREFS]] /t Product [/v Version] [/o] [/c Comment] [/d LogFile] [/compress]
symstore query [/r] /f File /s Store [/o] [/d LogFile]
symstore del /i ID /s Store [/o] [/d LogFile]
symstore /?
参数
/f
File
指定要添加的文件或目录的网络路径。
/g
Share
指定符号文件本来存储的服务器和共享。当使用/f时,Share 应该和File 指示符的开头相同。使用/y 时,Share 应该是原始符号文件的位置(不是索引文件)。这使得之后将符号文件移动到不同的服务器和共享时可以改变文件路径的一部分。
/s
Store
指定符号存储的根目录。
/m
Prefix
使得SymStore在存储文件或升级指针时使用以前缀开始的路径来使用符号。该选项不能和/x一起使用。
/h { PUB | PRI }
使得SymStore在存储或升级符号时使用共有符号(如果指定了PUB),或私有符号(如果指定了PRI)。该选项对二进制文件没有影响。
/i
ID
指定事务ID字符串。
/p
使得SymStore存储文件的指针,而不是文件本身。
/l
允许File 指定的文件在本地目录中而不是网络路径。(该选项仅在同时使用/f 和/p时使用。)
-:MSG Message
将指定的Message 添加到每个文件。(仅在使用/p时可以使用。)
-:REL
允许文件指针中的路径是相对路径。该选项隐含/ l选项。(仅在使用/p时可以使用。)
-:NOREFS
省略被存储的文件和指针的引用指针文件的创建。如果被修改的存储是使用该选项创建的,那么这个选项仅在符号存储最初被创建时有效。
/r
使得SymStore递归的添加文件或目录。
/t
Product
指定产品名字。
/v
Version
指定产品的版本。
/c
Comment
为事务指定一个注释。
/d
LogFile
指定一个用于命令输出的日志文件。如果没有指定它,则事务信息和其他输出被发送给stdout。
/o
使得SymStore显示详细输出。
/x
IndexFile
使得SymStore不存储实际的符号文件。作为替代,SymStore记录IndexFile 中的信息,使得SymStore可以在之后再访问符号文件。
/a
让SymStore将新的索引信息添加到一个已存在的索引文件中。(该选项只和/x 一起使用。)
/y
IndexFile
让SymStore从使用/x 创建的文件中读取数据。
/yi
IndexFile
将事务ID和注释添加到由/x选项创建的索引文件末尾。
/z { PUB | PRI }
使得SymStore仅索引指定类型的符号。指定PUB时,仅有不包含任何源码信息的符号会被索引。如果指定PRI,仅有包含完整的源码信息的符号会被索引。SymStore总是为二进制符号创建索引。
/compress
使得SymStore为每个拷贝到符号存储中的文件创建一个压缩后的版本而不是使用未压缩的文件。该选项仅在存储文件而不是指针时使用,所以不能和/p选项一起使用。
/?
显示SymStore 命令的帮助文本。
其他信息
关于SymStore 的更多信息,查看使用符号服务器和符号存储。