Làm cách nào để gỡ lỗi mã PHP trong Xdebug?

Nó cung cấp tất cả các bước cần thiết để gỡ lỗi các ứng dụng PHP bằng Xdebug và Visual Studio Code hoặc VS Code trên Ubuntu

Tháng Giêng 07, 2022

Trong hướng dẫn này, chúng ta sẽ thảo luận về các thuật ngữ cụ thể để gỡ lỗi và các bước cần thiết để gỡ lỗi chương trình PHP bằng Xdebug 3 và Visual Studio Code hoặc VS Code cho các ứng dụng PHP trên Ubuntu 20. 04 LTS. Nó giả định rằng PHP và Web Server đã được cài đặt trên hệ thống Ubuntu

Bạn cũng có thể làm theo Cách cài đặt PHP 7 trên Ubuntu 20. 04, Cách cài đặt PHP 8 trên Ubuntu 20. 04 LTS, Cách cài đặt Apache 2 trên Ubuntu 20. 04 LTS,  Cách cài đặt và định cấu hình Nginx trên Ubuntu 20. 04 LTS, Cách cài đặt PHP cho Nginx trên Ubuntu 20. 04 LTS và Cách cài đặt VSCode cho PHP trên Ubuntu

điều khoản gỡ lỗi

Phần này giải thích tất cả các thuật ngữ chính cụ thể để gỡ lỗi. Chúng được liệt kê dưới đây

Con trỏ lệnh hiện tại - Con trỏ lệnh trỏ đến câu lệnh hiện tại nơi trình gỡ lỗi bị tạm dừng và chờ hướng dẫn tiếp theo

Điểm ngắt - Quá trình thực thi chương trình tạm dừng tại điểm ngắt cho đến khi trình gỡ lỗi không cung cấp thêm hướng dẫn. Các điểm dừng được thêm vào một cách có chủ ý để kiểm tra chương trình về các lỗi có thể xảy ra

Bước vào - Chuyển sang câu lệnh tiếp theo trong trường hợp không có lời gọi hàm nào hoặc nhập hàm để gỡ lỗi trong trường hợp có lời gọi hàm trên câu lệnh hiện tại. Chúng ta có thể bước vào hàm được gọi trên câu lệnh hiện tại để kiểm tra thêm. Việc thực thi sẽ tạm dừng ở câu lệnh đầu tiên của hàm

Step Out hoặc Step Return - Thực hiện hoàn toàn các câu lệnh còn lại của hàm và di chuyển ra khỏi hàm và đặt con trỏ lệnh trên câu lệnh bên cạnh lệnh gọi hàm

Step Over - Thực hiện câu lệnh hiện tại mà không đi vào hàm nếu có. Nó bỏ qua chức năng và thực thi nó mà không cần nhập vào nó

Tiếp tục - Tiếp tục thực thi khi chương trình thực thi bình thường cho đến khi gặp điểm ngắt tiếp theo. Việc thực thi chương trình sẽ tạm dừng tại điểm ngắt tiếp theo nếu có bất kỳ

Tạm dừng - Tạm dừng thực thi hiện tại. Con trỏ lệnh sẽ trỏ đến câu lệnh tạm dừng thực thi

Dừng - Chấm dứt quá trình thực thi chương trình hiện tại và xóa ngăn xếp biến cũng như điểm dừng khỏi bộ nhớ

Cài đặt Xdebug

Trong phần này, chúng tôi sẽ kiểm tra xem Xdebug cho PHP đã được cài đặt chưa và các bước cần thiết để cài đặt và định cấu hình phiên bản Xdebug cho PHP mới nhất trên Ubuntu 20. 04 LTS

Viết chương trình đơn giản để in kết quả của hàm phpinfo() như hình bên dưới

# index.php

Chúng tôi có thể chạy nó trên Console hoặc truy cập nó qua trình duyệt. Nó phải tương tự như Hình 1

Làm cách nào để gỡ lỗi mã PHP trong Xdebug?

hình 1

Bây giờ, sao chép nội dung và dán vào hộp nhập liệu của Trình hướng dẫn cài đặt Xdebug như trong Hình 2

Làm cách nào để gỡ lỗi mã PHP trong Xdebug?

Hình 2

Bây giờ hãy nhấp vào nút đầu ra Analyze my phpinfo() để bắt đầu phân tích nó. Nó sẽ hiển thị Xdebug đã được cài đặt hay chưa như trong Hình 3 và cũng hiển thị các bước để cài đặt hoặc cập nhật phiên bản Xdebug mới nhất cho PHP như trong Hình 4

Làm cách nào để gỡ lỗi mã PHP trong Xdebug?

Hình 3

Làm cách nào để gỡ lỗi mã PHP trong Xdebug?

hình 4

Chúng ta có thể làm theo các bước được trình phân tích Xdebug đề cập để cài đặt Xdebug cho PHP 8 trên Ubuntu 20. 04 LTS như trong Hình 4

# Install the pre-requisites to compile PHP extensions
apt-get install php-dev autoconf automake

# Unpack the downloaded file
sudo tar -xvzf xdebug-3.1.2.tgz

# CD
cd xdebug-3.1.2

# Run phpize
sudo phpize

# Output
Configuring for: PHP Api Version: 20200930 Zend Module Api No: 20200930 Zend Extension Api No: 420200930 config.m4:12: warning: file `build/pkg.m4' included several times config.m4:12: warning: file `build/pkg.m4' included several times

# Configure
sudo ./configure

# Make
sudo make

# Install
cp modules/xdebug.so /usr/lib/php/20200930

# Configure
sudo nano /etc/php/8.0/apache2/conf.d/99-xdebug.ini

# Configurations
zend_extension=xdebug [xdebug] xdebug.mode=develop,debug xdebug.discover_client_host=1 xdebug.client_port = 9003 xdebug.start_with_request=yes

# Save and exit the editor

# Restart Web Server

Bây giờ, hãy xác minh xem Xdebug đã được cài đặt hay chưa bằng cách kiểm tra đầu ra thông tin PHP như trong Hình 5

Làm cách nào để gỡ lỗi mã PHP trong Xdebug?

Hình 5

Cài đặt tiện ích mở rộng Xdebug cho Mã VS

Trong bước này, chúng tôi sẽ cài đặt bộ điều hợp Xdebug của Felix Becker cho Visual Studio Code. Nhấp vào Biểu tượng tiện ích mở rộng trên Thanh hoạt động ở bên trái và tìm kiếm xdebug. Nó sẽ liệt kê các tiện ích mở rộng có sẵn cho Visual Studio Code như trong Hình 6

Làm cách nào để gỡ lỗi mã PHP trong Xdebug?

hình 6

Trong trường hợp của tôi, nó cho thấy Gỡ lỗi PHP đã được cài đặt. Bạn có thể nhấp vào nút Cài đặt trong trường hợp nó chưa được cài đặt

Gỡ lỗi PHP bằng Xdebug và Mã VS

Trong bước này, chúng tôi sẽ mở thư mục chứa tập lệnh PHP và thêm tập lệnh của chúng tôi để gỡ lỗi. Bây giờ, nhấp vào Tùy chọn tệp trên Thanh menu trên cùng và nhấp vào Tùy chọn thư mục mở từ menu con. Ngoài ra, duyệt tìm thư mục có mã PHP. Nó sẽ mở thư mục như trong Hình 7

Làm cách nào để gỡ lỗi mã PHP trong Xdebug?

Hình 7

Bây giờ, nhấp chuột phải vào thư mục nguồn và nhấp vào tùy chọn Tệp mới . Ngoài ra, hãy nhập tên tệp là gỡ lỗi. php và nhấn Enter. Nó sẽ tạo tệp như trong Hình 8

Làm cách nào để gỡ lỗi mã PHP trong Xdebug?

hình 8

Tiếp theo, thêm một số mã cho mục đích gỡ lỗi như trong Hình 9

Làm cách nào để gỡ lỗi mã PHP trong Xdebug?

Hình 9

Bây giờ, thêm các điểm dừng trên dòng 2 và 6 bằng cách nhấp vào khu vực bên trái của số dòng như trong Hình 10

Làm cách nào để gỡ lỗi mã PHP trong Xdebug?

Hình 10

Chúng tôi cũng cần định cấu hình Visual Studio Code để gỡ lỗi mã của chúng tôi. Nhấp vào Biểu tượng Chạy trên Thanh hoạt động ở phía bên trái để bắt đầu định cấu hình cho xdebug. Nó sẽ hiển thị các tùy chọn như trong Hình 11

Làm cách nào để gỡ lỗi mã PHP trong Xdebug?

Hình 11

Bây giờ, hãy nhấp vào tạo khởi chạy. json để định cấu hình dự án nhằm gỡ lỗi. Nó sẽ tạo tệp như trong Hình 12

Làm cách nào để gỡ lỗi mã PHP trong Xdebug?

Hình 12

Nó bao gồm các cấu hình gỡ lỗi bao gồm  Lắng nghe XDebug  và  Khởi chạy tập lệnh hiện đang mở. We will update the configuration Lắng nghe XDebug  như trong Hình 13.

Mình đã cập nhật cấu hình map thư mục trên Server (trái), với thư mục source code (phải). Ngoài ra, tôi đã cập nhật cổng thành 9003, đây là cổng mặc định cho Xdebug 3

Làm cách nào để gỡ lỗi mã PHP trong Xdebug?

Hình 13

Cuối cùng, chúng tôi sẽ bắt đầu phiên sửa lỗi để lắng nghe các điểm dừng do chúng tôi thêm vào. Ngoài ra, đảm bảo giữ cho máy chủ web chạy trước khi bắt đầu phiên gỡ lỗi. Bây giờ, hãy nhấp vào Biểu tượng Phát màu xanh lục ở trên cùng bên phải của Mã VS. Nó sẽ bắt đầu phiên gỡ lỗi và hiển thị thanh công cụ gỡ lỗi ở khu vực trung tâm trên cùng của trình chỉnh sửa chứa các điều khiển gỡ lỗi để gỡ lỗi mã của chúng ta. Nó cũng sẽ thay đổi màu của thanh trạng thái dưới cùng thành màu cam như trong Hình 14

Làm cách nào để gỡ lỗi mã PHP trong Xdebug?

Hình 14

Bây giờ, hãy thử truy cập gỡ lỗi. php từ trình duyệt sử dụng URL - http. // localhost/gỡ lỗi. php. Ban đầu, trình gỡ lỗi sẽ tạm dừng tại điểm dừng đầu tiên do chúng tôi thêm vào ở dòng số 2 như trong Hình 15. Ngoài ra, Visual Studio Code sẽ duy trì ngăn xếp lệnh gọi các biến và phương thức như trong Hình 15

Làm cách nào để gỡ lỗi mã PHP trong Xdebug?

Hình 15

Bây giờ, hãy nhấp vào Biểu tượng Bước qua hoặc nhấn F10 để chuyển sang bước tiếp theo. Chúng tôi cũng có thể nhấp vào Biểu tượng Tiếp tục để chuyển sang điểm ngắt tiếp theo. Ngoài ra, hãy ghi lại ngăn xếp biến sau khi nhấp vào Biểu tượng Bước qua. Nó sẽ khởi tạo biến $numbers trong ví dụ do tôi đưa ra và như được đánh dấu trong Hình 16. Ngoài ra, hãy kiểm tra ngăn xếp cuộc gọi như được đánh dấu trong Hình 16

Làm cách nào để gỡ lỗi mã PHP trong Xdebug?

Hình 16

Bây giờ, nhấn lại F10 để chuyển phần thực thi sang câu lệnh tiếp theo. Nó sẽ khởi tạo biến $i thành 0. Chúng ta có thể nhấp vào Biểu tượng Tiếp tục hoặc nhấn F5 để di chuyển đến điểm dừng tiếp theo giống như tôi. e. dòng số 6 trong trường hợp của chúng tôi. Ngoài ra, hãy kiểm tra giá trị của các biến $i và $number sau khi nhấp vào Biểu tượng Tiếp tục như trong Hình 17. Chúng tôi có thể tiếp tục gỡ lỗi mã của mình cho đến khi hoàn thành

Chúng tôi luôn có thể nhấp vào Biểu tượng dừng hoặc nhấn Shift + F5 để dừng thực thi

Làm cách nào để gỡ lỗi mã PHP trong Xdebug?

Hình 17

Trong trường hợp gọi hàm, chúng ta cũng có thể nhấp vào Biểu tượng Step Into hoặc nhấn F11 để chuyển phần thực thi sang câu lệnh đầu tiên của hàm

Đây là tất cả về gỡ lỗi mã nguồn bằng VS Code hoặc Visual Studio Code

Tóm lược

Hướng dẫn này cung cấp tất cả các bước để cài đặt và định cấu hình Xdebug cho PHP trên Ubuntu 20. 04 LTS. Nó cũng cung cấp các bước để cài đặt tiện ích mở rộng Gỡ lỗi PHP cho Visual Studio Code cũng như để thực thi và gỡ lỗi các chương trình của chúng tôi

Làm cách nào để gỡ lỗi mã PHP?

Để bắt đầu quá trình gỡ lỗi, nhấn F5. Mở Chrome và điều hướng đến chỉ mục của bạn. tệp php. Nhấp vào tiện ích mở rộng Trình trợ giúp XDebug mới và nhấp vào tùy chọn Gỡ lỗi .

Làm cách nào để bật chế độ gỡ lỗi PHP?

Bạn có thể bao gồm các dòng sau trong tệp bạn muốn gỡ lỗi. error_reporting(E_ALL); . .
Thật không may, xem nguồn trang cũng không hiển thị gì. .
Lỗi phân tích cú pháp sẽ hiển thị trong nhật ký lỗi của Apache, bất kể bạn có cài đặt nào ở bất kỳ nơi nào khác

Làm cách nào để gỡ lỗi mã PHP trên máy chủ?

Tạo cấu hình máy chủ gỡ lỗi PHP .
Trong hộp thoại Cài đặt/Tùy chọn ( Ctrl+Alt+S ), đi tới PHP. May chủ. .
Chỉ định tên cấu hình máy chủ gỡ lỗi
Chỉ định máy chủ nơi ứng dụng được chạy và cổng để truy cập nó
Từ danh sách Trình gỡ lỗi, chọn công cụ gỡ lỗi để sử dụng

Làm cách nào để gỡ lỗi ứng dụng web PHP?

Tạo cấu hình gỡ lỗi của loại Trang Web PHP . Từ menu chính, chọn Chạy. Chỉnh sửa cấu hình . Nhấn Alt+Shift+F10 , sau đó nhấn 0 để hiển thị hộp thoại Chỉnh sửa cấu hình hoặc chọn cấu hình từ cửa sổ bật lên và nhấn F4.