Nếu bạn thấy phần mở rộng này hữu ích, nếu nó giúp bạn giải quyết các vấn đề của mình và nếu bạn đánh giá cao sự hỗ trợ được cung cấp ở đây, hãy xem xét tài trợ cho công việc của chúng tôi
Cài đặt
Cài đặt tiện ích mở rộng. Nhấn
xdebug.mode = debug
xdebug.start_with_request = yes
8, gõ xdebug.mode = debug
xdebug.start_with_request = yes
9Tiện ích mở rộng này là bộ điều hợp gỡ lỗi giữa Mã VS và Xdebug của Derick Rethans. Xdebug là một phần mở rộng PHP [tệp
xdebug.remote_enable = 1
xdebug.remote_autostart = 1
xdebug.remote_port = 9000
0 trên Linux và xdebug.remote_enable = 1
xdebug.remote_autostart = 1
xdebug.remote_port = 9000
1 trên Windows] cần được cài đặt trên máy chủ của bạnCài đặt Xdebug Tôi thực sự khuyên bạn nên tạo một tệp
2 đơn giản, đặt câu lệnhxdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
3 vào đó, sau đó sao chép kết quả và dán vào trình hướng dẫn cài đặt Xdebug. Nó sẽ phân tích nó và cung cấp cho bạn các hướng dẫn cài đặt phù hợp với môi trường của bạn. Nói ngắn gọnxdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
- Trên Windows. Tải xuống DLL được biên dịch trước thích hợp cho phiên bản PHP, kiến trúc [64/32 Bit], an toàn luồng [TS/NTS] và phiên bản trình biên dịch Visual Studio của bạn và đặt nó vào thư mục tiện ích mở rộng PHP của bạn
- Trên Linux. Tải xuống mã nguồn dưới dạng tarball hoặc , sau đó. Hoặc xem bản phân phối của bạn đã cung cấp các gói dựng sẵn chưa
bằng cách thêm
4 vào php của bạn. ban đầu. Đường dẫn php của bạn. ini được hiển thị trong đầu raxdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
0 của bạn trong "Tệp cấu hình đã tải"xdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
Kích hoạt tính năng gỡ lỗi từ xa trong
1 của bạnxdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
Đối với Xdebug v3. x. x
xdebug.mode = debug xdebug.start_with_request = yes
Đối với Xdebug v2. x. x
xdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
Có nhiều cách khác để yêu cầu Xdebug kết nối với trình gỡ lỗi từ xa, chẳng hạn như cookie, tham số truy vấn hoặc tiện ích mở rộng trình duyệt. Tôi khuyên dùng
2 [Xdebug v2]/xdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
3 [Xdebug v3] vì nó "chỉ hoạt động". Ngoài ra còn có nhiều tùy chọn khác, như cổng, vui lòng xem để biết thêm thông tin. Xin lưu ý rằng cổng Xdebug mặc định đã thay đổi giữa Xdebug v2 thành v3 từ 9000 thành 9003xdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
Nếu bạn đang phát triển web, đừng quên khởi động lại máy chủ web của mình để tải lại cài đặt
Xác minh cài đặt của bạn bằng cách kiểm tra đầu ra
0 của bạn cho phần Xdebugxdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
Cấu hình mã VS
Trong dự án của bạn, hãy chuyển đến trình gỡ lỗi và nhấn vào biểu tượng bánh răng nhỏ và chọn PHP. Một cấu hình khởi chạy mới sẽ được tạo cho bạn với ba cấu hình
- Listen for Xdebug Cài đặt này sẽ chỉ bắt đầu lắng nghe trên cổng đã chỉ định [theo mặc định là 9003] cho Xdebug. Nếu bạn đã định cấu hình Xdebug như được đề xuất ở trên, mỗi khi bạn gửi yêu cầu bằng trình duyệt đến máy chủ web của mình hoặc khởi chạy tập lệnh CLI, Xdebug sẽ kết nối và bạn có thể dừng tại các điểm ngắt, ngoại lệ, v.v.
- Khởi chạy tập lệnh hiện đang mở Cài đặt này là một ví dụ về gỡ lỗi CLI. Nó sẽ khởi chạy tập lệnh hiện đang mở dưới dạng CLI, hiển thị tất cả đầu ra thiết bị xuất chuẩn/thiết bị xuất chuẩn trong bảng điều khiển gỡ lỗi và kết thúc phiên gỡ lỗi sau khi tập lệnh thoát
- Khởi chạy máy chủ web tích hợp Cấu hình này khởi động máy chủ web tích hợp PHP trên một cổng ngẫu nhiên và mở trình duyệt bằng lệnh
5. Cổng là ngẫu nhiên [localhost. 0] nhưng có thể thay đổi thành cổng cố định mong muốn [ví dụ:. máy chủ cục bộ. 8080]. Nếu cần tập lệnh bộ định tuyến, hãy thêm tập lệnh đó bằng chỉ thịxdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
6. Các chỉ thị PHP/Xdebug bổ sung kích hoạt gỡ lỗi trên mỗi lần tải trangxdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
Ngoài ra còn có các cấu hình cho cài đặt Xdebug v2 [Legacy]
Bạn có thể tìm thêm thông tin chung về gỡ lỗi bằng Mã VS trên https. //mã số. Visual Studio. com/docs/biên tập viên/gỡ lỗi
Ghi chú. Bạn thậm chí có thể gỡ lỗi tập lệnh mà không cần
7. Nếu không có thư mục nào được mở và thanh trạng thái Mã VS có màu tím, nhấn ______ 08 sẽ bắt đầu tập lệnh mở với 3 tham số cụ thể của Xdebug. Nếu tệp thực thi php không có trong đường dẫn, bạn có thể cung cấp cho nó cài đặtxdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
9. Để gỡ lỗi hoạt động, Xdebug vẫn phải được cài đặt chính xácxdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
khởi chạy được hỗ trợ. cài đặt json
20. Luôn luônxdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
21xdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
22. Địa chỉ để liên kết khi nghe Xdebug [mặc định. tất cả các kết nối IPv6 nếu có, nếu không thì tất cả các kết nối IPv4] hoặc Ổ cắm tên miền Unix [tiền tố cóxdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
23] hoặc Windows Pipe [xdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
24] - không thể kết hợp với cổngxdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
25. Cổng để lắng nghe Xdebug [mặc định.xdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
26]. Nếu cổng được đặt thànhxdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
27, hệ thống sẽ chọn một cổng ngẫu nhiên và trình giữ chỗxdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
28 được thay thế bằng cổng đã chọn trongxdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
29 vàxdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
80xdebug.mode = debug xdebug.start_with_request = yes
81. Có ngắt ở đầu tập lệnh hay không [mặc định.xdebug.mode = debug xdebug.start_with_request = yes
82]xdebug.mode = debug xdebug.start_with_request = yes
83. Danh sách các đường dẫn máy chủ ánh xạ tới các đường dẫn nguồn cục bộ trên máy của bạn, xem phần "Gỡ lỗi máy chủ từ xa" bên dướixdebug.mode = debug xdebug.start_with_request = yes
84. Có ghi nhật ký tất cả giao tiếp giữa Mã VS và bộ điều hợp vào bảng điều khiển gỡ lỗi hay không. Xem phần Khắc phục sự cố ở bên dướixdebug.mode = debug xdebug.start_with_request = yes
85. Một mảng tùy chọn gồm các mẫu toàn cục mà các lỗi nên được bỏ qua [ví dụ:xdebug.mode = debug xdebug.start_with_request = yes
86]xdebug.mode = debug xdebug.start_with_request = yes
87. Chỉ chấp nhận số phiên gỡ lỗi song song này. Các kết nối bổ sung sẽ bị hủy và quá trình thực thi của chúng sẽ tiếp tục mà không cần gỡ lỗixdebug.mode = debug xdebug.start_with_request = yes
88. Cài đặt proxy DBGpxdebug.mode = debug xdebug.start_with_request = yes
89. Để bật đăng ký proxy, hãy đặt thànhxdebug.mode = debug xdebug.start_with_request = yes
90 [mặc định là `false]xdebug.mode = debug xdebug.start_with_request = yes
91. Địa chỉ của proxy. Hỗ trợ tên máy chủ, địa chỉ IP hoặc ổ cắm tên miền Unix [mặc định. 127. 0. 0. 1]xdebug.mode = debug xdebug.start_with_request = yes
25. Cổng nơi bộ điều hợp sẽ đăng ký với proxy [mặc định.xdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
93]xdebug.mode = debug xdebug.start_with_request = yes
94. Một khóa duy nhất cho phép proxy khớp các yêu cầu với trình chỉnh sửa của bạn [mặc định.xdebug.mode = debug xdebug.start_with_request = yes
95]. Mặc định được lấy từ cài đặt VSCodexdebug.mode = debug xdebug.start_with_request = yes
96xdebug.mode = debug xdebug.start_with_request = yes
97. Số phần nghìn giây phải đợi trước khi ngừng kết nối với proxy [mặc định.xdebug.mode = debug xdebug.start_with_request = yes
98]xdebug.mode = debug xdebug.start_with_request = yes
99. Proxy có nên chuyển tiếp nhiều phiên/kết nối cùng lúc hay không [mặc định.xdebug.mode = debug xdebug.start_with_request = yes
90]xdebug.mode = debug xdebug.start_with_request = yes
01. Cho phép bạn ghi đè cài đặt gỡ lỗi từ xa của Xdebug để tinh chỉnh Xdebug theo nhu cầu của bạn. Ví dụ: bạn có thể chơi vớixdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
02 vàxdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
03 để thay đổi số lượng mảng và đối tượng con tối đa được truy xuất và độ sâu tối đa trong các cấu trúc như mảng và đối tượng. Điều này có thể tăng tốc trình gỡ lỗi trên các máy chạy chậm. Để biết danh sách đầy đủ các tên tính năng có thể được đặt, vui lòng tham khảoxdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
02. số lượng mảng hoặc đối tượng con tối đa để truy xuất ban đầuxdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
05. lượng dữ liệu biến tối đa để truy xuất ban đầuxdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
03. độ sâu tối đa mà công cụ gỡ lỗi có thể trả về khi gửi mảng, giá trị băm hoặc cấu trúc đối tượng tới IDE [không cần thay đổi điều này vì độ sâu được truy xuất tăng dần, giá trị lớn có thể khiến IDE bị treo]xdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
07. Tính năng này có thể được đặt bởi IDE nếu nó muốn có thông tin nội bộ chi tiết hơn về các thuộc tính [ví dụ:. các thành viên riêng của các lớp học, v.v. ] Không có nghĩa là các thành viên ẩn không được hiển thị cho IDExdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
08. Thay vì nghe cục bộ, hãy mở một kết nối và đăng ký với Xdebug Cloud và chấp nhận các phiên sửa lỗi trên kết nối đóxdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
Các tùy chọn cụ thể để gỡ lỗi CLI
6. Đường dẫn đến tập lệnh sẽ được khởi chạyxdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
10. Các đối số được chuyển đến tập lệnhxdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
11. Thư mục làm việc hiện tại để sử dụng khi khởi chạy tập lệnhxdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
12. Đường dẫn đến tệp nhị phân PHP được sử dụng để khởi chạy tập lệnh. Theo mặc định, cái trên PATHxdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
80. Các đối số bổ sung để chuyển sang mã nhị phân PHPxdebug.mode = debug xdebug.start_with_request = yes
14. Khởi chạy tập lệnh trong cửa sổ bảng điều khiển bên ngoài thay vì bảng điều khiển gỡ lỗi [mặc định.xdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
82]xdebug.mode = debug xdebug.start_with_request = yes
29. Các biến môi trường để chuyển đến tập lệnhxdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
17. Đường dẫn tùy chọn đến tệp chứa định nghĩa biến môi trườngxdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
Đặc trưng
- Điểm ngắt dòng
- Điểm dừng có điều kiện
- Số lần truy cập điểm ngắt. hỗ trợ các điều kiện như
18,xdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
19 vàxdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
20xdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
- điểm dừng chức năng
- Bước qua, bước vào, bước ra
- Phá vỡ khi nhập cảnh
- Bắt đầu với Stop on entry [F10/F11]
- Phá vỡ các ngoại lệ và lỗi/cảnh báo/thông báo chưa được phát hiện
- Nhiều yêu cầu song song
- Dấu vết ngăn xếp, biến phạm vi, siêu toàn cầu, hằng số do người dùng xác định
- Mảng & đối tượng [bao gồm tên lớp, thuộc tính riêng và tĩnh]
- bảng điều khiển gỡ lỗi
- Xem
- Đặt biến
- Chạy dưới dạng CLI
- Chạy mà không cần gỡ lỗi
- Hỗ trợ đăng ký và hủy đăng ký DBGp Proxy
- Hỗ trợ đám mây Xdebug
Gỡ lỗi máy chủ từ xa
Để gỡ lỗi một ứng dụng đang chạy trên máy chủ từ xa, bạn cần yêu cầu Xdebug kết nối với một IP khác với
xdebug.remote_enable = 1
xdebug.remote_autostart = 1
xdebug.remote_port = 9000
21. Điều này có thể được thực hiện bằng cách đặt thành IP của bạn hoặc bằng cách đặt để làm cho Xdebug luôn kết nối lại với máy đã thực hiện yêu cầu web. Cái sau là cài đặt duy nhất hỗ trợ nhiều người dùng gỡ lỗi trên cùng một máy chủ và "chỉ hoạt động" cho các dự án web. Một lần nữa, vui lòng xem chủ đề để biết thêm thông tinĐể Mã VS ánh xạ các tệp trên máy chủ tới đúng tệp trên máy cục bộ của bạn, bạn phải đặt cài đặt
xdebug.mode = debug
xdebug.start_with_request = yes
83 trong lần khởi chạy của mình. json. Ví dụxdebug.remote_enable = 1
xdebug.remote_autostart = 1
xdebug.remote_port = 9000
2Cũng xin lưu ý rằng cài đặt bất kỳ tùy chọn gỡ lỗi CLI nào sẽ không hoạt động với gỡ lỗi máy chủ từ xa vì tập lệnh luôn được khởi chạy cục bộ. Nếu bạn muốn gỡ lỗi tập lệnh CLI trên máy chủ từ xa, bạn cần khởi chạy tập lệnh đó theo cách thủ công từ dòng lệnh
hỗ trợ proxy
Trình gỡ lỗi có thể tự đăng ký proxy DBGp bằng Khóa IDE. Sau đó, proxy sẽ chỉ chuyển tiếp tới IDE những phiên DBGp có khóa IDE được chỉ định này. Điều này hữu ích trong môi trường nhiều người dùng, nơi các nhà phát triển không thể sử dụng cùng một cổng DBGp cùng một lúc. Cần thiết lập cẩn thận để yêu cầu máy chủ web chứa khóa IDE phù hợp
Việc triển khai chính thức dbgpProxy
Tiện ích mở rộng trình duyệt trợ giúp Xdebug cũng được khuyến nghị. Có thể dễ dàng cấu hình khóa IDE bên yêu cầu
Xử lý sự cố
- Đặt câu hỏi trên StackOverflow
- Nếu bạn nghĩ rằng bạn đã tìm thấy một lỗi, hãy mở một vấn đề
- Đảm bảo rằng bạn đã cài đặt phiên bản mới nhất của tiện ích mở rộng này và Xdebug
- Hãy thử một tệp PHP đơn giản để tạo lại sự cố, chẳng hạn như từ dự án thử nghiệm
- Đặt
25 trong lần khởi chạy của bạn. json và quan sát bảng Debug Consolexdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
- Trong php của bạn. ini, đặt [đảm bảo máy chủ web của bạn có quyền ghi vào tệp]
- Tiếp cận trên Twitter @damjancvetko
Đóng góp
Để hack bộ điều hợp này, hãy sao chép kho lưu trữ và mở nó trong Mã VS. Bạn cần cài đặt NodeJS với NPM và trong PATH của bạn. Ngoài ra, nên cài đặt PHP và Xdebug gần đây và trong PATH của bạn
- Cài đặt các gói NPM bằng cách chạy
27 trên dòng lệnh trong thư mục dự án hoặc chọnxdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
28 trong menu Mã VSxdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
- Chạy quy trình xây dựng/xem bằng cách chạy
29 trên dòng lệnh trong thư mục dự án hoặc chọnxdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
30 trong menu Mã VSxdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
- Bắt đầu bộ điều hợp gỡ lỗi bằng cách mở thanh bên Chạy và Gỡ lỗi, chọn cấu hình
31 và nhấp vào mũi tên Chạy màu xanh lá cây [hoặc nhấnxdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
8]. Bộ điều hợp đã biên dịch sẽ chạy ở "chế độ máy chủ" và lắng nghe trên cổng TCP 4711xdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
- Chạy một phiên bản riêng của Mã VS, được gọi là "Máy chủ phát triển tiện ích mở rộng" bằng cách chạy
33 trên dòng lệnh trong thư mục dự án hoặc chọn cấu hình Chạy và Gỡ lỗixdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
34 và nhấn mũi tên Chạy màu lục. Một lối tắt khác là chạyxdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
35. Bạn cũng có thể chạy bản dựng VS Code dành cho Người dùng nội bộ để thử nghiệm các tính năng mới hơnxdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
- Trong trường hợp "Máy chủ phát triển tiện ích mở rộng" mở
36 và bỏ ghi chú dòng cấu hìnhxdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
37. Chạy phiên gỡ lỗi PHP của bạn bằng cách chọn cấu hình mong muốn và nhấnxdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
8. Giờ đây, bạn có thể gỡ lỗi dự án thử nghiệm như đã chỉ định ở trên và đặt các điểm dừng bên trong phiên bản Mã VS đầu tiên của bạn để chuyển qua mã bộ điều hợpxdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_port = 9000
Bạn có thể tìm thêm thông tin về tiện ích mở rộng thử nghiệm trên https. //mã số. Visual Studio. com/api/làm việc với tiện ích mở rộng/thử nghiệm-tiện ích mở rộng
Các bài kiểm tra được viết bằng Mocha và có thể chạy bằng
xdebug.remote_enable = 1
xdebug.remote_autostart = 1
xdebug.remote_port = 9000
39 hoặc từ xdebug.remote_enable = 1
xdebug.remote_autostart = 1
xdebug.remote_port = 9000
40. Khi bạn gửi PR, các bài kiểm tra sẽ được chạy trong CI trên Linux, macOS và Windows dựa trên nhiều phiên bản PHP và Xdebug