Làm cách nào để gỡ lỗi một plugin với Xdebug?


12

Tôi đã có thể cài đặt và thiết lập khá dễ dàng NetBeans 6.9.1 và Xdebug trên môi trường cục bộ của tôi, dựa trên PHP 5.3.0 (XAMPP).

Vấn đề của tôi bây giờ là như sau: nếu tôi đặt một điểm dừng trên tệp index.php của Wordpress hoặc các tệp PHP lõi Wordpress khác, NetBeans dừng chính xác ở vị trí mong muốn. Thay vào đó, nếu tôi đặt một điểm dừng trên một tệp plugin, thì việc kích hoạt mã thực thi NetBeans không dừng lại ở đó.

Bạn có biết làm thế nào có thể được giải quyết?

CẬP NHẬT: Thông tin thêm về những gì tôi đang cố gắng gỡ lỗi

Plugin được gọi là Diễn đàn Vanilla và có cấu trúc tệp sau:

- plugins
  - vanilla-forums
    + assets
    + nbproject
    + templates
      admin.php
      embed.php
      functions.php
      hooks.php
      plugin.php
      sso.php
      widgets.php

Tôi đặt điểm dừng bên trong một hàm có tên vf_validate_optionsđược xác định trong functions.php. Tôi chắc chắn rằng chức năng này được thực thi, nhưng NetBeans không phá vỡ ở đó.


Nếu bạn đặt một throw new Exception('die');câu lệnh sau dòng điểm dừng, thì nó có dừng lại không (theo nghĩa là điều này sẽ giết / kết thúc yêu cầu của bạn)?
hakre

@hakre Có, nó ném ngoại lệ (Tôi chắc chắn rằng mã nơi đặt điểm dừng được thực thi)
Drake

1
@Drake: Mã này được thực thi trong trang chính hay trong một cuộc gọi Ajax? Tôi tin rằng trình gỡ lỗi Xdebug phải được bật với một số biến GET hoặc POST và sau đó đặt cookie, có thể nó không được kích hoạt cho yêu cầu Ajax?
Jan Fabry

1
Tôi có cùng một vấn đề và vẫn không thể tìm ra cách khắc phục! Tôi đang sử dụng nusphere phped nhưng tôi cũng đã thử Eclipse mà không có kết quả! Tệp duy nhất mà xdebug dừng trên điểm dừng là các tệp "lõi" của wordpress. Cả tập tin php của chủ đề đều không thể gỡ lỗi! Hãy cho tôi biết nếu bạn tìm thấy giải pháp, tôi đã tạo một bài đăng trên diễn đàn chính thức của wordpress mà không có phản hồi :(
Kreker

1
Tôi nghĩ Jan Fabry là giải pháp. Tôi thích sử dụng plugin EasyXdebug của Firefox , nó sẽ thêm XDEBUG_SESSION_STARTtham số truy vấn cho tất cả các yêu cầu.
Jeff Stieler

Câu trả lời:



1

Có một giải pháp dễ dàng với phần mở rộng Firebox Xdebug Helper của Brian Gilbert . Điều này đặt cookie cho xdebugphiên cho phép bạn sử dụng xdebugtrong các plugin WordPress của mình.

Ngoài ra còn có các tiện ích mở rộng cho Chrome, Safari và Opera. Các liên kết có thể được tìm thấy trên trang web xdebug


0

Xin chào @Drake:

Câu hỏi ngu ngốc, tôi biết, nhưng bạn đã "kích hoạt" plugin chưa? Đó là nơi tôi đi lên khi các plugin không được gỡ lỗi.


Có, plugin được kích hoạt. Tôi đang cố gắng gỡ lỗi là một trình kích hoạt chức năng bởi một menu được tạo bởi chính plugin trong khu vực quản trị viên.
Drake

@Drake - "kích hoạt chức năng là gì?" Bạn có thể vui lòng gửi mã của bạn như là một bản cập nhật cho câu hỏi của bạn?
MikeSchinkel

0

không có cách nào để gỡ lỗi các tập tin của plugin. Cách duy nhất tôi tìm thấy để gỡ lỗi wordpress là sử dụng nusphere phped wich, thật không may, không phải là phần mềm miễn phí. Điều đó dường như là người duy nhất có thể làm điều đó, tôi không biết tại sao nhưng tôi đã dành rất nhiều thời gian để tìm cách gỡ lỗi với netbeans và nhật thực ... mà không có kết quả!


-3

Chà, vì chính WordPress cung cấp WP_DEBUGwp_die($msg)... tại sao bạn cần gỡ lỗi với Xdebug? Trừ khi bạn đang xây dựng plugin của mình bằng cách sử dụng một khung công tác?


xdebug cung cấp nhiều công cụ mà WP_DEBUG và đầu ra không - cấu hình và bước qua mã để bắt đầu ...
boisvert

Đồng ý, tại thời điểm đó tôi có rất ít kiến ​​thức về Xdebug.
adrian7
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.