Debugging with Xdebug In Hindi

Debugging with Xdebug In Hindi

पीएचपी प्रोग्रामिंग मे Xdebug पीएचपी प्रोग्राम सोर्स कोड को मैनेज और कण्ट्रोल करने के लिए एक पॉवरफुल डिबगिंग और प्रोफाइलिंग टूल फीचर्स है। यह प्रोग्रामर को प्रोग्राम सोर्स कोड के एक्सेक्यूशन को इंडीकेट करने, प्रोग्राम सोर्स कोड परफॉरमेंस प्रोफाइलिंग करने और प्रोग्राम सोर्स कोड ब्रेकपॉइंट को मैन्युअल सेट करने में हेल्प करता है, जो बिगिनर और एक्सपर्ट वेब डेवलपर को प्रोग्राम डेवलपमेंट प्रोसेस फेज में प्रोब्लेम्स को एफ्फिसेंटली फाइंड करने और उनके सलूशन में हेल्प प्रोवाइड करता है। पीएचपी प्रोग्रामिंग में सोर्स कोड डिबगिंग के लिए Xdebug फ्रेमवर्क को सेटअप और यूज़ करने के बारे में यहाँ आपको डिटेल जानकारी मिलती है।

Debugging with Xdebug In Hindi

What is the Xdebug framework?

Xdebug पीएचपी प्रोग्रामिंग मे एक पीएचपी प्रोग्राम सॉफ्टवेयर एक्सटेंशन है, जो पीएचपी वेब डेवलपर को प्रोग्राम सोर्स कोड डिबगिंग और प्रोफाइलिंग फीचर्स प्रोवाइड करता है। यह वेब डेवलपर्स को कई प्रकार के प्रोग्राम सोर्स कोड को डिबग और मैन्युअल मॉडिफाई करने में हेल्प करता है.

Step-by-Step Debugging in PHP Programs. 

Running through source code step by step.

  • प्रोग्राम सोर्स कोड को एरर ब्रेकपॉइंट कुछ पर्टिकुलर ब्रेकपॉइंट पर प्रोग्राम को एक्सेक्यूशन होने से रोकना है.
  • यह प्रोग्राम में स्टैक ट्रेस, प्रोग्राम में फ़ंक्शन कॉल के कॉल स्टैक को प्रीव्यू करता है.
  • यह प्रोग्राम सोर्स कोड कवरेज एनालिसिस, यह ट्रैक करता कि प्रोग्राम सोर्स कोड के कौन से पार्ट टेस्टिंग के माध्यम से कवर किए गए हैं.
  • यह सोर्स कोड प्रोफाइलिंग, आपके एप्लिकेशन के परफॉरमेंस के एनालिसिस में हेल्प करता है.

Setting up the Xdebug extension in PHP.

तो चलिए यहाँ जाने की एक सामान्य यूजर अपने लोकल सिस्टम डेवलपमेंट एनवायरनमेंट में Xdebug पीएचपी एक्सटेंसन को कैसे इंस्टॉल और सेटअप कर सकते हैं।

Step 1 – Install the Xdebug PHP Extension.

अपने कंप्यूटर में Xdebug पीएचपी एक्सटेंशन को इंस्टॉल करने के लिए, अपने मौजूदा ऑपरेटिंग सिस्टम के अनुसार नीचे दिए गए स्टेप्स को फॉलो करे.

Xdebug PHP Extension for Linux Ubuntu.

sudo apt-get install php-xdebug

xdebug for macOS operating systems with Homebrew.

brew install php-xdebug

Xdebug PHP extension for Windows operating systems.

  • सबसे पहले अपने वेब ब्राउज़र में Xdebug पीएचपी एक्सटेंसन वेबसाइट से Xdebug का लेटेस्ट विंडोज सपोर्टेड वर्जन डाउनलोड करें।
  • यहाँ php_xdebug.dll फ़ाइल को अपनी पीएचपी एक्सटेंशन डायरेक्टरी (सामान्यता C:\php\ext जैसी) लोकेशन में एक्सट्रेक्ट करे।
  • अपने लोकल कंप्यूटर में Xdebug पीएचपी एक्सटेंशन लोड करने के लिए अपनी php.ini फ़ाइल को मैन्युअल मॉडिफाई करें।
  • zend_extension=”C:\php\ext\php_xdebug.dll”

Step 2 – Enable the Xdebug extension in php.ini

अपने लोकल सिस्टम में Xdebug एक्सटेंशन को इंस्टॉल करने के बाद, आपको इसे php.ini फ़ाइल में इनेबल करना होगा। सामान्यता लिनक्स ओएस के लिए /etc/php/7.x/cli/php.ini में, या विंडोज के लिए C:\php\php.ini में मडिफिकेशन करे।

Add the following lines to the php.ini xdebug file.

[xdebug]

zend_extension=”path/to/xdebug.so”   ; Linux or macOS

; OR

zend_extension=”C:\php\ext\php_xdebug.dll”  ; Windows

xdebug.mode = debug

xdebug.start_with_request = yes

xdebug.client_host = “127.0.0.1”

xdebug.client_port = 9003

xdebug.log = /tmp/xdebug.log

xdebug php.ini xdebug file explanation.

  • xdebug.mode = debug – यह स्टेटमेंट xdebug में डिबगिंग मोड को इनेबल करता है।
  • xdebug.start_with_request = yes – यह Xdebug को प्रत्येक रिक्वेस्ट के साथ प्रोग्राम सोर्स कोड को डिबगिंग स्टार्ट करने के लिए कहता है, यहाँ आप ट्रिगर का यूज़ केवल तभी डिबगिंग प्रोसेस को स्टार्ट करने के लिए कर सकते हैं. जब यह क्लियर आर्डर में क्लियर रूप से ट्रिगर किया गया हो।
  • xdebug.client_host और xdebug.client_port – यहाँ वह IP एड्रेस और पोर्ट को फिक्स करें, जहाँ आपका xdebug डीबगर कनेक्ट होना चाहिए। सामान्यता यह 127.0.0.1 और पोर्ट 9003 कुछ इस तरह डिस्प्ले होता है।
  • xdebug.log – इसमें Xdebug मैसेज के लिए लॉग फ़ाइल इंडीकेट करने हेतु अल्टरनेटिव सेटिंग होती है।

Step 3 – Restart the Xdebug web server (if applicable).

यदि डेवलपर xdebug किसी वेब सर्वर Apache, या Nginx प्लेटफार्म पर Xdebug एक्सटेंशन को रन कर रहे हैं, तो किसी भी प्रकार के मॉडिफिकेशन को अप्लाई करने के लिए php.ini को अपडेट करने के बाद सर्वर को रीस्टार्ट करें।

sudo service apache2 restart

# or for the Nginx server platform

sudo service nginx restart

Step 4 – Install an IDE or text editor plugin in your system environment.

Xdebug पीएचपी एक्सटेंशन आपके आईडीई या टेक्स्ट एडिटर के साथ कम्यूनिकेट करके डेवलपर को डीबगिंग को कण्ट्रोल करने की परमिशन प्रोवाइड करता है। यहाँ Xdebug एक्सटेंशन का सपोर्ट करने में पॉपुलर आईडीई और एडिटर इन्क्लुड हैं.

IDE or text editor plugin choice.

  • PHPStorm – यह एक पॉपुलर पीएचपी के लिए एक आईडीई सॉफ्टवेयर है, इसमें पहले से ही बिल्ट-इन Xdebug पीएचपी एक्सटेंशन सपोर्ट अवेलबल है।
  • VS Code – माइक्रोसॉफ्ट कंपनी द्वारा विज़ुअल कोड Xdebug सपोर्ट के लिए “PHP Debug” एक्सटेंशन को मैन्युअल इंस्टॉल करें।
  • NetBeans – यह एक पॉपुलर बिल्ट-इन Xdebug इंटीग्रेशन वाला एक और आईडीई सॉफ्टवेयर है, जो वेब डेवलपर को पीएचपी के साथ कई अन्य सॉफ्टवेयर डेवलपमेंट एनवायरनमेंट प्रोवाइड करता है।

For Microsoft Visual Studio VS Code.

अपने सिस्टम में vs कोड के लिए Felix Becker द्वारा निर्मित पीएचपी Debug एक्सटेंशन को मैन्युअल इंस्टॉल करें।

माइक्रोसॉफ्ट vs कोड को Xdebug पीएचपी एक्सटेंशन से कनेक्ट करने के लिए launch.json फ़ाइल को मैन्युअल कॉन्फ़िगर करें।

{

      “version”: “0.2.0”,

      “configurations”: [

        {

          “name”: “Listen for Xdebug”,

          “type”: “php”,

          “request”: “launch”,

          “port”: 9003,

          “pathMappings”: {

            “/var/www/html”: “${workspaceFolder}”  // Local path to server’s path

          }

        }

      ]

    }

अपने कंप्यूटर में इंस्टॉल और कॉन्फ़िगर हो जाने के बाद यूजर डायरेक्ट अपने आईडीई से Xdebug कनेक्शन लिसनिंग स्टार्ट कर सकते है.

Use Xdebug for debugging PHP programs.

Step 1 – First, set a breakpoint.

अपने कंप्यूटर में Xdebug पीएचपी एक्सटेंशन सेटअप और स्टार्ट करने के बाद, आप अपने मौजूदा प्रोग्राम सोर्स कोड में उन ब्रेकपॉइंट सेट कर सकते हैं, जहाँ डेवलपर अपने सोर्स कोड एक्सेक्यूशन को स्टॉप करना चाहते हैं। यहाँ प्रोग्राम में ब्रेकपॉइंट सेट करने का मेथड आईडीई या टेक्स्ट एडिटर के आधार पर अलग-अलग होता है.

  • PHPStorm/IntelliJ – प्रोग्राम में ब्रेकपॉइंट सेटअप करने के लिए गटर लाइन नंबरों के बगल में बाएँ हाशिया पर मेनुअल क्लिक करें।
  • VS Code – इसमें प्रोग्राम सोर्स कोड ब्रेकपॉइंट सेटअप करने के लिए लाइन नंबर के बगल में गटर पर मैन्युअल क्लिक करें।

Step 2 – Start a debugging session in the system.

अपने कंप्यूटर में ब्रेकपॉइंट सेट हो जाने के बाद डिबगिंग सेशन को स्टार्ट करें।

अपने सिस्टम आईडीई में, “Listen for Xdebug” या समान डिबगिंग सेशन स्टार्ट करें।

अपने वेब ब्राउज़र में स्क्रिप्ट को एक्सेस करें, या यदि यह CLI स्क्रिप्ट है, तो इसे CLI के द्वारा रन करे।

इस प्रोसेस में जब Xdebug ब्रेकपॉइंट पर मूव करता है, तो प्रोग्राम एक्सेक्यूशन स्टॉप हो जाएगा, और यूजर अपने एप्लिकेशन की करंट पोजीशन को एनालाइज और टेस्ट कर पाएँगे। इसमें डेवलपर को कई फीचर्स दिखाई देंगी।

  • Current Stack Trace – ​​यह मौजूदा प्रोग्राम में कॉल स्टैक है, जो प्रोग्राम सोर्स कोड में रिक्वेस्ट पोजीशन को डिस्प्ले करता है।
  • Variable Values – इसमें प्रोग्राम स्कोप में सभी प्रोग्राम वेरिएबल के करंट वैल्यू को देखें।
  • Step-by-Step Execution – इसमें डेवलपर अपने प्रोग्राम सोर्स कोड को लाइन बाय लाइन स्टेप ओवर, स्टेप इनटू, स्टेप आउट कर देख सकते हैं।
  • Inspect Objects – इसमें आप अपने प्रोग्राम सोर्स कोड में किसी भी ऑब्जेक्ट के पॉपर्टीज़ और मेथड्स को व्यू करे।

Step 3 – Inspecting Program Source Code or Data.

प्रोग्राम सोर्स कोड डिबगिंग करते समय डेवलपर मल्टीप्ल टाइप के डेटा को एनालाइज कर सकते हैं.

  • Variables – इसमें मौजूदा प्रोग्राम वेरिएबल के वैल्यू को प्रीव्यू करे।
  • Objects – इसमें आप मौजूदा प्रोग्राम में ऑब्जेक्ट्स के स्ट्रक्चर और उनके प्रॉपर्टीज को प्रीव्यू करे।
  • Arrays – प्रोग्राम वैल्यूज और डाटा टाइप के साथ ऐरे डेटा को एनालाइज करे।

In a user IDE, there will typically be panels for the following.

  • Locals – यह प्रोग्राम में करंट स्कोप के अंदर लोकल डिक्लेअर वैरिएबल होते है।
  • Watches – ये प्रोग्राम में वे वैरिएबल है, जिन्हें यूजर स्पेशल रूप से ट्रैक और कण्ट्रोल करना चाहते हैं।
  • Call Stack – यह फ़ंक्शन में कॉल स्टैक है, जो करंट लाइन तक ले जाने वाले एक्सेक्यूशन पाथ को डिस्प्ले करता है।

Step 4 – Step through the program source code.

प्रोग्राम में ब्रेकपॉइंट सेट और Xdebug रन होने के साथ.

  • Step Over – यहाँ मौजूदा प्रोग्राम सोर्स कोड की नेक्स्ट लाइन पर मूव करता है, प्रोग्राम फ़ंक्शन कॉल को छोड़कर।
  • Step Into – यहाँ करंट फ़ंक्शन या मेथड में गोता लगाकर देखें कि यह इंटरनली कैसे काम करता है।
  • Step Out – यह मौजूदा प्रोग्राम में करंट फ़ंक्शन से बाहर निकलें और कॉलर के पास वापस जाएँ।

इन स्टेप्स को फॉलो करके प्रोग्रामर अपने सोर्स कोड में लाइन बाय लाइन क्या हो रहा है, इसका डीप एनालिसिस कर सकते हैं, और प्रोग्राम में बग या परफॉरमेंस रिलेटेड पॉब्लेम्स को फाइंड करने में हेल्प कर सकते हैं।

Advanced Features of the PHP Xdebug Extension.

Profiler.

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

प्रोफाइलिंग को इनेबल करने के लिए, php.ini में इसे ऐड करे।

xdebug.mode = debug,profile

xdebug.profiler_output_dir = “/path/to/profiler/output”

इसके बाद, यह Xdebug के साथ प्रोफाइलिंग फाइल्स को जेनरेट करेगा। जिनका एनालिसिस Webgrind या KCachegrind जैसे टूल से परफॉरमेंस रिलेटेड हर्डल को रिलेट करने के लिए किया जा सकता है।

Trace files in Xdebug.

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

To enable tracing in your program, add the following to php.ini.

xdebug.mode = trace

xdebug.trace_output_dir = “/path/to/trace/output”

यह प्रोसेस ट्रेस फ़ाइलें क्रिएट करता है, जिनका यूजर मैन्युअल रूप से या टूल से एनालिसिस कर सकते हैं।

Debugging in a web environment vs. a CLI.

  • In a web environment – वेबपेज या वेबसाइट में Xdebug एक्सटेंसन को तब ट्रिगर किया जा सकता है, जब किसी वेबपेज को वेब ब्राउज़र के द्वारा एक्सेस किया जाता है। यह वेब एप्लिकेशन या एपीआई को डिबग करने के लिए अधिक यूज़फुल है।
  • In CLI scripts – इसमें Xdebug कमांड-लाइन स्क्रिप्ट को डिबगिंग सेशन के साथ CLI के द्वारा एक्सेक्यूट करके भी डिबग कर सकता है। इसके लिए कमांड लाइन से डिबगिंग स्टार्ट करने के लिए php -d ऑप्शन का यूज़ करना जरूरी है, या आप अपने आईडीई को CLI स्क्रिप्ट के लिए डिबगिंग ट्रिगर करने के लिए इसे कॉन्फ़िगर कर सकते हैं।

Key benefits of using Xdebug in web development.

  • इसमें आपको अपने प्रोग्राम सोर्स कोड एक्सेक्यूशन को ट्रैक करने के लिए स्टेप बाय स्टेप डीबगिंग प्रोसेस प्रोवाइड किया जाता है।
  • इसके यूज़ से इम्पोर्टेन्ट मोमेंट में प्रोग्राम एक्सेक्यूशन को स्टॉप करने के लिए ब्रेकपॉइंट फीचर्स प्रोवाइड किया जाता है।
  • इससे आपको प्रोग्राम वैल्यूज और डाटा टाइप को चेक करने के लिए वेरिएबल एनालिसिस फीचर्स प्रोवाइड किए जाते है।
  • xdebug एक्सटेंशन आपको प्रोग्राम परफॉरमेंस रिलेटेड हर्डल को पहचान करने के लिए प्रोफाइलर फीचर्स प्रोवाइड करता है।
  • xdebug आपको डिटेल्ड फ़ंक्शन कॉल एनालिसिस के लिए फ़ाइलों का पता लगाना में हेल्प करता है।

Conclusion of Debugging with Xdebug in PHP.

Xdebug पीएचपी एक्सटेंशन वेब डेवलपर्स के लिए एक यूनिक और इम्पोर्टेन्ट टूल या फीचर्स है। जो प्रोग्राम सोर्स कोड को स्टेप थ्रू करने, वेरिएबल्स को एनालाइज करने और परफॉरमेंस को प्रोफाइल करने की अपनी कैपेबिलिटी के साथ, यह डिबगिंग प्रोसेस में उल्लेखनीय इम्प्रोवेंमेंट करता है। चाहे वेब डेवलपर किसी सिंपल स्क्रिप्ट या काम्प्लेक्स एप्लिकेशन को डीबग कर रहे हों, Xdebug पीएचपी एक्सटेंशन यूजर को यह पहचान करने में हेल्प करता है कि सिस्टम बैकग्राउंड के पीछे क्या हो रहा है, और डेवलपर के लिए प्रोब्लेम्स को अधिक एफ्फिसेंटली आर्डर में करेक्ट करता है।

Leave a Reply