我们正在尝试调试在.NET Embedded Compact 7上运行的CLR压缩框架应用程序中的内存泄漏。不幸的是,我们不能使用CLR事件探查器,因为它会生成“不支持的指令集”错误消息,并且显然与此设置不兼容。
我们可以看到我们所有的对象都被释放了,但它们从来没有被最终确定和释放,导致应用程序最终耗尽内存。一定有一些引用留在了某个地方,但是如果没有任何调试工具,我们就无法追踪到它们。有没有一种方法可以将垃圾收集器中的数据从外部代码中转储到调试中?似乎没有API,但显然CLR Profiler有一些方法可以做到这一点。
或者,有没有办法修复CLR Profiler?其他人问了这个问题(Visual Studio Device: Unsupported Instruction Set error while connecting to .Net CF CLR Profiler),但没有人理解这个问题,更不用说回答了。
注意:我不是在寻找我们的代码的帮助,也不能在这里发布它(它是专有的和巨大的),只是使用调试工具。谢谢。
发布于 2014-05-15 00:04:48
问题出在ActiveSync,如果你把它设置为TCP设备,它就能正常工作。
按照此处的说明进行操作:http://social.msdn.microsoft.com/Forums/en-US/0fd6095d-3532-460a-9a2e-5beb1d823781/unsupported-instruction-set-message-to-connect-to-netcf-35-device-for-using-remote-performance?forum=winembmngdapp
概括地说:
将rtfhost3_5.exe和rtf3_5.dll复制到设备上的\Windows目录。这些文件位于程序Files\Microsoft.NET\SDK\CompactFramework\version\bin.中
运行rtfhost3_5.exe获取IP地址。
使用rtfhost3_5.exe显示的IP地址添加一个新的"Manual TCP“设备。
从各种工具连接时使用新设备。
https://stackoverflow.com/questions/14724863
复制相似问题