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  

< P> दुर्भाग्यवश, यह ब्राउज़र-विशिष्ट सुविधा है, जो वर्तमान में फ़ायरफ़ॉक्स या क्रोम में समर्थित नहीं है (और मैं इसे अन्य ब्राउज़रों में समर्थन से अपरिचित हूं)।

क्रोम में, आप वर्तमान में लागू किए जा रहे फीचर अनुरोध का अनुसरण कर सकते हैं। पर

आपके उपयोग के मामले पर निर्भर करता है और यदि आपके पास स्रोत के रूप में खुद को कैप्चर करने के कुछ साधन हैं, मोज़िला में एक उत्कृष्ट स्रोत उपकरण है जो आपको अपने स्रोतों / स्टैकेट्स को मैप करने की सुविधा देता है।


Comments

Popular posts from this blog

import - Python ImportError: No module named wmi -

Editing Python Class in Shell and SQLAlchemy -

c# - MySQL Parameterized Select Query joining tables issue -