ラベル remote debug の投稿を表示しています。 すべての投稿を表示
ラベル remote debug の投稿を表示しています。 すべての投稿を表示

2024年2月3日土曜日

Visual Studio Code でCentOS7のリモートデバッグができなくなった!

突然使えなくなった VS Code + Remote SSH

昨日まで、普通に使えていた VS Code と Hyper-V 上の CentOS 7.9 上でのリモート開発
今朝、突然、使えなくなりましたよ。
どうやってもつながらない!
今日は土曜日だから、月曜あたりは日本中でこの問題、世界中で騒がれるんじゃないでしょうかね・・・
ったく・・・

パスワード入力してログインしようとすると、エラーになって繋がりません。

glibcとlibstdc++のバージョンが古い?

OSの中身を見てみると、確かに古いようです。
で、それならバージョンアップしてやろうということで、やってみました。
バージョンアップでやってみたことは、次の通り。
・gcc のバージョンアップ 13.2.0 をインストール。2度失敗。長かった・・・
・ここで、libstdc++を入れ替えできました。
・次に glibc のバージョンをあげる件ですが、結論から言いますと失敗しました。
・python 3 のインストール
・yum が動かなくなるので yum 編集
・gmake が古いと怒られます。で、4.2あたりをインストールしようとすると、エラーで止まっちゃう!
と、いうことで、CentOS7 側での対応はできませんでした。
(6時間・・・返してくださいよ・・・(´;ω;`))

解決方法

要するに、Visual Studio Code のアップデートが原因なんですよ
January 2024 (version 1.86)
拡張機能の Remote SSH がアップデートされてました。
で、このアップデートを古いバージョンにして、CentOS 側の /home/ユーザー ディレクトリ上の .vscode-server ディレクトリを削除。
・・・問題は変わりませんでした。
納期すぎていて、とっても焦っているのに、丸一日潰れかかってます・・・どーしてくれるんだ!

対応策

VS Code のバージョンをダウングレードしてしまいます!
まず、現在の VS Code をアンインストールする前に、次を実行しておきます。
・VS Code の自動アップデートを停止しておく。(設定:update あたり)
・拡張機能の自動アップデートを停止しておき。
VS Code をアンインストール。
このページの Downloads ってとこから該当バージョンをダウンロード
インストールしましょう!
CentOS 側の /home/ユーザー ディレクトリ上の .vscode-server ディレクトリを削除もわすれずに。

動いた!

昨日まで使っていたワークスペースを開いてみると、無事パスワード入力後に編集できるようになりました。
めでたしめでたし。

2022年8月18日木曜日

VM上のLinuxをVSCodeでPHPデバッグできなかった

ステップ実行できない!

もう何度も環境構築していて、手慣れているはずのVSCodeでPHPをデバッグする環境を用意していたら、なかなか動いてくれなかったのよ、これが。
簡単に環境を書きますと
ホスト:Windows PC+Visual Studio Code
リモート:VMWare + CentOS7.9
Apache:2.4.6
PHP:7.4.30 Zend Engine v3.4.0
Xdebug:3.1.5
ってな環境で、VM上のソースをデバッグできるようにようにしてます

SSHの設定とか、インストールの手順とかは書きません。悪しからずm(_ _"m)

やったこと(失敗の記録)

WEBを検索すると、以下のような記述が目立ちましたが、これはxdebugの古いバージョン用なので動きません

# vi /etc/php.ini

[xdebug]
zend_extension=/usr/lib64/php/modules/xdebug.so
xdebug.remote_host=192.168.xxx.xxx
xdebug.remote_enable = 1
xdebug.remote_autostart = 1

ちなみに、192.168.xxx.xxxは、VM上のOSのIPアドレスです。

xdebug の新バージョンでの記述

以下のように記述するのが正しいと書いてありました。

# vi /etc/php.ini

[xdebug]
zend_extension=/usr/lib64/php/modules/xdebug.so
xdebug.mode=debug
xdebug.client_host=192.168.xxx.xxx
xdebug.client_port=9003
xdebug.start_with_request=yes
xdebug.discover_client_host=1

動いてくれません・・・

どうやって原因を突き止めればいいか、いろいろ悩みました

phpinfo()を使って、動きを確認してみました。

$ vi /public_html/phpinfo.php

<?php
phpinfo();


このファイルを作ってブラウザで表示し、xdebug の部分を見てみますと・・・

Step Debuggerの部分が disabled になってます。
xdebug.client_hostの部分が localhost になってます。
設定したはずの内容とは異なっています。なぜじゃぁぁぁぁ?
と悩むこと数時間。

xdebug.iniを修正する。

/etc/php.d/15-xdebug.ini ファイルを修正します。

# vi /etc/php.d/15-xdebug.ini

zend_extension=xdebug.so
xdebug.mode=debug
xdebug.client_host=192.168.xxx.xxx
xdebug.client_port=9003
xdebug.start_with_request=yes
xdebug.discover_client_host=1

# service httpd restart

再度 phpinfo()を見てみましょう

Step Debuggerの部分が enabled になってます。
xdebug.client_hostの部分が 192.168.0.xxx と設定どおりになってくれてますね。

無事、VSCode上のブレークポイントで止まってくれるようになりました。(^_^)v
めでたしめでたし。