V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
tanteng
V2EX  ›  PHP

大家用 Xdebug 调试 PHP 吗?

  •  1
     
  •   tanteng · 2015-07-22 22:11:48 +08:00 · 7262 次点击
    这是一个创建于 3448 天前的主题,其中的信息可能已经有所发展或是发生改变。

    一直都是用echo,var_dump在页面上输出调试PHP代码,周围同事也都是,那么大家用Xdebug工具调试PHP吗,有没有必要

    第 1 条附言  ·  2015-07-23 15:38:18 +08:00
    第 2 条附言  ·  2015-07-23 15:38:55 +08:00
    ![Alt text](http://tantengwx-wx.stor.sinaapp.com/xdebug.png "Optional title")
    第 3 条附言  ·  2015-07-23 15:39:42 +08:00
    怎么不能插入图片,http://tantengwx-wx.stor.sinaapp.com/xdebug.png,装了xdebug,调试复杂的程序会简单多了。。但是不复杂的还是echo反而快一点
    第 4 条附言  ·  2015-07-24 17:40:50 +08:00
    太好了,除了调试,我现在用Xdebug看代码了,很方便。
    第 5 条附言  ·  2015-07-31 10:38:17 +08:00
    但是在shell脚本里面不方便调试
    46 条回复    2015-07-24 13:50:05 +08:00
    kungfuchicken
        1
    kungfuchicken  
       2015-07-22 22:23:55 +08:00   ❤️ 1
    一直用 phpstorm + xdebug 断点调试... 可以看代码执行顺序, 变量内容, 无需echo, var_dump
    kurotokiya
        2
    kurotokiya  
       2015-07-22 22:47:26 +08:00 via Android
    不用。。。
    yxzblue
        3
    yxzblue  
       2015-07-22 22:48:08 +08:00
    不用
    l12ab
        4
    l12ab  
       2015-07-22 22:51:12 +08:00
    偶尔用,但有时候必须关闭,否则页面半天打不开
    ekeyme
        5
    ekeyme  
       2015-07-22 23:11:33 +08:00
    litt7e
        6
    litt7e  
       2015-07-22 23:20:53 +08:00
    用过阵子,切换来切换去,发现还不如直接打印输出
    自己写个debug函数就行
    mopvhs
        7
    mopvhs  
       2015-07-22 23:32:23 +08:00


    配合PhpStorm特别好用
    vinsony
        8
    vinsony  
       2015-07-22 23:41:27 +08:00
    一直print_r
    vibbow
        9
    vibbow  
       2015-07-23 00:03:51 +08:00
    难道LZ不用IDE的么......
    TF
        10
    TF  
       2015-07-23 00:19:52 +08:00
    mac 上之前用 MAMP 用 echo 調試。。出錯是全白
    konakona
        11
    konakona  
       2015-07-23 01:19:05 +08:00
    你如果开发的框架里不怎么用namespace你是可以不用IDE调试..不然的话离不开。
    gdtv
        12
    gdtv  
       2015-07-23 02:06:39 +08:00
    用过一下,经常导致apache进程占用cpu 100%,后来不用了
    mahone3297
        13
    mahone3297  
       2015-07-23 06:44:26 +08:00
    echo,var_dump足以。。。
    anubiskong
        14
    anubiskong  
       2015-07-23 06:56:18 +08:00
    可怜的php, 太完美了, 所以连对debug工具都这么知足
    TangMonk
        15
    TangMonk  
       2015-07-23 08:53:43 +08:00
    楼上又再高级黑了。。。
    blue7wings
        16
    blue7wings  
       2015-07-23 09:09:23 +08:00
    插楼问一句,我想用xdebug+phpstorm调试,但是我用的Vagrant这应该怎么配置?
    hobart
        17
    hobart  
       2015-07-23 09:13:16 +08:00
    一直var_dump
    CuminLo
        18
    CuminLo  
       2015-07-23 09:14:51 +08:00
    一直var_dump
    laucie
        19
    laucie  
       2015-07-23 09:17:33 +08:00
    一直var_dump
    br00k
        20
    br00k  
       2015-07-23 09:25:51 +08:00
    @blue7wings remote debug 我在Mac下远程debug Linux没问题。windows不行,不知道啥原因。
    my101du
        21
    my101du  
       2015-07-23 09:27:06 +08:00
    ThinkPHP 自带的 trace 和 dump 函数特别好用。。。。
    会不会有人说我low啊。
    66beta
        22
    66beta  
       2015-07-23 09:28:04 +08:00
    var_dump 默默路过
    dai269619118
        23
    dai269619118  
       2015-07-23 09:29:37 +08:00
    PhpStorm Xdebug 真的是特别好用
    特别是程序调用其他文件的时候直接跳过去
    ajax请求直接打上断点就好调试了
    rogeecn
        24
    rogeecn  
       2015-07-23 09:39:00 +08:00
    为什么不用,有些问题看不出来只能一步一步跟,那些说着var_dump就够的人,要不就是牛逼人BUG极少的,要不就是定位问题靠人肉F5的。
    jevonszmx
        25
    jevonszmx  
       2015-07-23 09:48:27 +08:00
    @rogeecn

    同意你。

    不用debug工具的人,肯定是没做过复杂的程序,要不就是队友是大牛的人。

    要是你遇到一个流程乱写的、命名混乱的好队友(接手过注释各种吐槽,就没写功能的,大哭),公司用的框架复杂、组织混乱的,我就不信可以慢慢用var_dump调。。。
    nisnaker
        26
    nisnaker  
       2015-07-23 09:54:09 +08:00
    一直var_dump
    ruchee
        27
    ruchee  
       2015-07-23 10:07:50 +08:00
    不用,exit + var_dump 走起
    anubiskong
        28
    anubiskong  
       2015-07-23 10:46:16 +08:00
    @TangMonk 为啥说"又"
    hdjdcyl
        29
    hdjdcyl  
       2015-07-23 11:34:16 +08:00 via iPhone
    爱不释手😘
    tushiner
        30
    tushiner  
       2015-07-23 11:57:59 +08:00
    遇到复杂的算法问题我才debug,无脑堆代码项目的时候我就不管了。
    lyragosa
        31
    lyragosa  
       2015-07-23 12:07:28 +08:00
    如果是调试带ajax的东西 xdebug会比较麻烦……
    laobaoabc
        32
    laobaoabc  
       2015-07-23 12:59:03 +08:00
    @mopvhs 真的吗
    jsq2627
        33
    jsq2627  
       2015-07-23 13:32:35 +08:00
    Xdebug 可不是只是用来看变量的哦~

    Stack Trace, Function Trace, Code Coverage Analyse, Profiling

    不用的人一定没干过上面这些事情。
    tanteng
        34
    tanteng  
    OP
       2015-07-23 15:38:01 +08:00
    b821025551b
        35
    b821025551b  
       2015-07-23 15:51:50 +08:00
    var_dump + print_r 路过
    zsx
        36
    zsx  
       2015-07-23 16:04:08 +08:00
    @jevonszmx 为了定制AuthPuppy,我用var_dump调过这玩意,算是调下来了。随便拿个变量出来都是五六层类的扩展,全局变量或单例类满地跑,代码结构乱七八糟,占用内存巨大 + 运行速度巨慢。大概是任意var_dump一个变量浏览器都能哗啦啦弄出几十万行的水平吧。

    那五个小时简直是煎熬。
    bgcolor0325
        37
    bgcolor0325  
       2015-07-23 16:27:00 +08:00
    @my101du 会,我们也在用TP,自己都嫌弃自己。
    crazystory
        38
    crazystory  
       2015-07-23 19:20:39 +08:00
    @blue7wings
    xdebug.remote_connect_back=on 就能调试了
    默认是off的
    jevonszmx
        39
    jevonszmx  
       2015-07-23 22:01:04 +08:00
    @zsx

    正常,很多开源的系统global内容吓死人,比如禅道,随便var_dump就是浏览器卡死的结果。。。
    tinyhill
        40
    tinyhill  
       2015-07-23 22:03:22 +08:00
    var_dump
    zsx
        41
    zsx  
       2015-07-23 22:15:22 +08:00
    @jevonszmx 倒也不是开源的锅,虽然我们这套系统GLOBAL打出来也吓死人(单例模式,直接把模板类和内容、用户类和内容、数据库类和内容、配置类和内容、语言、插件都放在那个类里),然而至少各类数据都只有一份,速度也挺快(60W数据首页60ms)。那套系统倒好,神了,extend了五六层之外,数据也有五六份……速度至少500ms+,我也不知道是怎么做到的
    jevonszmx
        42
    jevonszmx  
       2015-07-23 22:19:25 +08:00
    @zsx

    毕竟宇宙最好语言~~没的黑。。。XD
    jziwenchen
        43
    jziwenchen  
       2015-07-23 23:26:39 +08:00
    打印数据 分析问题就好了
    pubby
        44
    pubby  
       2015-07-23 23:39:06 +08:00
    偶尔会用xdebug调试,主要是一些奇葩问题需要追到框架里面去找原因,不用调试器太麻烦。

    线上也有一台机器是开了xdebug的,主要用来生成profile报告,分析优化性能用。
    hydyy
        45
    hydyy  
       2015-07-24 10:30:19 +08:00
    刚开始学php, 习惯性debug, 配置nginx + php + xdebug + mysql 花了一天时间,不过再去配置可能只需要一个小时。 个人感觉,debug还是有必要的,读代码的时候
    tanteng
        46
    tanteng  
    OP
       2015-07-24 13:50:05 +08:00
    @lyragosa 调ajax还是手动打印,在浏览器js监控
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2499 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 15:36 · PVG 23:36 · LAX 07:36 · JFK 10:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.