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";
?>

未完…待续

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

相关文章推荐

css样式设计时快速定位bug的几个好方法

在DIV+CSS模板设计中,检测查找CSS中的BUG无疑是一件痛苦的事情,下面一些经验或许可以帮助你更快的找出CSS中的BUG并进行修补! 1、检查是否清除浮动 其实有不少的 CSS BUG 问题...

BUG定位方法之我见

早期开始接触android的时候,没法承担功能的开发,大段大段的代码也看不进去,除了对android整体框架有点认识,其他的基础基本都是从《Android应用开发详解》来的。 作为新人,最开始做的一般...

如何在Windows编程中快速定位BUG

应该好多新手刚学Windows的时候都会觉得找BUG很难,因为太多的代码,太多的句柄和API函数了.这很正常,因为windows编程中有太多的新概念,对于刚学完C或者没学过C的人确实需要一段时间去熟悉...

小技巧8-iOS 使用Global BreakPoint(全局断点)快速定位Bug

小技巧8-iOS 使用Global BreakPoint(全局断点)快速定位Bug

iOS开发Xcode崩溃在main函数入口时如何定位Bug的一个小方法以及一个恶心的bug介绍

iOS开发中的崩溃有两种,一种是正常崩溃在代码段,能指出来崩溃在哪一句代码,而且会给出crash reason, 这个一般来讲随便找找就能解决问题了第二种 就是致命到没朋友的崩溃在Main入口函数 ...

MTK快速调试定位的几种方法(断点设置)

在debug调试时你也许常常发现有思路如何改,但就苦于找不到要改的地方。所以快速的定位代码是至关重要。 在debug时,最重要的是能够准确快速的定位代码,一般常用的有如下几种方式 1.在模...

使用windbg分析dmp文件定位程序bug

本文编写了一个简单能产生除数为0异常的程序,让其运行,产生崩溃,通过drwtsn产生dmp文件,然后通过windbg分析dmp文件,定位程序bug。 目的:学习windbg基本功能使用。 程序源代码:...
  • weiqubo
  • weiqubo
  • 2011年09月30日 18:12
  • 2866
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PHP - 如何快速定位BUG的方法
举报原因:
原因补充:

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