码迷,mamicode.com
首页 > 其他好文 > 详细

程序的调试(堆栈的使用)

时间:2015-06-14 18:30:06      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:

换新工作一个月,以前是做自动化测试的,对于代码的编译,调试一直都是停留在数据的输出,显示等层面的调试,从来没有考虑到更深的一层。汗颜。

正如领导所说。对于任何一个成熟的框架来说,都会有相应的log输出,如果仅仅是将将数据输出,显示进行调试,太机械了。作为一个开发人员,如何高效的的工作,高效的解决问题,这才是关键。

哈哈,不扯了,进入正题。

最近,在做一个线下网站的性能测试,需要找出线下网站的响应时间作为判断的标准。切入正题了。对于任何一个编程语言来说,都有对应的堆栈函数,便于用户进行调试程序,监控程序运行。

这一块,我们使用的是PHP debug_backtrace()函数,进行堆栈调试,同时将结果写入到对应的文本编辑器当中。

思路如下:将函数的堆栈输出以固定格式,输出到文件中。

我们在CI框架的外边,写了一个log文件,在这个log文件当中,我们根据编程语言的特性,在每一个函数运行的开始,输出打印函数执行的堆栈情况。

格式如下:

运行函数 运行函数对应的参数  当前时间  运行总时间  时间差

这种思路的输出方便程序猿查找问题。如何获取首次运行时间,我承认的是我的思路当时是乱的。领导的方法很简洁,就使用了bool类型值的使用。

源码如下:

is_first =false;

function test()

{

  if(!is_first)

{

  first_time=current_time;

  is_first=true;

}

}

//第一次使用test函数通过改变布尔数值来获取第一次时间。

学习总结:

第一:任何一个好的框架肯定有对应的log输出,比如说CI框架有其对应log文件输出,而且用户可以设置。

第二:主流的编程语言都有其对应的堆栈函数。

技术总结:堆栈+函数构造+log写入文件=好的调试系统。

 

程序的调试(堆栈的使用)

标签:

原文地址:http://www.cnblogs.com/freedream123/p/4575384.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!