`
bardo
  • 浏览: 378374 次
  • 性别: Icon_minigender_1
  • 来自: 上海
博客专栏
D1407912-ab64-3e76-ae37-b31aa4afa398
浅述PHP设计模式
浏览量:11807
9d6df9f7-91da-3787-a37c-0e826525dd5d
Zend Framewor...
浏览量:10116
85b628bd-a2ed-3de2-a4b1-0d34985ae8b6
PHP的IDE(集成开发环...
浏览量:9504
社区版块
存档分类
最新评论

给PHP的调试加一个TRACE

    博客分类:
  • PHP
阅读更多

        用过VC++一类的人,都非常喜欢其中的TRACE。但PHP没有,只有echo,print_r,而这些函数的坏处在于,程序发布时,要记得删除或注解掉它。

        记得SYMFONY可以在专用的DIV中输出调试与出错信息,但出错并不是我想要调试时输出的东西。仍是不够方便。

        其实,自己加一个。也就方便了。可惜的是,这玩艺在任一开发框架中都没有(只有我写的框架中才有)。加一个并不复杂的。

        就是全局函数。但这个全局函数,因为是有条件函数。所以,必须是用嵌套函数定义。比如以下代码:

 

        $debug = App::getInstance()->config['debug'];
        if ($debug===true){
            if (!function_exists('trace')){ //specially for ajax debug!!
                function trace($var){
                    $string=print_r($var,true);
                    require_once(ERHDIR.'../Logger/Logger.class.php');
                    Logger::getInstance()->logg('INFO',
                    "/*************************** BEGIN INFO BY TRACE: ***************************\r\n"
                    .$string 
                    ."/***************************  END INFO BY TRACE   ***************************\r\n" );
                    if(! isset($_SERVER['HTTP_X_REQUESTED_WITH']))
                        echo($string);
                }
            }            
        }else{
            if (!function_exists('trace')){ //specially for ajax debug!!
                function trace($var){
                    $string=print_r($var,true);
                    require_once(ERHDIR.'../Logger/Logger.class.php');
                    Logger::getInstance()->logg('INFO',
                    "/*************************** BEGIN INFO BY TRACE: ***************************\r\n"
                    .$string 
                    ."/***************************  END INFO BY TRACE   ***************************\r\n" );
                }
            }
        }

        上述代码,要嵌入你的应用核心类的某个构造函数或初始化函数中。能够获得应用的调试标志。能够得到日志的输出接口。这样,代码就成了。

        接下来,只要你想调试,你一概不需要用echo, print_r了,你只要用 trace(你要查看的变量);这个语句就可以了。

        好处在何处?因为,你程序中是有可能用到echo的。是否会用到print_r不清楚。

        但你程序发布时,只要修改应用的debug标志,就不会有意外的页面输出了。同时,清理代码也很容易,全站点文件搜索一下trace,或替换trace为//trace就OK了。多方便呀!!!!

        当然,上面代码有些笨拙。你也大可以直接定义全局函数。所有判断完全在trace函数内部实现。       

0
3
分享到:
评论

相关推荐

    TRACE32文档_Trace32_lauterbach_多核系统_TRACE32调试_

    1. **TRACE32基本概念**:TRACE32是一个基于命令行界面的调试器,它支持多种硬件接口,如JTAG、SWD等,可以对嵌入式系统进行程序断点、变量监视、内存查看、性能分析等操作。其强大的脚本语言(称为LUA)使得用户...

    VC调试以及TRACE()函数的用法1

    TRACE() 函数是 VC 中的一个调试函数,用于输出调试信息。当程序执行到TRACE() 函数时,将输出相应的调试信息,该信息可以在 Output 窗口中查看。TRACE() 函数可以用于输出变量的值、表达式的值和内存的值等。 四、...

    USB Trace 调试工具

    2. **详细日志**:USB Trace可以生成详细的日志文件,记录下每个USB事务的完整信息,包括请求类型、端点地址、数据阶段等,便于后期分析。 3. **协议解码**:它支持对USB协议进行解码,将原始的二进制数据转换成...

    TRACE32工具的SiFive RISC-V调试和跟踪方案

    ### TRACE32工具的SiFive RISC-V调试和跟踪方案详解 #### 一、概述 随着RISC-V架构的日益普及和技术成熟度的不断提高,针对该架构的开发工具也变得越来越重要。其中,TRACE32作为一款业界领先的调试与跟踪工具,...

    ARM_trace32_内存调试命令调试方法教程.docx

    ARM_trace32_内存调试命令调试方法教程 本教程主要介绍了 ARM JTAG 调试的基本原理,包括 TAP (TEST ACCESS PORT) 和 BOUNDARY-SCAN ARCHITECTURE 的介绍。在本教程中,我们将从 IEEE 1149.1 标准开始,了解 JTAG ...

    劳特巴赫TRACE32快速入门

    2.2 **建议上下电顺序**:一般建议先开启调试器,再给目标板供电,以避免可能的电源冲突。 2.3 **确认环境**:使用TRACE32软件检查连接是否正常,可以查看设备列表中是否能识别到目标芯片,确保调试环境已准备好。 ...

    Trace 32调试分析培训

    qualcomm 平台开发,对于死机 hung up等需要使用trace32 在线调试,文档详细的讲解了使用trace32在线调试的经验技巧

    RTI中控系统调试工具-Traceviewer

    RTI中控系统调试工具--Traceviewer

    FlexSpy-1.3调试trace工具.zip

    这个名为"FlexSpy-1.3调试trace工具.zip"的压缩包包含了FlexSpy的软件组件,具体为FlexSpy.swc文件。SWC是Adobe Flash和Flex中用于分发、重用和编译ActionScript类库的文件格式,类似于Java的JAR或.NET的DLL。 ...

    VC跟踪调试TRACE输出的动态库库

    本文将详细探讨如何使用`TRACE`宏以及创建一个动态库来将`TRACE`输出到文件,以便在DEBUG和RELEASE模式下都能捕获这些调试信息。 首先,`TRACE`宏是MFC(Microsoft Foundation Classes)库提供的,主要用于在调试...

    MFC 中 TRACE 详细介绍

    在Microsoft Foundation Classes (MFC)库中,TRACE宏是一个强大的调试工具,尤其在Visual C++环境下,它提供了类似于C语言中的printf函数的功能,用于在程序的调试阶段输出信息。这个宏在开发过程中非常有用,因为它...

    TRACE32.zip

    1. **程序dump分析**:当程序运行过程中出现异常导致dump文件生成,TRACE32可以解析这个文件,展示出当时程序的状态,包括CPU寄存器的值、内存映射、调用堆栈等关键信息。通过这些信息,开发者可以追踪到导致崩溃的...

    Trace 劳特巴赫 多核系统调试方法详解 - SMP/AMP/iAMP调试流程与工具应用

    每种模式的具体操作步骤包括启动配置、核的分配和管理、以及调试过程中的命令使用,特别关注了TRACE32工具在实际调试中的应用实例。 适合人群:嵌入式软件开发工程师、硬件调试工程师及对多核系统调试感兴趣的中级...

    电子电气架构:Trace 32多核系统调试技术详解

    内容概要:本文深入探讨了多核系统的调试技术,重点介绍了TRACE32调试工具在不同多核架构下的应用。首先讨论了SMP(对称多处理)和AMP(非对称多处理)的特点及其在多核系统中的调试挑战,如数据同步、资源竞争与...

    trace32的使用说明

    `trace32`是一款功能强大的调试工具,主要用于嵌入式系统的开发与调试。本篇文档旨在详细介绍`trace32`模拟器(Simulator)的使用方法及其在高通平台上的具体应用。通过本指南的学习,您将能够更好地利用此工具来...

    php调试技术文档

    在PHP开发过程中,调试是必不可少的一个环节,它能帮助我们找出代码中的错误,优化性能,以及理解程序运行的内部逻辑。本文档将详细讲解PHP调试的相关技术,包括基本的错误处理、日志记录、断点调试、Xdebug工具的...

    TRACE32-安装和使用

    - **加电顺序**: 在进行加电操作时,应先将TRACE32与目标板通过JTAG接口连接,确认信号匹配无误后,先给TRACE32加电,随后再启动目标板电源。若USB供电不稳定,可选择外接电源供电。 #### 软件配置指南 - **驱动...

    trace32的使用培训

    - TRACE32提供了详尽的在线帮助文档,涵盖了所有调试特性及其最新描述,这对于新手来说是一个非常宝贵的资源。 - **配置调试环境**: - 包括但不限于设置断点、观察点等。 - **批量作业**: - TRACE32支持批处理...

    使用xdebug调试PHP程序

    **Xdebug** 是一个开放源码的PHP调试工具,用于跟踪、调试和分析PHP程序的运行状态。它能够与多种IDE集成,提供丰富的调试功能。目前最新的版本是2.0.0beta6,支持PHP4和PHP5。 #### 三、Xdebug的安装步骤 以...

Global site tag (gtag.js) - Google Analytics