2010-08-06 10 views
12

के लिए विभिन्न स्ट्रैटम लागू करें Location class के लिए जावा डीबगर इंटरफ़ेस दस्तावेज़ में, स्थान के "स्ट्रैटम" पर चर्चा करने वाला एक अनुच्छेद है। मैं एक और स्ट्रैटम (कहने के लिए, स्कैला या जेआरबीई) को लागू करने के बारे में और जानकारी के बारे में अधिक जानकारी के लिए थोड़ा सा देख रहा हूं, लेकिन मुझे बहुत कुछ नहीं मिला है। क्या कोई इस विषय पर कुछ प्रकाश डाल सकता है?जावा डीबगर इंटरफ़ेस

+1

क्या आपने जेएसआर -45 (अन्य भाषाओं के लिए डिबगिंग समर्थन) के लिए कल्पना देखी है? http://jcp.org/en/jsr/detail?id=45 – kschneid

+0

मुझे नहीं था, नहीं। सूचक के लिए धन्यवाद, जो काफी मदद करता है। – jfager

+0

मुझे अस्पष्टता से याद है कि क्लास फ़ाइल में स्रोत फ़ाइल को इंगित करने वाला एक विशेषता है - क्या आपने इसे किसी अन्य भाषा में फ़ाइल में बस सेट करने का प्रयास किया है? – Ramon

उत्तर

3

स्ट्रेटा वास्तव में स्कैला या जेआरबी के लिए उपयुक्त नहीं होगा क्योंकि उन्हें सीधे बाइटकोड में संकलित किया गया है, इसलिए SourceFile और LineNumberTable विशेषताएँ पर्याप्त हैं। स्ट्रेट का उद्देश्य जेएसपी जैसी चीजों के लिए है, जिसका अनुवाद जावा स्रोत फ़ाइल में किया जाता है और उन्हें संकलित किया जाता है। स्ट्रेट को SourceDebugExtension विशेषता में संग्रहीत स्रोत स्रोत (SMAP) द्वारा परिभाषित किया जाता है। यह सब कैसे काम करता है इसका विवरण JSR-45 का हिस्सा है। एक और उदाहरण State Machine Compiler होगा हालांकि मुझे विश्वास नहीं है कि यह एक एसएमएपी उत्पन्न करता है। मुझे यह भी यकीन नहीं है कि क्या जावा के पास क्लास फ़ाइल में एसएमएपी को एम्बेड करने का विकल्प है। इसके लिए आपको इसके लिए एक अलग उपकरण की आवश्यकता होगी।

+0

वास्तव में, लाइन नंबर बाइटकोड पते के लिए अपर्याप्त रूप से सटीक हैं -> स्कैला कोड के लिए स्रोत स्थिति मैपिंग। स्कैला कोड की एक दी गई रेखा आसानी से कई सार्थक ब्रेकपॉइंट्स उत्पन्न कर सकती है लेकिन वर्तमान डिबगर्स ऐसी स्रोत के भीतर अपनी स्रोत स्थिति को हल नहीं कर सकते हैं। –

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