मुख्य सामग्री पर जाएं
होम पर वापस
Tutorial

Android पर JavaScript डीबग करें: ब्रेकपॉइंट, स्टेपिंग और कॉल स्टैक

अपने Android फ़ोन पर Node.js कोड डीबग करें: breakpoints, conditions और logpoints, स्टेपिंग, variables, call stack और Hot Reload — और वह भी जो डीबगर अभी नहीं करता।

अपडेट किया गया:
4 min
लेखक Pelayo Naredo
Android पर JavaScript डीबग करें: ब्रेकपॉइंट, स्टेपिंग और कॉल स्टैक

Android पर JavaScript डीबग करें: ब्रेकपॉइंट, स्टेपिंग और कॉल स्टैक

PocketCode में एक डीबगर है जो सीधे आपके Android डिवाइस पर, आपके चलाए जा रहे कोड के बगल में काम करता है। यह पोस्ट ठीक-ठीक बताती है कि यह आज क्या करता है — और क्या नहीं।

Node.js के लिए असली डीबगिंग

कोई JavaScript फ़ाइल (.js, .mjs, .cjs या .jsx) खोलें और Debug चुनें (फ़िज़िकल कीबोर्ड से Shift + F5)। PocketCode Node.js को उसके inspector के साथ चलाता है और Chrome DevTools Protocol से उससे जुड़ता है, इसलिए नीचे की हर चीज़ आपके फ़ोन पर चल रहे असली Node process पर काम करती है:

  • Pause — प्रोग्राम अपनी पहली लाइन पर, आपके breakpoints पर, और तब रुकता है जब कोई exception फेंका जाए जिसे कोई न पकड़े
  • Continue, Step Over / Into / Out — कोड में एक लाइन, एक call या एक return करके आगे बढ़ें
  • Pause, Restart, Stop — session को सीधे नियंत्रित करें; Restart फ़ाइल को डीबगर के साथ फिर से चलाता है
  • Variables — सबसे ऊपरी frame के local मानों की सपाट सूची (objects खुलते नहीं, और दूसरे frames के variables नहीं दिखते)
  • Call stack — मौजूदा बिंदु तक पहुँचाने वाले frames की कड़ी; दूसरा frame चुनने पर बस उसकी लाइन पर पहुँचते हैं
  • Console — session की घटनाएँ और आपके प्रोग्राम का अपना output

Breakpoints, conditions और logpoints

breakpoint लगाने के लिए किसी line number पर टैप करें: gutter में एक लाल बिंदु दिखता है, और दोबारा टैप करने पर हट जाता है। जब प्रोग्राम वहाँ रुकता है, वह लाइन हाइलाइट हो जाती है। डीबग पैनल का Breakpoints टैब सबकी सूची दिखाता है; आप हर एक को बंद कर सकते हैं (खोखला बिंदु) या पेंसिल से बदल सकते हैं:

  • Condition — i > 10 जैसी कोई JavaScript expression; प्रोग्राम तभी रुकता है जब वह सच हो
  • Log message — breakpoint को logpoint बना देता है: रुकने के बजाय console में एक लाइन लिखता है। मान छापने के लिए expressions को braces में रखें: user = {user.name}, total = {total}। condition भी हो, तो सिर्फ़ तब log करता है जब वह पूरी हो

प्रोग्राम चलते समय जो breakpoints आप जोड़ते, हटाते या बदलते हैं, वे बिना restart किए तुरंत लागू हो जाते हैं।

Hot Reload

Hot Reload चालू करें (डीबग toolbar का बटन, जो सिर्फ़ चलते session में दिखता है; डिफ़ॉल्ट रूप से बंद) और जब भी आप प्रोजेक्ट की कोई फ़ाइल सेव करेंगे, session नए कोड के साथ restart हो जाएगा — रोककर दोबारा डीबग करने की ज़रूरत नहीं।

अन्य भाषाएँ

डीबगर सिर्फ़ Node.js पर JavaScript के लिए है। किसी भी दूसरी फ़ाइल के लिए, TypeScript समेत, Debug बस उसे चला देता है और बताता है कि डीबगर सपोर्ट नहीं है; breakpoints कुछ नहीं करते। Python, Java और बाक़ी भाषाओं के लिए कोई स्टेप डीबगर नहीं है — उनके लिए मान कंसोल में प्रिंट करें और आउटपुट पढ़ें।

दायरे के बारे में एक ईमानदार बात

ये अभी नहीं हैं, इसलिए हम इन्हें ऐसे पेश नहीं करेंगे जैसे ये हों:

  • नेटवर्क पर remote host से attach करना और performance profiling
  • Expression evaluate करना: console में "Evaluate expression" फ़ील्ड है, पर वह हमेशा undefined देता है
  • Exception breakpoints: डीबगर uncaught exceptions पर अपने आप रुकता है, पर आप अपने नहीं जोड़ सकते
  • breakpoints अपने line number पर ही रहते हैं: अगर आप ऊपर लाइनें जोड़ें, तो वे कोड के साथ नहीं खिसकते, और ऐप बंद करने पर वे सहेजे नहीं जाते
  • Stop डीबगर को अलग करता है; process ख़ुद Run पैनल का है

Breakpoints, logpoints, स्टेपिंग और variables आज आपके फ़ोन पर असली Node के साथ काम करते हैं।

PocketCode Google Play पर आ रहा है। प्री-रजिस्ट्रेशन में शामिल हों और इसे अपने डिवाइस पर आज़माने वाले पहले लोगों में रहें।

इस लेख के पीछे का टूल

टर्मिनल और SSH

PocketCode आज़माने के लिए तैयार हैं?

ऐप डाउनलोड करें और अपने फ़ोन से कोडिंग शुरू करें।