javascript - Stack traces that utilise source mapping -
अवलोकन:
ब्राउज़र कंसोल में स्टैक ट्रेस आउटपुट समान ट्रेस नहीं है जब return.stack कहा जाता है तो वापस आ जाता है। कंसोल स्टैक ट्रेस को खाता स्रोत मेपों में ले जाना लगता है, जबकि Error.stack स्टैक ट्रेस नहीं करता।
कंसोल आउटपुट
यहाँ डिफ़ॉल्ट स्टैक ट्रेस है जो कंसोल के आउटपुट है।
अनक्यूट टाइप एरर: गुण सेट नहीं कर सकता 'y 'अपरिभाषित source.js: 4 (अनाम फ़ंक्शन) source.js: 4 (अनाम फ़ंक्शन) source.js: 4 (अनाम फ़ंक्शन) (इंडेक्स): 17
त्रुटि । स्टैक आउटपुट
यहां त्रुटि। स्टैक से स्टैक ट्रेस है:
TypeError: प्रॉपर्टी 'y' को & lt; अनाम & gt; पर निर्दिष्ट नहीं किया जा सकता है: 1: 37 at & Lt; अनाम & gt; 1: 60 पर http: // स्थानीयहोस्ट: 63342 / स्रोत-मानचित्र-उदाहरण / उदाहरण 2 /: 17: 23 (सूचकांक): 12
सोर्स कोड :
यहां इस कोड के लिए मैंने प्रयोग किया है:
& lt; script & gt; Window.errorerror = function () {console.log (तर्क [4]। Stack); } Var स्क्रिप्ट = document.createElement ('script'); Script.textContent = '(function () {var person = {}; person.x.y = "एक त्रुटि फेंकता है ..."}) (); // # sourceMappingURL = source.min.map'; document.body.appendChild (स्क्रिप्ट); & Lt; / स्क्रिप्ट & gt;
प्रश्न: क्या प्रोग्राम को एक स्टैक ट्रेस प्राप्त करना संभव है, जिसमें फाइल & amp; संबंधित स्रोत मैप के आधार पर लाइनें?
संपादित करें: console.trace और नई त्रुटि ()। स्टैक
नोट: I इन उदाहरणों के लिए विंडो का इस्तेमाल नहीं किया। इसके बजाय मैंने एम्बेडेड जेएस को एक कोशिश में लपेट लिया ... पकड़ में पकड़ने और इन तरीकों का उपयोग करने का प्रयास किया। इसका कारण यह था क्योंकि स्टैक ट्रेस ने एम्बेडेड जेएस में किसी भी विधि के लिए खिड़की के अंदर उपयोग किए जाने वाले किसी भी तरीके का पता नहीं लगाया।
console.trace () सबसे अच्छा काम करता है, लेकिन निश्चित रूप से आउटपुट कब्जा नहीं किया जा सकता फिर भी, यह अपेक्षा के अनुरूप काम नहीं करता है आउटपुट में एक स्टैक ट्रेस होता है जो कंसोल.टास () लाइन को इंगित करता है, और कुछ और।
console.trace () source.js: 9 (अनाम फ़ंक्शन) source.js: 9 (अनाम फ़ंक्शन) source.js: 9 (अनाम फ़ंक्शन)
नया त्रुटि ()। स्टैक अपेक्षा के अनुरूप काम नहीं करता है या तो इसमें एक स्टैक ट्रेस शामिल है, लेकिन यह स्रोतमैप का उपयोग नहीं कर रहा है।
& lt; अनाम & gt; त्रुटि: 1: 85 at & lt; अनाम & gt; 1: 105 at http: // localhost: 63342 / स्रोत-मैप-उदाहरण / उदाहरण 2 /: 18: 23 स्रोत। जेएस: 18
क्रोम में, आप वर्तमान में लागू किए जा रहे फीचर अनुरोध का अनुसरण कर सकते हैं। पर
आपके उपयोग के मामले पर निर्भर करता है और यदि आपके पास स्रोत के रूप में खुद को कैप्चर करने के कुछ साधन हैं, मोज़िला में एक उत्कृष्ट स्रोत उपकरण है जो आपको अपने स्रोतों / स्टैकेट्स को मैप करने की सुविधा देता है।
Comments
Post a Comment