初来上班,免不了看别人代码。快速搞懂别人代码是我现在受到的一大挑战。寻摸着规律,发现一边进行调试,一边进行行行注释的逻辑判断不失为一种妙招。

  c#调试用的是vs2012。f11键和f10和f5键的应用,配合着断点加监控很快就会发现除去表面逻辑下的背后运行机制。

   代码不可能没有错误。而自己小白来找前辈的错误很难。就是运行出错,每次调试出现的结果不一,自己抓耳挠腮。知道问题,却不能够找到确切原因。就算找到原因,也没有一个好的办法可以解决。

  先来说调试遇到的疑难杂症:

  1.有时候f11单步调试会发现,不继续往下走,直接c#程序的界面弹出来。

   经验:此方法有错误。例如,窗体的load事件,发现运行不过去的代码句子,直接跳出。解决办法:load里的东西放到构造函数里面,这里面运行会有错误提示。try,catch,抛出异常也不失为一个好的方法。

      和硬件相关。如果没有代码逻辑上的错误之外,看看硬件的具体参考信息。比如刚遇到一个问题就是摄像头的接收问题,通过大量测试经验来看,必须发送一个固定信息,接收语句才可以运行通过,要不然直接跳出。

  2.遇到不明确的对象所属类的时候,可以用控制台输出它所属类。

  错误分析经验之谈:

  1.逻辑归纳。把所有自己目前掌握的信息列出来,问题也明确的写出来。

  2.拿着成功运行的案例和自己失败的案例对比,试着列出原因来。多列几个原因。比如我知道摄像头recivefrom语句有错,且原因是必须send固定信息过去才有回收。原因可能出在send上(send中断或其它),也可能出在recivefrom上(recivefrom线程中断)。而直观上来看,认为receivefrom线程有问题(当然,send中断也导致了recivefrom的中断),丢了send问题原因的一种解释。

  3.试着把部分代码,自己新建一个小程序,单独测一下。也有意想不到的收获。

05-11 22:38