web-dev-qa-db-ja.com

Visual Studio Code(VSCode)-エラー:デバッグアダプタープロセスが予期せず終了しました

私はこのエラーメッセージに苦労しています。エディターをアップグレードまたは再起動した後、Visual Studio Codeでxdebugを実行できない場合があります。エラーのスクリーンショットは次のとおりです。

enter image description here

誰かがこれで私を助けることができますか?

私のマシンで何が起こっているのかを知るために数分後、私は自分の問題を解決する方法を見つけました。

xdebugはポート9000に基づいて実行されており、Debug Console(VSCode)にはメッセージlisten EADDRINUSE :::9000があるので、別のプロセスが実行されていると思います。ポート9000なので、このコマンドで実行されているプロセスを確認します

Sudo netstat -nlp | grep :9000

上記のコマンドは、ポート9000で実行されているプロセスを表示し、この結果を取得します

tcp6       0      0 :::9000                 :::*                    LISTEN      14856/hhvm

[〜#〜] hhvm [〜#〜]デフォルトでxdebugのポートを引き継いだので、サービスを停止するか、ポート番号を変更する必要があります。

ヒント:

lsofを使用して、特定のポートのプロセスを表示することもできます

lsof -t -i :9000

VSCodeを使い始めたときに同じ問題が発生しました。正確に何が問題なのかを理解するのに3時間かかりました。使用されているポートやその他の設定など、段階的なデバッグをじっと見つめていました。

ついに私は幸運で解決策を得ました:)それで私はみんなと共有しました。私の調査結果と、XdebugをVSCodeで動作させるためにセットアップする必要があるものを確認できます。

#VSCode&PHPデバッグ

VSコードでXdebugをセットアップしてPHPコードをオンザフライでデバッグします。ステップバイステップの手順に従ってxdebugを正しくセットアップします。

GIFアクション:

enter image description here


VSCodeでPHPデバッグ(xdebug)をセットアップする方法は?

1. まずVSCodeをインストールします

2. インストールPHP Visual Studio Code用デバッグアダプター

3. WAMPにXDebugをインストール


  • ブラウザでphpinfoを開きます
  • ビューソースコードをコピーする
  • 貼り付け https://xdebug.org/wizard.php
  • 推奨されるxdebugdllファイルをダウンロードします
  • Phpフォルダーextまたはzend_extフォルダーの現在のバージョン内にdllファイルを貼り付けます
  • Phpinfoを開き、「ロードされた構成ファイル」を見つけて、どのphp.iniファイルが使用されているかを確認します
  • Php.iniファイルを開き、コードの下に配置します

[Xdebug] zend_extension = "FULL-XDEBUG-DLL-FILE-PATH"

; zend_extension = "d:\ wamp64\bin\php\php7.1.9\zend_ext\php_xdebug-2.6.0beta1-7.1-vc14-x86_64.dll"

[〜#〜]または[〜#〜]

; zend_extension = "d:\ wamp64\bin\php\php7.1.9\ext\php_xdebug-2.6.0beta1-7.1-vc14-x86_64.dll"

xdebug.remote_enable=1
xdebug.remote_autostart = 1
xdebug.remote_port="9000"
xdebug.profiler_enable=1
xdebug.remote_Host="localhost"

xdebug.profiler_output_dir="<tmp path>"
;Example
;xdebug.profiler_output_dir="d:\wamp64\tmp"

4.WAMPサーバーを再起動します

Phpinfoを開いてxdebugを見つけます。見つかった場合は、xdebugが正常にインストールされています。 Wampが再起動してもローカルホストが開かない場合は、PORTを変更してみてください。すでに他のアプリケーションでPORTを使用できます。


Windowsのポートでリッスンしているプロセスを確認するにはどうすればよいですか?

VSCodeでXDebugをセットアップ


JSONの例-launch.json

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.Microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Listen for XDebug",
            "type": "php",
            "request": "launch",
            "port": 9000
        },
        {
            "name": "Launch currently open script",
            "type": "php",
            "request": "launch",
            "program": "${file}",
            "cwd": "${fileDirname}",
            "port": 9000
        }
    ]
}

5. PHPのVSCode設定を更新して、PHP実行可能パスを追加します

"php.validate.run": "onType",
"php.validate.executablePath": "<Your-Full-PHP-Path>php.exe"

6.VSCodeを保存して再起動します

PHPプロジェクトフォルダを開き、コードをデバッグしてみてください。次のエラーが発生した場合

VS Code Debugアダプタープロセスが予期せず終了しました

または

VS CodeConsoleエラー-> EADDRINUSE :: 900をリッスン)

これは、PORT9000が現在別のプログラムによって使用されていることを意味します。PHPStormXdebugまたはPORT9000を使用している他のアプリケーションを実行している可能性があります。PHPStormまたは他のプログラムを閉じて、もう一度デバッグしてみてください。


それでもエラーが発生する場合は、PORT 9000を使用してどのプログラムを見つけて強制終了してください。それでもエラーが発生する場合は、php.iniとlaunch.jsonのPORTを変更し、wampとVSCodeを再起動してください。

これでXDEBUGがVSCodeで動作していることがわかります。


> ####テストするコード例

<?php

/*
|--------------------------------------------------------------------------
| PHP XDebug Code Example - VS Code
|--------------------------------------------------------------------------
|
|  Information:
|
|   VS Code         :
|     Version       :   1.19.2
|     Commit        :   490ef761b76b3f3b3832eff7a588aac891e5fe80
|     Date          :   2018-01-10T15:55:03.538Z
|     Shell         :   1.7.9
|     Renderer      :   58.0.3029.110
|     Node          :   7.9.0
|     Architecture  :   x64
|
|   Windows         :   10
|
|   WAMP Server     :   3.1.0
|       PHP         :   7.1.9
|       Apache      :   2.4.27
|       MySQL       :   5.7.19
|
|   PHP INI PATH    :   D:\wamp64\bin\Apache\apache2.4.27\bin\php.ini
|       [Xdebug]
|       zend_extension              =   "d:\wamp64\bin\php\php7.1.9\zend_ext\php_xdebug-2.6.0beta1-7.1-vc14-x86_64.dll"
|       xdebug.remote_enable        =   1
|       xdebug.remote_autostart     =   1
|       xdebug.remote_port          =   "9000"
|       xdebug.profiler_enable      =   1
|       xdebug.remote_Host          =   "localhost"
|       xdebug.profiler_output_dir  =   "d:\wamp64\tmp"
|
*/


// first loop
for ($i=0; $i < 10; $i++) {
        echo $i;
}

echo PHP_EOL;

// second loop
for ($i = 0; $i < 20; $i++)
{
    echo $i;
}

/* End of file php-test.php */
/* Location: /wamp64/www/test/php-test.php */

ありがとう:)

3
Neeraj Singh

古いバージョンのVSCodeでこのエラーが発生し、v1.37.1に更新したところ、修正されました。

VS Codeの更新Access Deniedエラーが発生し、ダイアログFailed Delete Markerが表示されました。 Process Monitorを実行し、ダイアログで[再試行]をクリックすると、更新が完了して機能しました。

0
Jeremy Thompson