在观看了最新的hanselminutes on 9视频后,我进入了我们的开发环境并抓取了一些不同服务的转储。
打开转储文件后,我注意到有些可以在混合模式和本机模式下调试,而另一些只能在本机模式下调试。既然每个服务都是用托管代码编写的,为什么混合模式不可用?
在观看了最新的hanselminutes on 9视频后,我进入了我们的开发环境并抓取了一些不同服务的转储。
打开转储文件后,我注意到有些可以在混合模式和本机模式下调试,而另一些只能在本机模式下调试。既然每个服务都是用托管代码编写的,为什么混合模式不可用?
我想到了。根据MSDN 文档
调试器现在完全支持调试使用公共语言运行时 (CLR) 版本 4.0 的应用程序的托管转储。
事实证明,少数没有启用混合模式调试的进程当然是用 3.5 编写的。我想我应该早点阅读文档。:)
您收集了哪些“不同的服务”?
“因为每个服务都是用托管代码编写的” - 这是不正确的。并非所有服务都是托管代码。事实上,我想大多数都不是。我不认为当前在我的机器上运行的任何服务(仍然是 WinXP - 我实际上开始为它已经过时而感到尴尬......)是托管代码。
服务执行模型是在 Win32 API 中指定的,因此即使 Windows 附带的所有服务都是用托管代码编写的,第三方仍然可以编写、提供和安装本机代码服务。
也许现在越来越多的服务是在 Vista 和 Win7 上的托管代码,但肯定不是全部。