Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php xdebug赢得';不要在断点处停止_Php_Eclipse_Xdebug - Fatal编程技术网

Php xdebug赢得';不要在断点处停止

Php xdebug赢得';不要在断点处停止,php,eclipse,xdebug,Php,Eclipse,Xdebug,我花了几个小时设置IDE,用eclipse和xdebug调试PHP。。除了我在eclipse上设置的断点之外,一切都正常。如果我双击一行添加断点,调试器希望不要停止。。如果添加一行xdebug_break(),调试器将在该行完全停止 可能是配置有问题。有人能帮我吗 Eclipse:EclipsePDT2.2.0全包 一个Windows 32位 Xdebug:5.3 VC6 (32位) PHP:PHP版本5.3.3 PHP.ini [xdebug] xdebug.remote_enable=1

我花了几个小时设置IDE,用eclipse和xdebug调试PHP。。除了我在eclipse上设置的断点之外,一切都正常。如果我双击一行添加断点,调试器希望不要停止。。如果添加一行xdebug_break(),调试器将在该行完全停止

可能是配置有问题。有人能帮我吗

  • Eclipse:EclipsePDT2.2.0全包 一个Windows 32位
  • Xdebug:5.3 VC6 (32位)
  • PHP:PHP版本5.3.3
PHP.ini

[xdebug]
xdebug.remote_enable=1
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_handler="dbgp"
xdebug.remote_mode=req
xdebug.profiler_enable = 1
xdebug.profiler_output_dir = "c:/temp"
xdebug.collect_params = 4
xdebug.collect_return = on
xdebug.collect_vars = on

xdebug.show_local_vars = 1

我已经解决了这个问题

在我的php.ini上,我添加了xdebug作为扩展,而不是zend_扩展

zend_extension_ts="C:\xampp\php\ext\php_xdebug.dll"
php.ini

zend_extension=C:\EasyPHP-5.3.3\php\ext\php_xdebug.dll
注意:路径必须是完整路径,而不是相对路径


调试器工作得很好。好吃

我也遇到了同样的问题,PDT会启动调试会话,甚至在脚本的第一行中断并允许从那里开始执行,但是如果我单击Resume,它会很高兴地运行我设置的任何手动断点。在摆弄它并阅读了大量其他回复后,我修复了它

我一直试图设置一个路径映射(在PHP服务器配置中),因为我的项目路径和web服务器路径不同,但由于某种原因,这不起作用,所以我最终在apache配置中添加了一个别名,以匹配PDT要求的位置。但是,我没有删除此路径映射设置。当我删除路径映射时,断点开始工作


可能是其他东西工作不正常(路径映射设置)的症状,但断点和调试现在都对我有效:)

在移动一些本地项目文件夹后,我突然遇到了这个问题。我可以让xdebugger在文件的开头中断,但它会跳过我的其余断点


如果您使用的是Netbeans,请检查您的项目Url(项目属性->运行配置)是否指向正确的位置。当项目URL指向正确的文件夹时,断点开始按预期工作。

如果xdebug没有在代码的任何部分停止,请将
xdebug_break()
添加到代码的这一部分。

我也遇到了同样的问题。解决方案是打开正确的文件并在其中添加断点

我的本地服务器在我的虚拟Z:drive上(我使用的是denwer而不是WAMP)。Z驱动器指向我的D:/webserver文件夹。因此,我可以将文件打开为1)Z:/myproject/script.php和2)D:/webserver/myproject/script.php

由于某些原因,调试器仅在opennedZ:/myproject/script.php文件中的断点上停止

如何测试我的解决方案???下一步:

  • 打开任何要调试的php文件
  • xdebug\u break()
    添加到任意行并保存文件
  • 运行调试

  • 在我的例子中,调试进程启动phpDesigner IDE后,在IDE中打开正确的文件,并在xdebug_break()行停止。因此,在这个新打开的文件中,您可以添加断点,它们将正常工作。使用打开的文件进行调试。

    由于我意识到这个问题是最微不足道的,所以我有好几天(!)都遇到了同样的问题

    配置:

    • (Windows 7主机)
    • VirtualBox机器上的Ubuntu 12.04
    • 手动安装的灯
    • Eclipse Indigo+PDT
    • php5-xdebug
    /etc/php5/apache2/php.ini

    调试器没有在断点处停止,也没有在
    xdebug_break()处停止

    …这是由于默认Apache DocumentRoot文件夹的
    /var/www
    权限造成的


    我把它改为
    /home/user/Documents/www

    似乎有几个问题可能是这个问题的根源。在我的例子中,我认为我需要设置一些路径映射


    右键单击项目->属性->PHP调试

    然后
    服务器->编辑->路径映射

    我们错了


    我手动添加了一些我认为是正确的东西,但Eclipse似乎可以自己完成这一切。删除映射使其工作。

    如果使用Eclipse,则可能是为特定启动配置的调试器(请参见“调试器”选项卡)是Zend调试器,而不是XDebug。修复调试启动并重试。这为我解决了问题

    不幸的是,我不能发布截图。但是,在Eclipse中,您可以转到:
    调试配置>PHP Web应用程序>然后选择您的启动>调试器选项卡>使用服务器调试器下拉列表选择XDebug>点击应用按钮并重试。

    我遇到了相同的问题,两件事中的一件解决了它

    我在PHP.ini中删除了重复的zend_扩展定义

    或者更可能的情况是,我刚从这里升级到最新的xdebug版本:

    (我正在运行XAMPPV1.7.1附带的xdebug)

    这又开始了。。。尝试了所有不同版本的xdebug DLL等。。。结果表明,导致此操作不起作用的原因是“表达式”窗口处于打开状态。。。所以当你调试东西的时候把它关闭。。。您可以临时添加手表,然后在“单步”之前关闭“表达式”窗口


    伪造的

    我在EclipsePDT和Xdebug中遇到了类似的问题。原因是Eclipse正在通过IPv6进行侦听,但Xdebug尝试通过IPv4进行连接:

    chriki@machine:~$ netstat -an | grep 9000
    tcp6       0      0 :::9000                 :::*                    LISTEN
    
    chriki@machine:~$ netstat -an | grep 9000
    tcp        0      0 0.0.0.0:9000            0.0.0.0:*               LISTEN
    
    Xdebug,还没有

    添加行之后

    -Djava.net.preferIPv4Stack=true
    
    在我的
    eclipse.ini
    文件中的
    -vmargs
    行之后,eclipse开始通过IPv4侦听:

    chriki@machine:~$ netstat -an | grep 9000
    tcp6       0      0 :::9000                 :::*                    LISTEN
    
    chriki@machine:~$ netstat -an | grep 9000
    tcp        0      0 0.0.0.0:9000            0.0.0.0:*               LISTEN
    

    调试现在可以完美地工作。

    1-检查php.ini上的xdebug配置
    2-eclipse->project->properties->phpDebug-> 启用特定于项目的设置

    phpDebugger->配置->端口 或 Widnow->preference->php->debug->installedDebuggers

    3-widnow->首选项->php->

    解释器->版本 可执行文件->指向php-win.exe的路径
    要点:对于每个调试库(xdebug、zend_debugger等),您可以有一个默认的ph值
    AddDefaultCharset UTF-8
    
    <IfModule mod_authz_core.c>
    
      # Apache 2.4
    
      <RequireAny>
    
        Require ip 127.0.0.1
    
        Require ip ::1
    
      </RequireAny>
    
    </IfModule>
    
    <IfModule !mod_authz_core.c>
    
      # Apache 2.2
    
      Order Deny,Allow
    
      Deny from All
    
      Allow from 127.0.0.1
    
      Allow from ::1
    
    </IfModule>
    
    AddDefaultCharset UTF-8
    
    <IfModule mod_authz_core.c>
    
      # Apache 2.4
    
      <RequireAny>
    
        Require ip 127.0.0.1
    
        Require ip ::1
    
      </RequireAny>
    
    </IfModule>
    
    <IfModule !mod_authz_core.c>
    
      # Apache 2.2
    
      Order Deny,Allow
    
      Deny from All
    
      Allow from 127.0.0.1
    
      Allow from ::1
    
    </IfModule>
    
    <IfModule mod_authz_core.c>
    
      # Apache 2.4
    
      <RequireAny>
    
        Require ip [ WINDOWS IP TO ALLOW GOES HERE ]
    
        Require ip ::1
    
      </RequireAny>
    
    </IfModule>
    
    <IfModule !mod_authz_core.c>
    
      # Apache 2.2
    
      Order Deny,Allow
    
      Deny from All
    
      Allow from [ WINDOWS IP TO ALLOW GOES HERE ]
    
      Allow from ::1
    
    </IfModule>
    
    zend_extension_ts="C:\xampp\php\ext\php_xdebug.dll"
    
    [XDebug]
    zend_extension = C:\xampp\php\ext\php_xdebug-2.6.0-7.0-vc14.dll
    ;zend_extension = C:\xampp\php\ext\php_xdebug-2.5.5-7.0-vc14.dll
    ;zend_extension = "c:\xampp\php\ext\php_xdebug-2.6.0-7.2-vc15.dll"
    xdebug.remote_autostart = 1
    xdebug.profiler_append = 0
    xdebug.profiler_enable = 0
    xdebug.profiler_enable_trigger = 0
    xdebug.profiler_output_dir = "c:\xampp\tmp"
    ;xdebug.profiler_output_name = "cachegrind.out.%t-%s"
    xdebug.remote_enable = 1
    xdebug.remote_handler = "dbgp"
    xdebug.remote_host = "127.0.0.1"
    xdebug.remote_log = "c:\xampp\tmp\xdebug.txt"
    xdebug.remote_port = 9000
    xdebug.trace_output_dir = "c:\xampp\tmp"
    ;36000 = 10h
    xdebug.remote_cookie_expire_time = 36000
    
    xdebug.remote_enable=1
    xdebug.default_enable=0
    xdebug.profiler_enable=0
    xdebug.auto_trace=0
    xdebug.coverage_enable=0
    
    xdebug.mode=debug
    
    xdebug.start_with_request=yes