Xdebug के साथ प्लगइन डिबग कैसे करें?


12

मैं PHP 5.3.0 (XAMPP) के आधार पर अपने स्थानीय वातावरण पर नेटबियंस 6.9.1 और Xdebug को आसानी से स्थापित और सेटअप करने में सक्षम था।

मेरी समस्या अब निम्नलिखित है: यदि मैंने Wordpress की index.php या अन्य Wordpress Core PHP फाइलों पर एक ब्रेकपॉइंट लगाया, तो नेटबिन वांछित स्थिति में सही ढंग से बंद हो जाता है। यदि इसके बजाय मैंने एक प्लगइन फाइल पर एक ब्रेकपॉइंट लगाया, तो एक ट्रिगर कोड निष्पादन नेटबीन्स वहां नहीं रुकता।

क्या आप जानते हैं कि कैसे हल किया जा सकता है?

अद्यतन: मैं डीबग करने के लिए क्या कर रहा हूँ के बारे में अधिक जानकारी

प्लगइन को वनिला फ़ोरम कहा जाता है और इसमें निम्न फ़ाइल संरचना होती है:

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

मैंने एक फ़ंक्शन के अंदर ब्रेकपॉइंट को vf_validate_optionsपरिभाषित किया है जिसका नाम परिभाषित है functions.php। मुझे यकीन है कि इस फ़ंक्शन को निष्पादित किया गया है, लेकिन NetBeans वहां नहीं टूटता है।


यदि आप throw new Exception('die');ब्रेकपॉइंट की रेखा के बाद एक बयान देते हैं, तो क्या यह बंद हो जाता है (इस अर्थ में कि यह आपके अनुरोध को मारता है / समाप्त करता है)?
हक्रे

@ ठाकरे हां, यह अपवाद फेंकता है (मुझे यकीन है कि कोड जहां ब्रेकपॉइंट सेट किया गया है) निष्पादित किया गया है
ड्रेक

1
@ ड्रेक: क्या यह कोड मुख्य पृष्ठ में, या अजाक्स कॉल में निष्पादित किया गया है? मेरा मानना ​​है कि Xdebug डिबगर को कुछ GET या POST चर के साथ सक्षम किया जाना चाहिए और फिर कुकी सेट करना चाहिए , शायद यह Ajax अनुरोध के लिए सक्षम नहीं है?
Jan Fabry

1
मैं एक ही समस्या है और अभी भी एक तय नहीं मिल सकता है! मैं nusphere phped का उपयोग कर रहा हूँ, लेकिन मैंने ग्रहण किया और कोई परिणाम नहीं मिला! ब्रेकपॉइंट पर xdebug बंद होने वाली एकमात्र फ़ाइल वर्डप्रेस "कोर" फाइलें हैं। न तो विषय की php फ़ाइल डीबग करने योग्य है! मुझे बताएं कि अगर आपको कोई हल मिल जाए, तो मैंने बिना किसी उत्तर के वर्डप्रेस आधिकारिक मंच पर एक पोस्ट किया :(
क्रेकर

1
मुझे लगता है कि जन फैब्री समाधान पर है। मैं फ़ायरफ़ॉक्स प्लगइन EasyXdebug का उपयोग करना पसंद करता हूं , जो XDEBUG_SESSION_STARTसभी अनुरोधों के लिए क्वेरी पैरामीटर जोड़ देगा ।
जेफ स्टेलर

जवाबों:



1

ब्रायन गिल्बर्ट द्वारा फायरबॉक्स एक्सटेंशन Xdebug हेल्पर के साथ एक आसान समाधान है । यह xdebugसत्र के लिए कुकीज़ सेट करता है जो आपको xdebugअपने वर्डप्रेस प्लगइन्स के भीतर उपयोग करने की अनुमति देता है।

क्रोम, सफारी और ओपेरा के लिए एक्सटेंशन भी हैं। लिंक xdebug वेबसाइट पर देखे जा सकते हैं


0

हाय @Drake:

बेवकूफ सवाल, मुझे पता है, लेकिन क्या आपने प्लगइन को "सक्रिय" किया है? यही कारण है कि जब प्लगइन्स डिबग नहीं हो रहे हैं तो मैं यात्रा करता हूं।


हाँ, प्लगइन सक्रिय है। मैं क्या डिबग करने की कोशिश कर रहा हूं, यह एक फ़ंक्शन ट्रिगर है जो कि प्लग इन स्वयं द्वारा प्रशासित क्षेत्र में बनाया गया है।
ड्रेक

@ ड्रेक - एक "फ़ंक्शन ट्रिगर क्या है ?" क्या आप कृपया अपने प्रश्न के अपडेट के रूप में अपना कोड पोस्ट कर सकते हैं?
माइकस्किंकेल

0

प्लगइन की फ़ाइलों को डीबग करने का कोई तरीका नहीं है। एकमात्र तरीका जो मुझे डिबग वर्डप्रेस के लिए मिला है, वह है न्युस्फीयर फ़ेप्ड विच का उपयोग करना, दुर्भाग्यवश, फ्रीवेयर नहीं। ऐसा लगता है कि केवल एक ही ऐसा कर सकता है, मुझे नहीं पता कि क्यों लेकिन मैं बहुत लंबे समय से लगा रहा हूं कि नेटबिन और ग्रहण के साथ डिबग कैसे किया जाए ... कोई परिणाम नहीं!


-3

ठीक है, क्योंकि वर्डप्रेस स्वयं प्रदान करता है WP_DEBUG, और wp_die($msg)... आपको Xdebug के साथ डीबग करने की आवश्यकता क्यों है? जब तक आप एक ढांचे का उपयोग करके अपने प्लगइन का निर्माण नहीं कर रहे हैं?


xdebug कई उपकरण प्रदान करता है जो कि WP_DEBUG और आउटपुट नहीं - एक शुरुआत के लिए कोड के माध्यम से प्रोफाइलिंग और स्टेपिंग ...
boisvert

सहमत, उस समय मुझे Xdebug के बारे में बहुत कम जानकारी थी।
एड्रियन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.