本文转载于:CS框架网http://www.csframework.com/archive/2/arc-2-20110829-1811.htm
C#.Net组件开发 - 使用Attach to Process实时调试设计器代码
组件设计的调试对象为两个:一是我们关注的组件本身(Component/Control),二是组件的设计器(Component Designer/Control Designer)。调试组件本身只要设断点运行程序即可调试,因组件设计器在设计时工作而不是运行时,所以设断点是不能调试的。
大多数情况下开发人员用MessgeBox来弹出信息进行调试,这是一种简单可靠的方式,但是无法进入到代码内部实时调试,所以阻碍了开发进度,有种最佳解决方案,是通过Debug菜单的Attach to Process 方式支持运行时实时调试。
Attach to Process启动方式:
组件和控件的区别请参考
控件与组件的区别(Control&Component的区别)
http://www.csframework.com/archive/2/arc-2-20110630-1675.htm
组件编程模型图:
Attach to Process功能介绍:
VS IDE的 Debug菜单下面Attach to Process附加进程是用来把一个进程中的应用附加到VS调试环境中,对该应用进行调试,使用此技术的意义就是应用的运行和VS调试环境可以分开,一般 的应用调试就是跟着调试环境一起启动和结束,每次调试都需要重新从头启动应用。 那如果你只想调试调试应用的某一场景,那么你不得不浪费时间去推进到那个场景才能进行调试。 如果我们在VS IDE之外来启动应用,通过Attach的方式就会把该应用添加到VS IDE里面来,你多次的启动IDE都不会打断应用的运行。
Attach to Process 实时调试操作步骤:
一. 运行两个VS开发环境,打开同一个解决方案,如下图:
二. 在第二个解决方案(B)中设置调试断点,如下图:
三. 在第二个解决方案(B)中打开Debug\Attach to Process菜单,如下图:
四. Attach to Process窗体,在Available Processes列表中选择devenv.exe进程。
注:我们刚才打开两个VS解决方案理论上有两个devenv.exe才对,为什么只有一个?原因是当前解决方案的devenu进程是不支持调试的,不能附加到自己的进程进行调试.
选择devenv.exe ,点Attach按钮,如下图:
五. Attach to Process之后自动进入运行(调试)状态:
六. 切换到第一个解决方案(A)进行设计组件操作,如“生成MyNodeComponent的设计时代码”。
七. 当运行到设断点的代码处时,自动激活第二个解决方案(B),这时可看到进入实时调试状态,我们可以查看到组件或对象的实时内容。
八. 不过,调试状态下不支持修改代码的,否则会弹出Edit and Continue对话框。
版权:C/S框架网,作者:孙中吕,如转载请注明出处。