设备和桌面调试器之间的差异

更新:2007 年 11 月

桌面调试器支持的大多数功能,设备调试器同样支持,但以下情况除外。

不支持编辑并继续

设备调试器不支持在中断模式下修改源代码并继续的能力。如果要在调试时修改代码,必须停止调试,编辑代码,然后使用修改后的源代码重新启动。如果试图在中断模式下更改代码,调试器将会发出警告。

本机调试器不支持函数计算

本机设备调试器不支持函数运算。您无法键入包含函数的表达式并使该函数求值后返回结果。

托管设备调试器支持函数运算。

互操作调试限制

您无法在调试器的单个实例中调试本机代码和托管代码。

若要对混合了本机代码和托管代码(或使用 pInvoke 的托管代码)的应用程序进行调试,请在需要开始单步执行代码的每一部分中设置断点。然后,为某一部分(如托管部分)附加任何所需的调试器。当需要另一调试器时,分离前一调试器并附加需要的调试器。可以根据需要不断重复这些分离/附加步骤以逐句通过整个程序。有关更多信息,请参见演练:调试同时包含托管代码和本机代码的解决方案

当前不支持在同一进程中同时使用这两个调试实例。

不支持基于属性的调试

.NET Compact Framework 当前不支持基于属性的调试。因此,为可视化工具等定义属性的能力对于设备调试器的用户不可用。

不支持桌面调试

无法使用设备调试器来调试为桌面编写的应用程序。请改用桌面调试器。

不支持内核调试

无法使用设备调试器进行内核调试。

不支持“仅我的代码”调试

不能使用“仅我的代码”调试。

运行时调试器 (Cordbg.exe) 添加

运行库调试器可以帮助工具供应商和开发人员查找并修复以 .NET Framework 公共语言运行库 (CLR) 为目标的程序中的 bug。设备项目将一个新命令和一个新的模式参数添加到运行时调试器。下表中描述了新命令和模式参数(在 Cordbg.exe 会话内部)的语法。

有关更多信息和完整语法,请参见 运行库调试器 (Cordbg.exe)

命令

说明

m[ode] EmbeddedCLR {0|1}

EmbeddedCLR 是将调试器设置为目标设备项目的模式参数。若要控制此设置,请指定 on 为 1,或指定 off 为 0。

conn[ect] machine_name port

连接到远程嵌入式 CLR 设备。

参数:

Machine_name

必需。远程计算机的名称或 IP 地址。

Port

必需。用来连接到远程计算机的端口。

连接问题

调试器运行时关闭设备将导致调试器由于连接失败而关闭。发生连接失败的原因是应用程序仍然在设备上后台运行。Pocket PC 上“X”按钮是一个智能最小化功能,它不关闭应用程序。相反,该按钮会将应用程序设置为后台运行。

若要正确关闭正在 Pocket PC 的后台运行的应用程序,请按照以下步骤操作:

从“开始”菜单选择“设置”,单击“系统”选项卡,然后点击“内存”。在“正在运行程序”选项卡上,敲击要关闭的应用程序,然后敲击“停止”。

请参见

其他资源

调试器指南

调试设备项目