XDebug不会破坏atom的php-debug包中的断点

时间:2016-10-21 09:51:04

标签: php laravel xdebug breakpoints atom-editor

我的问题是我找到了许多其他答案,但没有一个对我有用。代码和“服务器”都是localhost。 编辑:尝试使用端口9001,而不是像某些答案中所建议的那样+尝试使用Visual Studio Code,但奇怪的是:它打破了VS代码中的异常,但仍然不在断点上。 连接似乎有效:

enter image description here

我的设置

软件

  • Windows 10 Pro x64
  • MAMP(非专业)运行端口81
  • 原子
  • php-debug package
  • xdebug-2.4.1-7.0-vc14.dll扩展
  • 要调试的代码写在Laravel框架

CONFIGS

PHP信息xdebug part

full

     xdebug

      xdebug support    enabled
    Version 2.4.1
    IDE Key XDEBUG_ECLIPSE
    XDEBUG NOT LOADED AS ZEND EXTENSION
    Supported protocols Revision
    DBGp - Common DeBuGger Protocol $Revision: 1.145 $
    Directive   Local Value Master Value
    xdebug.auto_trace   Off Off
    xdebug.cli_color    0   0
    xdebug.collect_assignments  Off Off
    xdebug.collect_includes On  On
    xdebug.collect_params   0   0
    xdebug.collect_return   Off Off
    xdebug.collect_vars Off Off
    xdebug.coverage_enable  On  On
    xdebug.default_enable   On  On
    xdebug.dump.COOKIE  no value    no value
    xdebug.dump.ENV no value    no value
    xdebug.dump.FILES   no value    no value
    xdebug.dump.GET no value    no value
    xdebug.dump.POST    no value    no value
    xdebug.dump.REQUEST no value    no value
    xdebug.dump.SERVER  no value    no value
    xdebug.dump.SESSION no value    no value
    xdebug.dump_globals On  On
    xdebug.dump_once    On  On
    xdebug.dump_undefined   Off Off
    xdebug.extended_info    On  On
    xdebug.file_link_format no value    no value
    xdebug.force_display_errors Off Off
    xdebug.force_error_reporting    0   0
    xdebug.halt_level   0   0
    xdebug.idekey   no value    no value
    xdebug.max_nesting_level    256 256
    xdebug.max_stack_frames -1  -1
    xdebug.overload_var_dump    2   2
    xdebug.profiler_aggregate   Off Off
    xdebug.profiler_append  Off Off
    xdebug.profiler_enable  Off Off
    xdebug.profiler_enable_trigger  Off Off
    xdebug.profiler_enable_trigger_value    no value    no value
    xdebug.profiler_output_dir  C:\Windows\Temp C:\Windows\Temp
    xdebug.profiler_output_name cachegrind.out.%p   cachegrind.out.%p
    xdebug.remote_addr_header   no value    no value
    xdebug.remote_autostart On  On
    xdebug.remote_connect_back  On  On
    xdebug.remote_cookie_expire_time    3600    3600
    xdebug.remote_enable    On  On
    xdebug.remote_handler   dbgp    dbgp
    xdebug.remote_host  127.0.0.1   127.0.0.1
    xdebug.remote_log   no value    no value
    xdebug.remote_mode  req req
    xdebug.remote_port  9000    9000
    xdebug.scream   Off Off
    xdebug.show_error_trace Off Off
    xdebug.show_exception_trace Off Off
    xdebug.show_local_vars  Off Off
    xdebug.show_mem_delta   Off Off
    xdebug.trace_enable_trigger Off Off
    xdebug.trace_enable_trigger_value   no value    no value
    xdebug.trace_format 0   0
    xdebug.trace_options    0   0
    xdebug.trace_output_dir C:\Windows\Temp C:\Windows\Temp
    xdebug.trace_output_name    trace.%c    trace.%c
    xdebug.var_display_max_children 128 128
    xdebug.var_display_max_data 512 512
    xdebug.var_display_max_depth    3   3

php.ini xdebug part

full

[xdebug]
xdebug.remote_enable=1
xdebug.remote_host=127.0.0.1
xdebug.remote_connect_back=1    # Not safe for production servers
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_autostart=true
xdebug.idekey=xdebug.atom

2 个答案:

答案 0 :(得分:5)

我已在此处上传您的PHP信息输出 - https://xdebug.org/wizard.php。除此之外,我还有下一条消息:“您似乎只将Xdebug作为正常的PHP扩展加载。这将导致奇怪的问题,请参阅https://xdebug.org/docs/faq#php-ext

  

问:Xdebug仅作为PHP扩展而不是作为Zend扩展加载。

     

为了让Xdebug正常工作,包括断点等,需要将它作为Zend扩展加载,而不仅仅是普通的PHP扩展。有些安装工具(PEAR / PECL)有时会建议您使用extension = xdebug.so来加载Xdebug。这是不正确的。要解决此问题,请在顶部块中的“已加载配置文件”和“已解析的其他.ini文件”下列出的任何INI文件中查找行extension = xdebug.so。删除此行,然后返回“定制安装说明”。

以下是您案件的说明:

  1. 下载php_xdebug-2.4.1-7.0-vc14.dll
  2. 将下载的文件移至C:\MAMP\bin\php\php7.0.9\ext
  3. 修改C:\MAMP\conf\php7.0.9\php.ini并添加第zend_extension = C:\MAMP\bin\php\php7.0.9\ext\php_xdebug-2.4.1-7.0-vc14.dll
  4. 重新启动网络服务器
  5. 另外,您可以查看特殊类型的“调试”功能,其中包含xdebug扩展程序 - https://xdebug.org/docs/all_functions

    例如,您可以使用xdebug_break()。它允许您在不使用IDE的情况下指定断点。

    关于Atom设置的一个注释。在此页https://atom.io/packages/php-debug上,您可以找到有关配置过程的说明。我想把你的注意力放在config.cson档案上。查看下面的配置代码段。你的项目中有类似的东西吗?

    "php-debug": 
    {
        ServerPort: 9000
        PathMaps: [
            "remotepath;localpath"      
        ]
    }
    

答案 1 :(得分:2)

只是在黑暗中拍摄,但您是否尝试在框架的入口处设置断点?

我遇到了与另一个框架类似的问题,您的问题可能只是xdebug无法与本地文件进行映射,并且在第一个执行的行上设置断点可能会解决这个问题。

例如,PhpStorm有一个名为&#34的调试选项;第一行中断"这解决了我的问题。