ब्राउज़र में इस्तेमाल होने वाली डिबगिंग तकनीकें
(alan.norbauer.com)ब्राउज़र डिबगर उपयोग टिप्स
-
उन्नत conditional breakpoints
- side effects वाले expressions का उपयोग करके conditional breakpoint की क्षमता बढ़ाना
- logpoints/tracepoints के जरिए execution रोके बिना console में logs रिकॉर्ड किए जा सकते हैं
console.countका उपयोग करके execution count गिना जा सकता है- प्रमुख browsers logpoints/tracepoints को support करते हैं (मई 2020 के अनुसार)
-
Watch window का उपयोग
- Watch window में
console.logइस्तेमाल किया जा सकता है - DOM change के समय expression चलाने के लिए DOM change breakpoint सेट करें और फिर watch expression जोड़ें
- Watch window में
-
Call stack tracking
- function call stack को track करके mismatched calls ढूंढना
- call stack देखने के लिए conditional breakpoint में
console.traceका उपयोग
-
Program behavior बदलना
- browser के भीतर ही तुरंत program behavior बदला जा सकता है
- function parameters को override करके behavior को adjust करना
-
सरल performance profiling
- console timing API का उपयोग करके code execution time मापना
console.time('label')औरconsole.timeEnd('label')का उपयोग करके समय मापना
-
Function arity का उपयोग
- breakpoint को केवल तब activate करना जब function किसी निश्चित संख्या के arguments के साथ call हो
- function call के दौरान arguments count mismatch ढूंढने के लिए उपयोग
-
समय का उपयोग
- page load के बाद केवल एक निश्चित समय बीतने पर breakpoint activate करना
- किसी निश्चित समय तक breakpoints को skip करना और उसके बाद ही activate करना
-
CSS का उपयोग
- computed CSS values के आधार पर breakpoint activate करना
-
केवल even calls पर break
- केवल हर दूसरी execution पर breakpoint activate करना
-
Sampling के जरिए break
- execution के केवल random samples पर breakpoint activate करना
-
किसी खास line पर break न करें
- "Never Pause Here" विकल्प का उपयोग करके किसी खास line पर execution रुकने से रोकना
-
Automatic instance ID assignment
- हर class instance को अपने-आप unique ID देना
-
Programmatically toggle करना
- global boolean का उपयोग करके conditional breakpoints को programmatically toggle करना
-
monitor()class calls- class method calls को track करने के लिए Chrome के
monitorcommand का उपयोग
- class method calls को track करने के लिए Chrome के
-
Function calls और debugging
- console में
debuggercall करने के बाद function को debug करने के लिए उसे call करना
- console में
-
URL बदलने पर execution रोकना
- single-page application में URL बदलने से पहले execution रोकना
-
Property read debugging
- object की property पढ़े जाने पर हर बार breakpoint activate करना
-
copy()का उपयोगcopy()console API का उपयोग करके browser से सीधे clipboard में जानकारी copy करना
-
HTML/CSS debugging
- HTML/CSS समस्याओं की जांच के लिए JS console का उपयोग
- JS disabled होने की स्थिति में DOM inspect करना
- conditionally दिखने वाले DOM elements inspect करना
- DOM snapshots रिकॉर्ड करना
- focused element को monitor करना
- bold text वाले elements ढूंढना
- अभी selected element को refer करना
- events को monitor करना
GN⁺ की राय
इस लेख की सबसे महत्वपूर्ण बात यह है कि यह ब्राउज़र डिबगर का उपयोग करके developers को code को अधिक कुशलता से debug करने और समस्याएँ हल करने के लिए विभिन्न तकनीकें और टिप्स देता है। यह जानकारी software developers के लिए बहुत उपयोगी है, और खासकर जटिल bugs को track करने या performance समस्याओं को हल करने में समय बचाती है, इसलिए यह दिलचस्प है।
1 टिप्पणियां
Hacker News की राय
ब्राउज़र में बिल्ट-इन डिबगिंग टूल्स का विकास
debugger;स्टेटमेंट का उपयोगdebugger;स्टेटमेंट का उपयोग करना Chrome debugger के recursive stack को मात देने का लगभग एकमात्र तरीका है।NodeJS बैकएंड डिबगिंग की मुश्किलें
pdb.set_trace()/IEx.pry()का अक्सर उपयोग किया जाता है।console.logडिबगिंग पर लौटना पड़ा, जो काफ़ी आदिम लगा।Werkzeug की सिफारिश
IIFE के लोकल वेरिएबल्स तक पहुँचने का तरीका
UI स्ट्रिंग्स के ज़रिये डिबगिंग का तरीका
debugger;स्टेटमेंट रखें।conditional breakpoint का उपयोग करके डिबगिंग
{configOption: true}को{get configOption() { debugger; return true; }}में बदलने के तरीके पर सवाल।Chrome-विशेष फीचर 'Monitor Events for Element'
queryObjectsAPI की अनुपस्थितिqueryObjectsAPI का उल्लेख जो किसी विशेष constructor से बने सभी objects की सूची लौटाता है।queryObjects(Function)का उपयोग करके heap में मौजूद सभी functions की सूची पाई जा सकती है।watch variables के उपयोग में कठिनाई