随笔分类 -  .net

摘要:查看线程和同步块1.查看托管线程 Threads命令显示进程中的所有托管线程及统计信息。-special选项显示由 CLR 创建的所有特殊线程,包括GC线程、调试器帮助程序线程、终结器线程、AppDomain卸载线程和线程池计时器线程。Threads!Threads -specialThreadCount: 2UnstartedThread: 0BackgroundThread: 1PendingThread: 0DeadThread: 0Hosted Runtime: no PreEmptive GC Alloc Lock ID OSID ThreadOBJ State GC Context 阅读全文
posted @ 2011-04-28 17:47 reni 阅读(894) 评论(1) 推荐(0)
摘要:综述 SOS是一个非托管调试器扩展,用来帮助对CLR托管代码进行分析与调试。可以通过加载到非托管调试器WinDbg、NTSD或者VisualStudio调试器中使用。不同的CLR版本都自带有对应的SOS,在对应的版本目录下。 .NET框架为开发人员隐藏了底层系统的复杂性,这虽然极大地提升软件开发效率,但也同时增加了对底层的技术细节了解的难度,使得一些问题调试起来更为困难,比如内存溢出或者死锁问题。 通过SOS提供的命令,可以直观的了解CLR托管代码的底层结构,更可以方便的进行调试,并诊断一些具体问题(如GC、锁)。 将调试器附加到目标进程后,就可以通过.loadby sos mscorw... 阅读全文
posted @ 2011-04-28 17:47 reni 阅读(1368) 评论(1) 推荐(0)
摘要:AppDomain Windows使用进程边界来隔离在同一台计算机上运行的应用程序。每一个应用程序被加载到单独的进程中,在目标进程中,不能通过任何有意义的方式使用从一个进程传递到另一个进程的内存指针,也不能在两个进程间进行直接调用,要使用代理间接调用。 CLR使用应用程序域(AppDomain)进行程序间的隔离,可以在单个进程中运行多个应用程序域,但隔离级别与进程相当,而且不会造成进程间调用或进程间切换等方面的额外开销。简单来讲,它可以提供与进程边界相当的隔离级别,而其性能开销则要低得多。 隔离应用程序对于应用程序安全十分重要。当一个应用程序中出现的错误不会影响其他应用程序。因为应用程序域可以 阅读全文
posted @ 2011-04-06 12:55 reni 阅读(1966) 评论(1) 推荐(1)