Bagaimana cara debug plugin dengan Xdebug?

12

Saya dapat menginstal dan mengatur NetBeans 6.9.1 dan Xdebug dengan mudah di lingkungan lokal saya, berdasarkan PHP 5.3.0 (XAMPP).

Masalah saya sekarang adalah sebagai berikut: jika saya meletakkan breakpoint pada index.php Wordpress atau file PHP inti Wordpress lainnya, NetBeans dengan benar berhenti pada posisi yang diinginkan. Jika sebaliknya saya meletakkan breakpoint pada file plugin, pemicu eksekusi kode yang NetBeans tidak berhenti di situ.

Apakah Anda tahu bagaimana bisa diselesaikan?

UPDATE: Info lebih lanjut tentang apa yang saya coba debug

Plugin disebut Forum Vanilla dan memiliki struktur file berikut:

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

Saya mengatur breakpoint di dalam fungsi bernama vf_validate_optionsdidefinisikan dalam functions.php. Saya yakin bahwa fungsi ini dijalankan, tetapi NetBeans tidak pecah di sana.

Itik jantan
sumber
Jika Anda meletakkan throw new Exception('die');pernyataan setelah garis breakpoint, apakah kemudian berhenti (dalam arti bahwa ini membunuh / mengakhiri permintaan Anda)?
hakre
@ hakre Ya, itu melempar pengecualian (saya yakin bahwa kode di mana breakpoint diatur dijalankan)
Drake
1
@Rake: Apakah kode ini dijalankan di halaman utama, atau dalam panggilan Ajax? Saya percaya debugger Xdebug harus diaktifkan dengan beberapa variabel GET atau POST dan kemudian menetapkan cookie, mungkin itu tidak diaktifkan untuk permintaan Ajax?
Jan Fabry
1
Saya memiliki masalah yang sama persis dan masih tidak dapat menemukan perbaikan! Saya menggunakan nusphere phped tetapi saya mencoba Eclipse juga tanpa hasil! Satu-satunya file yang berhenti xdebug pada breakpoint adalah file wordpress "core". File php tema tidak dapat di-debug! Beritahu saya jika Anda menemukan solusinya, saya membuat posting di forum resmi wordpress tanpa balasan :(
Kreker
1
Saya pikir Jan Fabry adalah solusinya. Saya lebih suka menggunakan plugin Firefox EasyXdebug , yang akan menambahkan XDEBUG_SESSION_STARTparameter kueri ke semua permintaan.
Jeff Stieler

Jawaban:

1

Ada solusi mudah dengan ekstensi Firebox Xdebug Helper oleh Brian Gilbert . Ini mengatur cookie untuk xdebugsesi yang memungkinkan Anda untuk menggunakan xdebugdalam plugin WordPress Anda.

Ada juga ekstensi untuk Chrome, Safari dan Opera. Tautan dapat ditemukan di situs web xdebug

Gabrielle Rose
sumber
0

Hai @Buat:

Pertanyaan bodoh, saya tahu, tetapi apakah Anda sudah "mengaktifkan" plugin? Di situlah saya tersandung ketika plugin tidak sedang di-debug.

MikeSchinkel
sumber
Ya, plugin diaktifkan. Apa yang saya coba debug adalah pemicu fungsi oleh menu yang dibuat oleh plugin sendiri di area administrator.
Drake
@Rake ​​- Apa itu "pemicu fungsi?" Bisakah Anda memposting kode Anda sebagai pembaruan untuk pertanyaan Anda?
MikeSchinkel
0

tidak ada cara untuk men-debug file plugin. Satu-satunya cara saya menemukan untuk debug wordpress adalah dengan menggunakan nusphere phped yang, sayangnya, bukan freeware. Tampaknya satu-satunya yang bisa melakukan itu, saya tidak tahu mengapa, tetapi saya menghabiskan waktu yang sangat lama mencari cara untuk debug dengan netbeans dan gerhana ... tanpa hasil!

Kreker
sumber
-3

Ya, karena WordPress sendiri menyediakannya WP_DEBUG, dan wp_die($msg)... mengapa Anda perlu melakukan debug dengan Xdebug? Kecuali Anda membangun plugin Anda menggunakan framework?

adrian7
sumber
xdebug menawarkan banyak alat yang WP_DEBUG dan keluaran tidak - profiling dan melangkah melalui kode untuk memulai ...
boisvert
Setuju, pada saat itu saya memiliki sedikit pengetahuan tentang Xdebug.
adrian7