Debugging Tools for Windows

.attach (Attach to Process)

.attach 命令附加到新的目标进程。

语法

.attach [-premote RemoteOptionsAttachOptions PID 

参数

RemoteOptions
指定要附加到的进程服务器。该选项和-premote 命令行选项的内容一样。查看激活灵巧客户端获得语法的详情。
AttachOptions
指定如何进行附加。可以包含任意的下面这些选项:
-b
(Windows XP和之后的系统) 阻止调试器在附加到目标进程时请求初始断点。这在目标程序已经挂起或者想避免中断目标时有用。
-e
(Windows XP和之后的系统) 允许调试器附加到一个已经被调试的进程。查看重新附加到目标程序获得详细信息。
-k
(Windows XP和之后的系统) 打开一个本地内核调试会话。查看本地内核调试获得详细信息。
-f
除了要附加的新目标之外,冻结所有目标程序中的所有线程。这些线程直到新附加的进程产生异常时才会解冻。注意初始断点也属于一个异常。每个线程可以使用~u (Unfreeze Thread) 命令来解冻。
-r
(Windows XP和之后的系统) 使得调试器附加到目标进程时让它运行起来。这在程序已经被挂起并想恢复它执行时有用。
-v
对目标进行非侵入式调试。
PID
指定新的目标程序的进程ID。

环境

模式 仅用户模式
目标 仅活动调试
平台 所有

注释

该命令可以在CDB处于静止状态或已经在调试一个或多个进程时使用。不能在WinDbg处于静止模式时使用。

如果命令成功,调试器会在下一次执行运行命令时附加到指定进程。如果该命令在一行中使用了多次,则该使用该命令几次就需要多少条执行命令。

由于非侵入式调试不能使用执行命令,所以调试器一次不能对几个进程进行非侵入式调试。这也意味着使用.attach -v 命令会使得已存在的侵入式调试会话受到限制。

多个目标进程总是会一起被执行,除非有些进程被冻结或挂起了。

如果想附加到新进程并冻结所有已存在的目标,使用-f选项。例如,可能正在调试客户端程序的崩溃问题,并且需要附加到服务端进程上而不让客户端继续运行。

如果使用了-premote 选项,新进程会作为一个新系统的一部分。详细信息,查看调试多个目标

附加信息

其他附加到进程的方法的详细信息,查看附加到运行中的进程(用户模式)非侵入式调试(用户模式)

Build machine: CAPEBUILD