VS2005 调试

[VS2005 调试]
调试窗口所出现的value列代表变量.toString(),因此,如果显示的是无用信息,请考虑在对应变量类中实现tostring()方法    public string ToString() {......}
[DebuggerDisplay("{
字段名} {字段}")]  某种意义上相当于ToString()

修改mcee_cs.dat文件(仅针对c#而言),在调试包安装目录下可以找到           我没找到,我的vs里有调试啊,应该是装了调试部分的,怎么没找到呢

通过给类写调试proxy类,调试过程显示的信息均为proxy的字段 
调试时为一个类构建proxy,举例如下:
代码自定义调试时命名空间   System.Diagnostics
class EmployeeProxy
{
 public int ID;
 public string Name;
 public string DepartmentName;
  
 public EmployeeProxy(Employee employee)
 {
  ID = employee.ID;
  Name = employee.FirstName + " " + employee.LastName;
  DepartmentName = employee.Department.Name;
 }
}

 [DebuggerTypeProxy(typeof(EmployeeProxy))]
 class Employee{

}

►[设置调试属性]
在不想显示的方法名前加
[DebuggerBrowseable(DebuggerBrowseable.Never)]    
System.Diagnostics
属性:
DebuggerBrowseable 隐藏成员
DebuggerDisplay 改变数据变量的显示值
DebuggerTypeProxy 不同类型视图
DebuggerVisualizer 自定义视图

►[自定义调试视图]
watch窗口中,有些类型的如图片,微软没有给出调试显示视图,所以需要自己编写代码显示XX类型的变量信息。如何显示图片大家都知道,但是如何把这个自定义的视图与图片调试挂在一起呢?很简单,其实就是给DialogDebuggerVisualizer类写扩展内容,并把含这个功能的dll复制到C:/Documents and Settings/Bluewater/My Documents/Visual Studio 2005/Visualizers目录下就行了     如下:

显示图片功能
namespace ImageVisualizer
{
 public partial class ImageForm : Form
 {
  public ImageForm(Image image)
  {
   InitializeComponent();

   this.pictureBox1.Image = image;
  }
 }
}

与调试image变量绑定
using System.Diagnostics;

[assembly: DebuggerVisualizer(typeof(ImageVisualizer.DebuggerSide), Target = typeof(Image), Description = "Image Visualizer")] //
可视化调试image类型时,调用ImageVisualizer.DebuggerSide.Show(..)

namespace ImageVisualizer
{
 
 public class DebuggerSide : Microsoft.VisualStudio.DebuggerVisualizers.DialogDebuggerVisualizer
 {
  
protected override void Show(Microsoft.VisualStudio.DebuggerVisualizers.IDialogVisualizerService windowService, Microsoft.VisualStudio.DebuggerVisualizers.IVisualizerObjectProvider objectProvider)
  {
   if (windowService != null)//
这个应该就是当前调试的服务,也有可能他另new一个啊
   {
    Image image = (Image)objectProvider.GetObject();//
watch中你点哪个变量就是哪个罗

    ImageForm imageForm = new ImageForm(image);

    imageForm.ShowDialog();
   }
  }

 }
}

►[多线程调试]       断点属性中
过滤线程调试:设置断点,点击断点标记,属性,过滤
执行到断点时,输出一些有用信息,或..

[即时窗口应用]
修改变量值,但不用重新编译
输入变量名     
输出变量值 

变量 赋值 语句 

 

 

 


[
两个概念]
字段:又叫域
属性:实现get    set

[线程相关概念]
挂起 sleep :暂停

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值