Erlang 21 - 1. Dialyzer

1 डायलाइज़र




erlang

1 डायलाइज़र

१.१ परिचय

क्षेत्र

डायलेजर एक स्थिर विश्लेषण उपकरण है जो सॉफ़्टवेयर की विसंगतियों की पहचान करता है, जैसे कि निश्चित प्रकार की त्रुटियां, कोड जो प्रोग्रामिंग एरर और अनावश्यक परीक्षणों के कारण एकल Erlang मॉड्यूल या संपूर्ण (सेट) अनुप्रयोगों में मृत या अनुपलब्ध हो गए हैं।

Dialyzer को कमांड लाइन से, Erlang से, और GUI से कॉल किया जा सकता है।

आवश्यक शर्तें

यह माना जाता है कि पाठक एरलांग प्रोग्रामिंग भाषा से परिचित है।

1.2 लगातार लुकअप तालिका

Dialyzer एक Persistent लुकअप तालिका (PLT) में विश्लेषण का परिणाम संग्रहीत करता है। पीएलटी को बाद के विश्लेषण के लिए शुरुआती बिंदु के रूप में इस्तेमाल किया जा सकता है। आपके द्वारा उपयोग किए जा रहे Erlang / OTP अनुप्रयोगों के साथ PLT बनाने की अनुशंसा की जाती है, लेकिन अपने स्वयं के अनुप्रयोगों को शामिल करने के लिए जिन्हें आप अक्सर उपयोग कर रहे हैं।

PLT को --build_plt विकल्प --build_plt का उपयोग करके बनाया गया है। निम्न आदेश Erlang / OTP के लिए अनुशंसित न्यूनतम PLT बनाता है:

dialyzer --build_plt --apps erts kernel stdlib mnesia

डायलाइज़र दिखता है कि क्या DIALYZER_PLT नामक एक पर्यावरण चर है और इस स्थान पर PLT रखता है। यदि ऐसा कोई वैरिएबल सेट नहीं है, तो $HOME/.dialyzer_plt PLT को $HOME/.dialyzer_plt । प्लेसमेंट को विकल्प --plt या --output_plt का उपयोग करके भी निर्दिष्ट किया जा सकता है।

विकल्प --add_to_plt का उपयोग करके मौजूदा PLT में जानकारी जोड़ी जा सकती है। अगर आप पीएलटी में एर्लैंग कंपाइलर को भी शामिल करना चाहते हैं और इसे नए पीएलटी में रखना चाहते हैं, तो निम्न कमांड का उपयोग करें:

dialyzer --add_to_plt --apps compiler --output_plt my.plt

फिर आप अपने पसंदीदा एप्लिकेशन my_app को नए PLT में जोड़ सकते हैं:

dialyzer --add_to_plt --plt my.plt -r my_app/ebin

लेकिन आपको लगता है कि इस एक में एर्लैंग कंपाइलर का होना अनावश्यक है:

dialyzer --remove_from_plt --plt my.plt --apps compiler

बाद में, जब आपने अपने आवेदन my_app में एक बग को ठीक कर लिया है, तो आप PLT को अपडेट करना चाहते हैं ताकि यह अगली बार जब आप Dialyzer चलाएं तो यह ताज़ा हो जाए। इस स्थिति में, निम्न आदेश चलाएँ:

dialyzer --check_plt --plt my.plt

Dialyzer फिर बदले हुए फ़ाइलों और इन फ़ाइलों पर निर्भर फ़ाइलों को reanalyzes। ध्यान दें कि जब आप इस PLT के साथ डायलाइज़र चलाते हैं तो यह सुसंगतता जाँच स्वचालित रूप से की जाती है। विकल्प --check_plt बिना किसी अन्य विश्लेषण के ऐसा करने के लिए ही है।

पीएलटी के बारे में जानकारी प्राप्त करने के लिए, निम्नलिखित विकल्प का उपयोग करें:

dialyzer --plt_info

निर्दिष्ट करने के लिए कि --plt , विकल्प का उपयोग करें - --plt

आउटपुट को फ़ाइल में प्रिंट करने के लिए, विकल्प --output_file उपयोग करें।

ध्यान दें कि PLT में हेरफेर करते समय, कोई चेतावनी उत्सर्जित नहीं की जाती है। --get_warnings विश्लेषण (पुनः) के दौरान चेतावनी को चालू करने के लिए, विकल्प --get_warnings उपयोग करें।

1.3 कमांड लाइन से डायलाइज़र का उपयोग करना

Dialyzer में स्वचालित उपयोग के लिए कमांड-लाइन संस्करण है। dialyzer(3) देखें।

1.4 एर्लांग से डायलाइज़र का उपयोग करना

डायलाइजर का उपयोग सीधे एरलंग से भी किया जा सकता है। dialyzer(3) देखें।

1.5 GUI से डायलाइज़र का उपयोग करना

अनुप्रयोग या मॉड्यूल चुनना

फ़ाइल विंडो वर्तमान निर्देशिका की एक सूची प्रदर्शित करती है। उन निर्देशिका / मॉड्यूल पर अपना रास्ता क्लिक करें जिन्हें आप प्रविष्टि में सही पथ जोड़ना या टाइप करना चाहते हैं।

उन निर्देशिकाओं / मॉड्यूल को चिह्नित करें जिन्हें आप विसंगतियों के लिए विश्लेषण करना चाहते हैं और Add पर क्लिक करें। आप या तो .beam और .erl फ़ाइलों को सीधे जोड़ सकते हैं, या उन निर्देशिकाओं को जोड़ सकते हैं जिनमें इस प्रकार की फाइलें हैं। ध्यान दें कि आपको केवल उन प्रकार की फ़ाइलों को जोड़ने की अनुमति है जिनका विश्लेषण ऑपरेशन के वर्तमान मोड में किया जा सकता है (नीचे देखें), और आप .beam और .erl फ़ाइलों को नहीं मिला सकते हैं।

विश्लेषण मोड

डायलाइज़र के दो विश्लेषण मोड हैं: "बाइट कोड" और "सोर्स कोड"। वे विश्लेषण विकल्प के तहत मुख्य विंडो के शीर्ष-मध्य भाग में बटन द्वारा नियंत्रित होते हैं।

डायलर द्वारा रिपोर्ट की गई विसंगतियों को नियंत्रित करना

चेतावनियों के पुल-डाउन मेनू के अंतर्गत, ऐसे बटन होते हैं जो नियंत्रण को चेतावनी विंडो में उपयोगकर्ता को सूचित करते हैं। इन बटनों पर क्लिक करके, आप चेतावनी के एक पूरे वर्ग को सक्षम / अक्षम कर सकते हैं। चेतावनियों के बारे में जानकारी हेल्प मेनू (सबसे दाहिने कोने में) के अंतर्गत "चेतावनियाँ" मद पर मिलती है।

यदि मॉड्यूल को इनलाइनिंग के साथ संकलित किया जाता है, तो नकली चेतावनी उत्सर्जित की जा सकती है। विकल्प मेनू में आप बाइट कोड का विश्लेषण करते समय इनलाइन-संकलित मॉड्यूल को अनदेखा करना चुन सकते हैं। स्रोत कोड से शुरू करते समय, यह एक समस्या नहीं है क्योंकि डायलिंजर द्वारा इनलाइनिंग को स्पष्ट रूप से बंद कर दिया जाता है। विकल्प इनलाइन-संकलित मॉड्यूल से सभी चेतावनियों को दबाने के लिए डायलाइज़र का कारण बनता है, क्योंकि डायलाइज़र के पास कोड को खोजने के लिए कोई रास्ता नहीं है।

विश्लेषण चल रहा है

एक बार जब आप उन मॉड्यूल या निर्देशिकाओं को चुन लेते हैं जिनका आप विश्लेषण करना चाहते हैं, विश्लेषण शुरू करने के लिए रन बटन पर क्लिक करें। यदि आप किसी कारण से चलते समय विश्लेषण को रोकना चाहते हैं, तो स्टॉप बटन पर क्लिक करें।

विश्लेषण से मिली जानकारी लॉग विंडो और चेतावनियों की विंडो में प्रदर्शित होती है।

निर्देशिकाएँ और मैक्रो परिभाषाएँ शामिल करें

स्रोत से विश्लेषण करते समय, आपको erlc डायरेक्टरी और मैक्रो परिभाषाओं की सूची के साथ आपूर्ति करना पड़ सकता है (जैसा कि आप erlc ध्वज -I और -D साथ कर सकते हैं)। यह या तो कमांड लाइन से इन झंडों के साथ डायलर शुरू करके किया जा सकता है:

dialyzer -I my_includes -DDEBUG -Dvsn=42 -I one_more_dir

या इन सबमेनू का उपयोग करके स्पष्ट रूप से जोड़कर मैक्रो परिभाषाएँ प्रबंधित करें या विकल्प मेनू में निर्देशिकाएँ शामिल करें प्रबंधित करें

लॉग और चेतावनी विंडोज पर जानकारी की बचत

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

प्रत्येक विंडो की सामग्री को साफ़ करने के लिए बटन भी हैं।

विश्लेषण किए गए कार्यों के संक्रमित प्रकारों का निरीक्षण करना

Dialyzer एक निरंतर लुकअप तालिका (PLT) में विश्लेषण किए गए कार्यों की जानकारी संग्रहीत करता है, अनुभाग The Persistent Lookup Table

विश्लेषण के बाद, आप इस जानकारी का निरीक्षण कर सकते हैं। पीएलटी मेनू में आप या तो पीएलटी को चुन सकते हैं या पूरे पीएलटी की सामग्री का निरीक्षण कर सकते हैं। जानकारी EDoc प्रारूप में प्रस्तुत की गई है।

1.6 प्रतिक्रिया और बग रिपोर्ट

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