C#.Net组件开发 - 使用Attach to Process实时调试设计器代码(转)

本文转载于: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框架网,作者:孙中吕,如转载请注明出处。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏技术博文

ini_set()函数的使用 以及 post_max_size,upload_max_filesize的修改方法

Apache服务器处理: ini_set('display_errors', 'Off'); ini_set('memory_limit', -1); //-1...

2624
来自专栏玄魂工作室

Kali Linux Web渗透测试手册(第二版) - 1.2 - Firefox浏览器下安装一些常用的插件

1.2、为渗透测试配置web浏览器(即在Firefox浏览器下安装一些常用的插件)

2324
来自专栏帅小子的日常

sso系统使用

1343
来自专栏偏前端工程师的驿站

Java魔法堂:JVM的运行模式

一、前言                                 JVM有Client和Server两种运行模式。不同的模式对应不同的应用场景,而JVM...

1735
来自专栏杂烩

javaee项目性能检测之JavaMelody

    它并不是一个模拟请求类似JMeter的压力测试工具,而是一个衡量并且计算在应用上的操作信息的工具,也就是说,它只负责对行为进行监控,而不负责触发操作。J...

2672
来自专栏老安的博客

openstack 集成vmware 填坑经验

1072
来自专栏技术专栏

centos 部署spring boot应用

1313
来自专栏Java编程技术

Dubbo剖析-服务直连

为了方便开发及测试,一般需要绕过注册中心,只测试指定ip的服务提供者,这时候服务消费方和服务提供方就是点对点直联方式。这时候服务消费方会忽略注册中心的提供者列表...

2133
来自专栏landv

java编译通过,为什么运行却提示找不到或无法加载主类?

2765
来自专栏云计算教程系列

如何使用Bacula备份Ubuntu 14.04服务器

本教程将向您展示如何通过网络连接设置Bacula来创建远程Ubuntu 14.04主机的备份。这涉及在远程主机上安装和配置Bacula Client软件,并对现...

1500

扫码关注云+社区