PHP - 如何快速定位BUG的方法

原创 2017年03月18日 11:53:43

快速定位BUG是程序员工作最头疼的问题 没有之一 尤其是当程序已经在online环境以后 So 听我说 其实定位问题也没有那么的难

  1. log方法
    你要保证日志的文件权限拥有权限和在一个安全的位置 PHP脚本放置的 Nginx 或 Apache的应用文件夹中 然后你可以自定义一下 error.log的位置 这个你可以在配置文件中指定
    需要将php.ini中的配置指令做如下修改:

-

  • error_reporting = E_ALL ;将会向PHP报告发生的每个错误

  • display_errors = Off ;不显示满足上条 指令所定义规则的所有错误报告

  • log_errors = On ;决定日志语句记录的位置

  • log_errors_max_len = 1024 ;设置每个日志项的最大长度

  • error_log = E:/php_log/php_error.log ;指定产生的 错误报告写入的日志文件位置

 <?php      
  ## error_log 函数
  if(!Ora_Logon($username, $password)){     
        error_log("将错误消息写入到操作系统日志中", 0);        //将错误消息写入到操作系统日志中   
    }   

   if(!($foo=allocate_new_foo()){   
        error_log("发送到管理员邮箱中", 1, ". mydomain.com");   //发送到管理员邮箱中   
    }  

    error_log("发送到本机对应5000端口的服务器中",   2,   "localhost:5000");     //发送到本机对应5000端口的服务器中   
    error_log("发送到指定的文件中",   3,   "/usr/local/errors.log");  //发送到指定的文件中   
?>  

2.安装Debug插件

xdebug.auto_trace = On    ;用于设定在脚本运行前是否自动跟踪方法的调用信息。
xdebug.show_exception_trace = On    
xdebug.remote_autostart = On  ;通常需要使用一个特定的HTTP GET / POST变量开始远程调试(参见远程调试)。这个设置设置为1时,Xdebug将始终尝试远程调试会话开始,尝试连接到一个客户,即使GET / POST / COOKIE变量并不需要。    
xdebug.remote_enable = On   ;这个开关控制Xdebug是否应该联系一个调试客户端监听的主机和端口的设置
xdebug.remote_host = 127.0.0.1  ;  选择主机的调试客户端运行时,可以使用主机名或IP地址。
xdebug.remote_port = 9000    
xdebug.remote_handler = dbgp   ;可以是“php3”选择旧的PHP 3样式调试器输出,’ gdb ‘使gdb调试器接口或“dbgp”——调试器协议。DBGp协议是唯一支持的协议。 
**注意:**Xdebug 2.1及以后版本只支持“dbgp”协议。   
xdebug.profiler_enable = on    ;创建配置文件中的文件输出目录。这些文件可以被KCacheGrind看到您的数据可视化。 

xdebug工具有很多设置的参数 是一款很方便快捷 跟踪脚本定位问题的超级好用的工具

3.自定义错误异常处理(try…catch Exception)

<?php
function inverse($x) {
    if (!$x) {
        throw new Exception('Division by zero.');
    }
    return 1/$x;
}

try {
    echo inverse(5) . "\n";
    echo inverse(0) . "\n";
} catch (Exception $e) {
    echo 'Caught exception: ',  $e->getMessage(), "\n";
}

// Continue execution
echo "Hello World\n";
?>

未完…待续

版权声明:本文为博主原创文章,未经博主允许不得转载。

php 找bug小技巧

1,file_put_contents("mylog.log",$mesList."\r\n",FILE_APPEND);  //将信息输出到mylog.log这个文件中(常用于在页面无法直接输出时)...
  • lzz360
  • lzz360
  • 2013年10月11日 17:07
  • 1401

php 项目bug 快速定位

搞IT不要害怕bug,特别是刚刚搞开发的那会,bug年年有那年特别多。 说一下我找bug的经验。 当测试人员告诉你有bug的时候。先查看一下bug是什么样子的。有这个bug还原就好往下定位了。 ...
  • liangguangchuan
  • liangguangchuan
  • 2016年04月21日 11:09
  • 946

上万行代码级项目开发中快速定位导致程序崩溃的bug的方法

一个项目在开发调试阶段,已经有上万行代码了,但是过程中往往会遇到让人头痛的bug,程序莫名其妙的奔溃了,bug在哪里呢? [NSNull length]: unrecognized select...
  • sunnyboy9
  • sunnyboy9
  • 2016年03月08日 14:39
  • 935

定位Bug技巧总结

解决Bug是编程人员的天职(创造Bug算是一种天赋吧),甚至有人这么认为:开发人员的能力可以依据他能决解Bug的复杂程度来评定。简单的Bug大多数程序员是靠臆断来解决的,但是当Bug隐藏在代码的最深处...
  • sinat_25141403
  • sinat_25141403
  • 2016年05月03日 20:11
  • 3071

软件测试之BUG分析定位概述(QA如何分析定位BUG)

你是否遇到这样的场景?QA发现问题后找到DEV说: 不好了,你的程序出问题了! DEV(追查半小时之后): 唉,是你们测试环境配置的问题 唉,是你们数据不一致 唉,是你们*...
  • kaka1121
  • kaka1121
  • 2016年05月30日 16:33
  • 6083

Android快速定位Bug总结

这几天修改公司以前的几个android项目,代码是别人写的,坑得自己来填。这种情况下根据测试对BUG描述,快速定位问题,具体就是快速找到在那个文件中、那些代码引起的问题。经过几天摸爬滚打,也找到一些好...
  • android_gogogo
  • android_gogogo
  • 2017年02月15日 17:16
  • 612

测试工程师之bug的定位

身为测试工程师,总有一道绕不过去的坎就是定位bug,这其实是非常花费时间的。 也许有很多人不以为然,觉得无非就是发现bug后提交bug管理系统,描述操作步骤,预期结果和实际结果哪里不...
  • zhusongziye
  • zhusongziye
  • 2017年09月26日 20:22
  • 405

【度学堂】软件测试之bug分析定位技巧

1、web前端 Web前端就是通常说的网页。互联网公司的前端一般包含如下内容:JavaScript、ActionScript、CSS、HTML(..ML)、Flash、交互式设计、视觉设计w...
  • nancybaocool
  • nancybaocool
  • 2014年08月31日 16:21
  • 4324

bug的定位比修改重要1000倍

bug的定位比修改重要1000倍 砍倒一棵树,当然也有技巧,一斧子一斧子劈得要在正确的位置上,还要喊好顺山倒,别砸到别人和自己。不过,在一片林子里找到你想要的那一棵,才是更重要的事,也更困难。修改一...
  • younggift
  • younggift
  • 2013年11月30日 00:38
  • 3578

bug定位经验日志

【个人日志,通用性较小,如果理论性学习,可以跳过此篇文章】 今天写了一个报表查询语句,结果开发站和测试站正确性不一致。测试站中查询结果有重复数据,开发站中数据结果是正确的,但是查询结果数据特别多,无法...
  • bruceyang2009lzu
  • bruceyang2009lzu
  • 2016年07月25日 16:05
  • 1035
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PHP - 如何快速定位BUG的方法
举报原因:
原因补充:

(最多只允许输入30个字)