如何:附加到托管设备进程
更新:2007 年 11 月
在设备上附加到进程与在桌面上非常相似,区别在于,如果进程已在未附加调试器的情况下运行,则必须在设备上设置一个注册表项以启用托管调试功能。此注册表项的设置将一直保持,直至您将其更改;或者,对于仿真程序,将一直保持到仿真程序在不保存其设置的情况下关闭。
说明: |
---|
设置设备调试项会降低性能。在不进行调试时,请重置该项。 |
如果试图附加两个调试器,或者在未设置设备注册表项的情况下试图附加托管调试器,则您可能收到错误消息。
可以通过多种方式启动进程,如通过文件资源管理器、命令提示等等。下面的步骤中将通过“调试”菜单来启动进程。还可以在不附加托管调试器的情况下启动进程,然后在以后附加托管调试器。
如果是针对由 Platform Builder 生成的 Windows CE 平台,则必须使用 toolhelp.dll 库填充“可用进程”窗格。此库包含于 Windows Mobile SDK 中。
说明: |
---|
对于在以下说明中使用的某些 Visual Studio 用户界面元素,您的计算机可能会显示不同的名称或位置。这些元素取决于您使用的 Visual Studio 版本及设置。有关更多信息,请参见Visual Studio 设置。 |
调试托管进程
调试托管进程
在“调试”菜单上单击“启动”。
说明: 如果与从“调试”菜单启动的进程分离,则在执行下列步骤(以便在进程运行后附加到该进程)之前,将无法重新附加。也就是说,必须在设备上设置注册表项。
附加到已运行的托管进程
如果打算附加到已在运行的进程(例如,通过单击“开始执行(不调试)”,然后附加到正在运行的托管进程),则必须在进程启动之前以及尝试使用“附加到进程”对话框进行附加之前,先设置设备注册表项。下面的步骤对此过程进行了详细说明。
设置设备注册表项以便能够附加到正在运行的进程
在 Windows“开始”菜单上指向“所有程序”,指向“Microsoft Visual Studio 2008”,指向“Visual Studio Tools”,然后单击“远程注册表编辑器”。
使用远程注册表编辑器连接到设备。
定位至或创建以下注册表项:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETCompactFramework\Managed Debugger
设置或创建名为 AttachEnabled 的 DWORD 值。
将该值的数据设置为 1。
说明: 设置设备调试项会显著降低性能。在不进行调试时,请通过将数据值重置为 0 或删除 AttachEnabled 值来禁用托管附加。
关闭远程注册表编辑器。
现在已启用了托管附加,可以在不附加调试器的情况下启动进程,然后使用“附加到进程”对话框附加到该进程。
在托管进程运行后附加到该进程
按照上述步骤设置注册表项之后,在不附加调试器的情况下启动进程。
在“工具”菜单上单击“附加到进程”。
在“传输”框中单击“智能设备”。
在“限定符”框中单击“浏览”。
说明: “限定符”框预先设置了当前会话中最常用的设备。
在“连接到设备”对话框中选择平台,选择设备,然后单击“连接”。
在“可用进程”窗格中选择一个或多个要附加到的进程,然后单击“附加”。
说明: 默认情况下,代码类型自动设置为“托管(.NET Compact Framework)”(如果可用),否则设置为“本机(智能设备)”。若要重写默认设置,请单击“选择”以打开“选择代码类型”对话框。注意,您不能同时选中二者。
说明: 不支持互操作调试。即,不能同时调试托管和本机代码类型。
与进程分离或终止进程
与进程分离或终止进程
在“调试”菜单上指向“窗口”,再单击“进程”。
在“进程”窗口中右击要与之分离或终止的进程。
在快捷菜单上单击“终止进程”或“与进程分离”。
说明: 可以使用相同的快捷菜单重新打开“附加到进程”对话框。
填充“可用进程”窗格
在 Windows CE 项目中填充“可用进程”窗格
在 Windows CE OS 映像中包括文件 toolhelp.dll。
- 或 -
将文件 toolhelp.dll 手动复制到目标设备。