2009-03-16 13 views
38

नहीं मारा गया है, मैं बाहरी जेएस फ़ाइल में ब्रेकपॉइंट्स सेट कर रहा हूं और मैं फायरबग को लगातार तरीके से ब्रेकपॉइंट पर नहीं पहुंच पाया। यह कभी-कभी काम करता है लेकिन ज्यादातर बार ऐसा नहीं होता है। काम करने के लिए एकमात्र तरीका यह है कि "सभी त्रुटियों को तोड़ें" पर स्विच करकेफायरबग - ब्रेकपॉइंट

मैंने डीबगर का उपयोग किया है; बिना किसी किस्मत के बयान भी।

+0

क्या यह फ़ायरफ़ॉक्स के अंतर्निहित डीबगर में काम करता है? – NoBugs

उत्तर

6

क्या फ़ायरबग स्क्रिप्ट टैब में हरे रंग की रेखा संख्याओं के साथ कोड दिखाता है? यह कोड की डीबग्जेबल लाइनों को इंगित करता है।

मैंने इस लक्षण का अनुभव किया है जहां कभी-कभी लाइन संख्याएं हरे रंग की नहीं थीं। मैं पेज को ताज़ा करता हूं और जादुई रूप से, वे फिर हरे रंग के होते हैं।

+0

नहीं, पेज को रीफ्रेश करने से मदद नहीं मिलती है। उनके पास हरी रेखा संख्या भी नहीं है। – DotnetDude

15

यदि रेखा संख्याएं हरे रंग की नहीं हैं, तो ऐसा लगता है जैसे फ़ायरबग कोड के उस भाग को डीबग नहीं कर सकता क्योंकि यह दायरे से बाहर है। तो, यदि आप $ (फ़ंक्शन() {...}) जैसे कुछ उपयोग कर रहे हैं; फायरबग कार्य और चर का उपयोग करने में सक्षम नहीं होगा।

क्या यह समझ में आता है?

साथ ही, क्या यह संभव है कि कुछ अन्य फ़ंक्शन या कुछ उस व्यक्ति को ओवरराइड कर रहा है जिसे आप डीबग करने का प्रयास कर रहे हैं। यदि आप एक ही जेएस फ़ाइल दो बार शामिल कर रहे हैं तो यह भी संभव है।

उम्मीद है कि मदद करता है।

+0

फायरबग को अक्सर यह नहीं लगता कि कोड मान्य है। ऐसा लगता है कि लूप के दौरान अक्सर ऐसा होता है: फ़ायरबग लाइन संख्याओं को हरा करने से इंकार कर देता है, भले ही इसे करना चाहिए। – Michael

6

मुझे यह समस्या भी अक्सर होती है। मुझे पता चला है कि टैब को फिर से खोलने में मदद मिलती है (ब्रेकपॉइंट्स खो नहीं जाते हैं)। लेकिन "सभी त्रुटियों को तोड़ना" तोड़ने का सबसे विश्वसनीय तरीका प्रतीत होता है।

मुझे शायद ही कभी आईई के बारे में कुछ अच्छा करना है, लेकिन इस मामले में यह सही हो जाता है। वीएस में जावास्क्रिप्ट डीबगिंग बस काम करता है। यह किसी समस्या के बिना ब्रेकपॉइंट्स ("डीबगर") को हिट करता है और पृष्ठ पर अन्य सभी जावास्क्रिप्ट कोड को निष्पादित करने से रोकता है। तो मैं इसे अक्सर बैक-अप के रूप में उपयोग करता हूं।

6

फ़ायरबग 1.4 का उपयोग कर फ्रेम के भीतर पृष्ठों को डीबग करने का प्रयास करते समय मुझे इस समस्या का अनुभव हुआ है। "यह फ्रेम" संदर्भ मेनू से "केवल इस फ्रेम को दिखाएं" या "नए टैब में फ्रेम खोलें" का चयन करना, फिर पेज को रीफ्रेश करना स्क्रिप्ट को डिबग करने योग्य लगता है।

+0

बहुत धन्यवाद। यह मेरे लिए हल हो गया। –

+0

इसने मेरी समस्या भी हल की! – emurano

3

क्या फ़ायरबग पर 'कंसोल' टैब आपकी किसी भी अन्य जावास्क्रिप्ट के लिए त्रुटियों को दिखाता है? मैंने पाया कि यदि डीबग ब्रेकपॉइंट से पहले कोड के लिए जावास्क्रिप्ट त्रुटियां मौजूद हैं तो यह पहले से टूटे हुए एक (ओं) तय होने तक कोड की उस पंक्ति तक कभी नहीं पहुंच पाएगी।

0

बस उल्लिखित लोगों को एक और संभावना जोड़ने के लिए।

यह तब हुआ जब मैं उत्पादन में कुछ ठीक करने के दबाव में था।

function: myFunc(){} 

// function body 

} 
बस ऐसे ही

:

मैं inadvertantely में सिंटेक्स त्रुटि पेश किया था। कंसोल लॉग की शुरुआत में एक त्रुटि हुई, लेकिन मैंने इसे नोटिस नहीं किया। मैं उस फाइल को डीबग करने की कोशिश करता रहा, लेकिन फायरबग इसमें कदम नहीं उठाएगा।

तो, यदि यह आपके साथ हो रहा है: कंसोल की जांच करें, हो सकता है कि फ़ाइल की लोडिंग को छोटा-सर्किट त्रुटि हो।

2

मैंने इस पर 1 घंटा बिताया।

<!-- jQuery Validate --> 
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.10.0/jquery.validate.min.js" type="text/javascript"> 

आप समस्या दिखाई देती है सकते हैं:

मैं एक <script> टैग इस तरह था?

वैसे यह मुझे उस स्थान पर रखने के लिए हर समय ले गया। <script> टैग को बंद करने के लिए / अनुपलब्ध है।

<!-- jQuery Validate --> 
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.10.0/jquery.validate.min.js" type="text/javascript" /> 

यह कुछ कॉपी/पेस्ट के कारण और उसके बाद कोड को बदलने की कोशिश कर निश्चित है ... मैं तो बस इस मामले में मूर्ख खेला! :)

/ जोड़ने के बाद मैं फायरबग में काम कर रहे ब्रेकपॉइंट प्राप्त करने में सक्षम था। यह समझ में आता है।

अंत में मैं उन धन्य हरे रंग की संख्या देख सकता हूं।

2

मुझे इस समस्या को अंतःस्थापित भी किया जा रहा था। मैंने ब्रेकपॉइंट्स से "सभी ब्रेकपॉइंट्स को अक्षम करें" और "सभी ब्रेकपॉइंट्स सक्षम करें" का चयन किया और यह काम करना शुरू कर दिया।

+0

मेरा दिन बचाया। धन्यवाद। –

0

मेरे लिए यह प्रत्येक document.write() कॉल को हटाने के बाद काम करता है।

0

एफएफ 36 और एफबी 2.0.8 के साथ एक ही समस्या: कंसोल में कोई त्रुटि नहीं, कोड ठीक काम करता है, लेकिन एफबी जेएस के बजाय एचटीएमएल प्रदर्शित करता है, debugger ब्रेकपॉइंट पर बंद हो जाता है लेकिन इसे कुछ यादृच्छिक HTML लाइन पर दिखाता है, रुकता नहीं है नियमित ब्रेकपॉइंट्स पर।

I resolved it by extracting JS from the page and moving it into its own JS file.

लेकिन वहाँ एक पकड़ने था: जब स्क्रिप्ट का अपना जे एस फ़ाइल, मैं "वैश्विक" चर एफएफ में काम करने के लिए नहीं मिल सका में रहते थे (आईई में ठीक काम किया, जहां कोड था की परवाह किए बिना), यहां तक ​​कि window.varName वाक्यविन्यास का उपयोग कर। तो एक अलग फ़ाइल से एफबी में डीबगिंग समाप्त हो गया, लेकिन उत्पादन के लिए इनलाइन पर वापस आ गया।

0

मुझे यह समस्या भी थी। शायद केआईटी-इनवी के जवाब से संबंधित ... लेकिन मैं प्रत्येक पेज लोड के साथ PHP का उपयोग करके यादृच्छिक रेखाएं उत्पन्न कर रहा था।

Firebug पूरे HTML पृष्ठ की लाइन नंबर याद रखने, जरूरी नहीं कि जावास्क्रिप्ट की लाइन, जिसका अर्थ है कि लाइन नंबर पर आप ब्रेकप्वाइंट पर इस पृष्ठ लोड पर नहीं डाल पर ब्रेकप्वाइंट डाल करने के लिए लगता है अगली बार जब आप इसे लोड करते हैं तो कोड की एक ही पंक्ति होनी चाहिए, इसलिए ब्रेकपॉइंट "कूद" दिखाई देगा।

मुझे यकीन नहीं है कि आप इसे गतिशील सामग्री के साथ कैसे हल करेंगे, जो हर बार बदलता है, लेकिन मैंने इसे यादृच्छिक रेखाओं को हटाकर तय किया है ताकि ब्रेकपॉइंट के साथ लाइन प्रत्येक पृष्ठ लोड पर समान हो।

संबंधित मुद्दे