Visual Studio代码赢得';在PHP Xdebug中,不能在断点处停止

Visual Studio代码赢得';在PHP Xdebug中,不能在断点处停止,php,visual-studio-code,xdebug,Php,Visual Studio Code,Xdebug,我已经从Thinkpad笔记本电脑转移到HP Elitebook。我必须在我的新笔记本电脑中设置我的开发环境。在Windows10Pro 64位版本中设置了VisualStudio代码和XAMPP之后,我无法调试PHP代码 我已经为Visual Studio代码正确安装了Xdebug扩展,并确保php.ini正确。这是我对php.ini的设置(我使用放置在E:驱动器上的便携式XAMPP): 我的xdebug.log显示如下信息: Log opened at 2018-10-27 05:56:45

我已经从Thinkpad笔记本电脑转移到HP Elitebook。我必须在我的新笔记本电脑中设置我的开发环境。在Windows10Pro 64位版本中设置了VisualStudio代码和XAMPP之后,我无法调试PHP代码

我已经为Visual Studio代码正确安装了Xdebug扩展,并确保php.ini正确。这是我对
php.ini
的设置(我使用放置在
E:
驱动器上的便携式XAMPP):

我的xdebug.log显示如下信息:

Log opened at 2018-10-27 05:56:45
I: Connecting to configured address/port: localhost:9000.
I: Connected to client. :-)
-> <init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" fileuri="file:///E:/xampp/htdocs/absen/index.php" language="PHP" xdebug:language_version="5.4.3-dev" protocol_version="1.0" appid="7112" idekey="william"><engine version="2.4.1"><![CDATA[Xdebug]]></engine><author><![CDATA[Derick Rethans]]></author><url><![CDATA[http://xdebug.org]]></url><copyright><![CDATA[Copyright (c) 2002-2016 by Derick Rethans]]></copyright></init>

-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" status="stopping" reason="ok"></response>

Log closed at 2018-10-27 05:56:45
日志于2018-10-27 05:56:45打开
I:连接到配置的地址/端口:localhost:9000。
I:已连接到客户端。:-)
->

  • 这些解决方案都不起作用。

    最后我知道了问题的根源。HP Elitebook预先安装了名为HP Velocity的程序,该程序使用端口9000

    问题是主机的端口9000绑定到HP Velocity软件的端口9000。当HP Velocity服务连接到本地主机xdebug服务器时,日志显示连接正常,但它已连接到HP Velocity

    我在php.ini中将xdebug端口更改为9090,并在visual studio代码的launch.json中更改。之后,我的VisualStudio代码会像往常一样工作,并且可以在断点处停止


    希望这对其他人有所帮助:)

    原因可能是php xdebug的端口造成的。当我这样做时,它对我很好:

    1.使用
    php--ini
    显示php配置文件并将xdebug端口更改为9900:
    xdebug.remote\u port=9900
    然后重新启动php

    2.打开vscode并将端口更改为launch.json中的相同编号:
    “端口”:9900


    3.享受你的调试

    我也有同样的问题,但在ubuntu中将端口更改为8000后,它对我来说很有效。

    在我的情况下,我试图在我的本地机器上调试php脚本,所以我必须意识到我必须使用Web服务器使用的端口(在我的情况下是8080)调试php脚本而不是使用VS代码配置上的端口集(我使用9090)

    对于遇到此错误的任何人,这是我的配置:

    • 操作系统:Windows 10 64位
    • PHP 5.6(32位TS)
    • Xdebug 2.5.5(32位)
    • Apache 2.4(32位)
    • 安装在Google Chrome上的Xdebug Helper
    1) httpd.conf

    2) php.ini(XDebug部分)

    3) launch.json(VS代码配置)


    在我的例子中,
    路径映射不正确,并且没有更改端口

    {
        ...
        "configurations": [
            {
                ...
                "port": 9000,
                "pathMappings": {
                    "/var/www/yourproject": "${workspaceFolder}/",
                 }
              }
          ]
      }
    
    如果我检查“Everything”断点,我的断点实际上正在工作
    (它捕获了一个被抑制的异常,但VS代码提醒说没有找到该文件)

    我是一个新手程序员,因此这听起来可能很愚蠢,但对像我这样的PHP和web服务器新手可能会有所帮助


    我对Xdebug跳过断点也有同样的问题。对我来说,事实证明我在“回声”陈述中有一个断点。显然,这不是使用断点的有效行。当我将断点移动到变量声明时,它就开始工作了。

    这就是解决我遇到的同一问题的方法,如果前面的答案没有帮助,那么值得一试

    php.ini

     [XDebug]
    zend_extension = "C:\xampp\php\ext\php_xdebug-3.0.2-8.0-vs16-x86_64.dll"
    xdebug.mode = debug
    xdebug.start_with_request = yes
    xdebug.client_port = 9000
    xdebug.client_host = "127.0.0.1"
    xdebug.log = "C:\xampp\tmp\xdebug\xdebug.log"
    xdebug.idekey = VSCODE
    
    launch.json

    "configurations": [
        {
          "name": "Listen for XDebug",
          "type": "php",
          "request": "launch",
          "port": 9000
        },
        {
          "type": "php",
          "request": "launch",
          "name": "Run using local PHP Interpreter",
          "program": "${file}",
          "runtimeExecutable": "C:\\xampp\\php\\php.exe"
        }
      ]
    

    事实上,这是断点的有效行。我想知道是谁投了这一票,我认为我的问题也与路径映射设置有关。事实证明,尾随/尾随是很重要的。加上这个,我的问题马上就解决了。奇怪。是否需要使用xdebug 3进行跟踪/启动?直到今天,我的配置在xdebug 3设置中还没有它,我真的不明白为什么我们需要使用绝对路径,或者用斜杠跟踪工作区根,但这也解决了我的问题。我正在使用飞轮、WordPress、current VSCode、PHP7.4.1(本地和VSCode PHP工作区使用相同的PHP.exe)和相应的NTS XDebug 3 for Windows x64
    “C:\\Users\\tonyg\\path\\LocalSites\\sitename\\app\\public\”:“${workspaceRoot}/”
    有没有办法获取所有程序正在查看的端口列表?救了我的命!谢谢:)我在Ubuntu 20.04上也遇到了同样的问题,这很有魅力!谢谢
    "configurations": [
        {
          "name": "Listen for XDebug",
          "type": "php",
          "request": "launch",
          "port": 9000
        },
        {
          "type": "php",
          "request": "launch",
          "name": "Run using local PHP Interpreter",
          "program": "${file}",
          "runtimeExecutable": "C:\\xampp\\php\\php.exe"
        }
      ]