2010-07-20 11 views
5

पर नहीं रुकता है मेरे पास Xdebug 2.1 स्थापित है, और PHP 5.2.13 के साथ चल रहा है। यह कई डीबीजीपी ग्राहकों से सफलतापूर्वक कनेक्ट हो सकता है (यानी xdebug.remote_log संचार को आगे और आगे दिखाता है, और ग्राहक स्वयं आने वाले कनेक्शन भी दिखाते हैं), लेकिन यह ब्रेकपॉइंट्स पर नहीं रुकता है। मैंने NetBeans, MacGDBp और Xdebug के साथ बंडल की गई कमांड लाइन debugclient भी कोशिश की है।Xdebug सफलतापूर्वक डीबीजीपी क्लाइंट से जुड़ता है, लेकिन ब्रेकपॉइंट्स

Log opened at 2010-07-20 09:33:17 
-> <init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" fileuri="file:///mnt/hgfs/htdocs/mycompany/index.php" language="PHP" protocol_version="1.0" appid="14371" idekey="macgdbp"><engine version="2.1.0"><![CDATA[Xdebug]]></engine><author><![CDATA[Derick Rethans]]></author><url><![CDATA[http://xdebug.org]]></url><copyright><![CDATA[Copyright (c) 2002-2010 by Derick Rethans]]></copyright></init> 

<- status -i macgdbp 
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="status" transaction_id="macgdbp" status="starting" reason="ok"></response> 

<- step_into -i macgdbp 
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="step_into" transaction_id="macgdbp" status="stopping" reason="ok"></response> 

<- status -i macgdbp 
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="status" transaction_id="macgdbp" status="stopping" reason="ok"></response> 

Log closed at 2010-07-20 09:33:18 

NetBeans breakpoints सेट करने के लिए प्रयास करता है, और इन Xdebug द्वारा स्वीकार कर रहे हैं:

एक ठेठ विनिमय की तरह लग रहा

<- breakpoint_set -i 7 -t line -s enabled -f file:///mnt/hgfs/htdocs/mycompany/index.php -n 9 
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="7" state="enabled" id="139360004"></response> 

हालांकि, Xdebug अभी भी बंद करने के लिए मना कर दिया!

उत्तर

7

यह आपको Xdebug एक zend_extension (अर्थात zend_extension=/usr/lib/php5/20060613+lfs/xdebug.so) के बजाय पीएचपी config में एक extension (अर्थात extension=xdebug.so) के रूप में भरी हुई है अगर ऐसा प्रतीत होता है।

सुनिश्चित करें कि आप अपने PHP कॉन्फिग में एक extension=xdebug.so लाइन कहीं भी न करना पड़े, भले ही आप यकीन है कि आप zend_extension का उपयोग कर रहे हैं। उदाहरण के लिए, यदि आपके पास /etc/php5/conf.d/xdebug.ini में है, तो में extension द्वारा इसे अच्छी तरह से हटाया जा सकता है। यदि ऐसा है, तो कुछ भी शिकायत नहीं करेगा, और phpinfo() कर्तव्यपूर्वक रिपोर्ट करेगा कि Xdebug लोड हो गया है! (Xdebug 2.1 जब एक विस्तार के रूप लोड phpinfo() में एक छोटे से चेतावनी जारी करता है, लेकिन पिछले संस्करणों में कुछ नहीं कर।)

+0

वाह, यह वास्तव में मैकजीडीबीपी के साथ रिमोट डीबगिंग को कॉन्फ़िगर करने में कुछ अजीब व्यवहार प्राप्त करने के बाद मुझे बचाया। मैं देख सकता था कि कनेक्शन xdebug.remote_log में सफल थे, और ग्राहक कनेक्शन प्राप्त कर रहे थे, लेकिन कनेक्शन जल्दी से हटा दिए जा रहे थे। क्लाइंट में कोई आउटपुट नहीं था। जैसा कि आपने सुझाव दिया है और बूम सब कुछ खूबसूरती से काम करता है "एक्सटेंशन = xdebug.so" बदल दिया। – milesw

+0

आपने सर को अपना दिन बनाया। अगर मैं कर सकता, तो मैं एक हजार बार उभारा होगा। – Bgi

0

आप, xdebug.so फाइल करने के लिए पूरा पथ जोड़ना होगा के रूप में भी जब यह php/modules/ फ़ोल्डर में रखा है zend_extension डिफ़ॉल्ट रूप से इस फ़ोल्डर में नहीं दिखता है।

यदि आपके पास exension=xdebug.so लाइन है, तो xdebug लोड होगा लेकिन यह ब्रेकपॉइंट्स पर नहीं रुक जाएगा (मुझे क्यों धड़कता है)।

सभी exension=xdeabug.so (यहां तक ​​कि क्ली इनआई फ़ाइल से भी लोड हो रहा है) को हटाकर zend_extension जोड़ना समस्या को हल करेगा।

+0

यह सिर्फ सब कुछ @mjs द्वारा कही गई सारी बातें ... एक सवाल जो 2 साल पुराना है इस की तुलना में बेहतर होना चाहिए का उत्तर दोहराएँ। –

+0

मैं सिर्फ स्पष्ट किया गया था कि आप पूरा पथ का उपयोग करना चाहिए, वे कहते हैं "zend_extension =/usr/lib/PHP5/20,060,613 + LFS/xdebug.so" लेकिन मैं वह इस मार्ग का इस्तेमाल किया क्योंकि वह एक संकलित संस्करण वहाँ था या जो कुछ भी मान लिया है, के रूप में मैं php में xdebug.so डाल/मॉड्यूल फ़ोल्डर मैं पूर्ण पथ डाल नहीं था (आप "एक्सटेंशन" निर्देश के साथ करते हैं) और कहा कि काम नहीं किया। – maxidirienzo

0

यदि php फ़ाइलों को सिम्लिंक-फ़ोल्डर में रखा गया है तो XDebug symlink-folder पथ के बजाय स्रोत फ़ोल्डर पथ के साथ काम करेगा!

तो तुम सांकेतिक रूप से लिंक फ़ोल्डर और फ़ाइलें

0

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

संबंधित मुद्दे