यह कमांड स्कैन-बिल्ड-3.8 है जिसे हमारे कई मुफ्त ऑनलाइन वर्कस्टेशन जैसे कि उबंटू ऑनलाइन, फेडोरा ऑनलाइन, विंडोज ऑनलाइन एमुलेटर या मैक ओएस ऑनलाइन एमुलेटर का उपयोग करके ऑनवर्क्स फ्री होस्टिंग प्रदाता में चलाया जा सकता है।
कार्यक्रम:
नाम
स्कैन-निर्माण - क्लैंग स्थैतिक विश्लेषक
SYNOPSIS
स्कैन-निर्माण [-ओएचकेवीवी] [-विश्लेषण-शीर्षलेख] [-सक्षम-चेकर [चेकर_नाम]]
[-अक्षम-चेकर [चेकर_नाम]] [--मदद] [--सहायता-चेकर्स]
[--एचटीएमएल-शीर्षक [=शीर्षक]] [--जाता रहना] [-प्लिस्ट] [-plist-html] [--स्थिति-बग]
[--उपयोग-सी++ [=संकलक_पथ]] [--उपयोग-सीसी [=संकलक_पथ]] [--दृश्य]
[-प्रतिबंध [आदर्श]] [-मैक्सलूप N] [-कोई-विफलता-रिपोर्ट नहीं] [-आंकड़े]
[-दुकान [आदर्श]] बिल्ड_कमांड [बिल्ड_ऑप्शंस]
वर्णन
स्कैन-निर्माण एक पर्ल स्क्रिप्ट है जो क्लैंग स्थैतिक विश्लेषक को आमंत्रित करती है। द्वारा उपयोग किये गये विकल्प
स्कैन-निर्माण या विश्लेषक द्वारा पहले प्रकट होते हैं, उसके बाद बिल्ड_कमांड और कोई भी
बिल्ड_विकल्प सामान्यतः लक्ष्य प्रणाली बनाने के लिए उपयोग किया जाता है।
स्थैतिक विश्लेषक जाँच एल्गोरिदम की एक लंबी सूची का उपयोग करता है, देखें चेकर्स. आउटपुट हो सकता है
मानक .plist और/या HTML प्रारूप में लिखा गया है।
निम्नलिखित विकल्प समर्थित हैं:
-विश्लेषण-शीर्षलेख
#शामिल फ़ाइलों में फ़ंक्शंस का भी विश्लेषण करें।
-सक्षम-चेकर चेकर_नाम, -अक्षम-चेकर चेकर_नाम
अक्षम सक्षम चेकर_नाम. देखना चेकर्स.
-h, --मदद
यह संदेश प्रदर्शित करें.
--सहायता-चेकर्स
डिफ़ॉल्ट चेकर्स की सूची देखें, देखें चेकर्स.
--एचटीएमएल-शीर्षक[=शीर्षक]
जेनरेट किए गए HTML पृष्ठों पर प्रयुक्त शीर्षक निर्दिष्ट करें। एक डिफ़ॉल्ट शीर्षक उत्पन्न होता है यदि
शीर्षक निर्दिष्ट नहीं है।
-k, --जाता रहना
इसमें "जारी रखें" विकल्प जोड़ें बिल्ड_कमांड. वर्तमान में मेक और का समर्थन करता है
xcodebuild. यह एक सुविधाजनक विकल्प है; कोई इस व्यवहार को सीधे निर्दिष्ट कर सकता है
बिल्ड विकल्पों का उपयोग करना।
-o HTML रिपोर्ट फ़ाइलों के लिए लक्ष्य निर्देशिका। आवश्यकतानुसार उपनिर्देशिकाएँ बनाई जाएंगी
विश्लेषक के अलग-अलग आह्वान का प्रतिनिधित्व करते हैं। यदि यह विकल्प निर्दिष्ट नहीं है, तो a
निर्देशिका बनाई गई है / Tmp (Mac OS X पर TMPDIR) रिपोर्ट संग्रहीत करने के लिए।
-प्लिस्ट परिणामों को .plist फ़ाइलों के सेट के रूप में आउटपुट करें। (डिफ़ॉल्ट रूप से आउटपुट स्कैन-निर्माण is
HTML फ़ाइलों का एक सेट।)
-plist-html
परिणामों को HTML और .plist फ़ाइलों के सेट के रूप में आउटपुट करें
--स्थिति-बग
यदि इसमें संभावित बग पाए जाते हैं तो निकास स्थिति को 1 पर और अन्यथा 0 पर सेट करें। डिफ़ॉल्ट रूप से निकास
इसकी स्थिति स्कैन-निर्माण क्या वह लौटाया गया है? बिल्ड_कमांड.
--उपयोग-सी++[=कंपाइलर_पथ]
अपने C++ और ऑब्जेक्टिव-C++ कोड के लिए डिफ़ॉल्ट कंपाइलर का अनुमान लगाएं। इस विकल्प का उपयोग करें
एक वैकल्पिक कंपाइलर निर्दिष्ट करें.
--उपयोग-सीसी[=कंपाइलर_पथ]
अपने सी और ऑब्जेक्टिव-सी कोड के लिए डिफ़ॉल्ट कंपाइलर का अनुमान लगाएं। इस विकल्प का उपयोग करें
एक वैकल्पिक कंपाइलर निर्दिष्ट करें.
-v से वर्बोज़ आउटपुट स्कैन-निर्माण और विश्लेषक. एक दूसरा और तीसरा v बढ़ जाती है
वाचालता.
-V, --दृश्य
निर्माण पूरा होने पर विश्लेषण परिणाम वेब ब्राउज़र में देखें।
-प्रतिबंध [आदर्श]
विश्लेषक द्वारा उपयोग किए जाने वाले अवरोध इंजन को निर्दिष्ट करें। डिफ़ॉल्ट रूप से 'रेंज' मॉडल है
इस्तेमाल किया गया। 'बेसिक' को निर्दिष्ट करने के लिए एक सरल, कम शक्तिशाली बाधा मॉडल का उपयोग किया जाता है
चेकर-0.160 और पहले।
-मैक्सलूप N
निर्दिष्ट करें कि हार मानने से पहले किसी ब्लॉक का कितनी बार दौरा किया जा सकता है। डिफ़ॉल्ट 4 है.
गति की कीमत पर अधिक व्यापक कवरेज के लिए वृद्धि।
-कोई-विफलता-रिपोर्ट नहीं
ऐसी 'विफलताएं' उपनिर्देशिका न बनाएं जिसमें विश्लेषक क्रैश रिपोर्ट और शामिल हों
पूर्व-संसाधित स्रोत फ़ाइलें।
-आंकड़े विश्लेषण की जा रही परियोजना के लिए मुलाक़ात आँकड़े तैयार करता है।
-दुकान [आदर्श]
विश्लेषक द्वारा प्रयुक्त स्टोर मॉडल निर्दिष्ट करें। डिफ़ॉल्ट रूप से, 'क्षेत्र' स्टोर मॉडल
प्रयोग किया जाता है। 'क्षेत्र' एक फ़ील्ड-संवेदनशील स्टोर मॉडल निर्दिष्ट करता है। उपयोगकर्ता निर्दिष्ट भी कर सकते हैं
'बेसिक' जो बहुत कम सटीक है लेकिन अधिक तेज़ी से कोड का विश्लेषण कर सकता है। 'बुनियादी' था
चेकर-0.221 और इससे पहले के संस्करण के लिए डिफ़ॉल्ट स्टोर मॉडल।
बाहर निकलें स्थिति
स्कैन-निर्माण द्वारा लौटाया गया मान लौटाता है बिल्ड_कमांड जब तक --स्थिति-बग or --जाता रहना
प्रयोग किया जाता है।
चेकर्स
नीचे सूचीबद्ध चेकर्स का उपयोग करके सक्षम/अक्षम किया जा सकता है -सक्षम-चेकर और
-अक्षम-चेकर विकल्प. जब तक स्पष्ट रूप से अक्षम न किया जाए, चेकर्स का एक डिफ़ॉल्ट समूह चलाया जाता है।
वास्तव में कौन से चेकर्स डिफ़ॉल्ट समूह का गठन करते हैं, यह ऑपरेटिंग सिस्टम का एक कार्य है
उपयोग; वे के साथ सूचीबद्ध हैं --सहायता-चेकर्स.
कोर.एडजस्टेडरिटर्नवैल्यू
यह देखने के लिए जांचें कि फ़ंक्शन कॉल का रिटर्न मान कॉलर से भिन्न है या नहीं
अपेक्षा करता है (उदाहरण के लिए, फ़ंक्शन पॉइंटर्स के माध्यम से कॉल से)।
core.AttributeNonNull
किसी फ़ंक्शन में तर्क के रूप में पारित शून्य पॉइंटर्स की जांच करें जिनके तर्क हैं
'नॉननल' विशेषता से चिह्नित।
कोर.कॉलएंडमैसेज
फ़ंक्शन कॉल और ऑब्जेक्टिव-सी संदेश अभिव्यक्तियों के लिए तार्किक त्रुटियों की जाँच करें
(उदाहरण के लिए, अप्रारंभीकृत तर्क, शून्य फ़ंक्शन पॉइंटर्स)।
कोर.डिवाइडज़ीरो
शून्य से विभाजन की जाँच करें.
core.NullDereference
अशक्त सूचकों के संदर्भों की जाँच करें।
कोर.स्टैकएड्रेसएस्केप
जांचें कि मेमोरी को स्टैक करने के पते फ़ंक्शन से बच न जाएं।
कोर.अपरिभाषितबाइनरीऑपरेटरपरिणाम
बाइनरी ऑपरेटरों के अपरिभाषित परिणामों की जाँच करें।
कोर.VLASize
अपरिभाषित या शून्य आकार के वीएलए की घोषणाओं की जाँच करें।
कोर.बिल्टिन.बिल्टिनफंक्शन
कंपाइलर के अंतर्निहित कार्यों का मूल्यांकन करें, उदाहरण के लिए alloca()।
core.buildin.NoReturnFunctions
'घबराहट' वाले कार्यों का मूल्यांकन करें जिनके बारे में यह ज्ञात है कि वे कॉल करने वाले के पास वापस नहीं आते।
core.uninitialized.ArraySubscript
सरणी सबस्क्रिप्ट के रूप में उपयोग किए गए अप्रारंभीकृत मानों की जाँच करें।
core.uninitialized.असाइन करें
अप्रारंभीकृत मान निर्दिष्ट करने की जाँच करें।
कोर.अप्रारंभिक.शाखा
शाखा शर्तों के रूप में उपयोग किए गए अप्रारंभीकृत मानों की जाँच करें।
core.uninitialized.CapturedBlockVariable
उन ब्लॉकों की जाँच करें जो अप्रारंभीकृत मानों को कैप्चर करते हैं।
core.uninitialized.UndefReturn
कॉल करने वाले को लौटाए जा रहे अप्रारंभीकृत मानों की जाँच करें।
डेडकोड.डेडस्टोर्स
वेरिएबल्स में संग्रहीत मानों की जाँच करें जिन्हें बाद में कभी नहीं पढ़ा जाता है।
डीबग.डंपसीएफजी
नियंत्रण-प्रवाह ग्राफ़ प्रदर्शित करें।
डीबग.डंपकॉलग्राफ़
कॉल ग्राफ़ प्रदर्शित करें.
डीबग.डम्पडोमिनेटर्स
किसी दिए गए नियंत्रण-प्रवाह ग्राफ़ के लिए प्रभुत्व वृक्ष को प्रिंट करें।
डीबग.डम्पलाइववर्स
लाइव वैरिएबल विश्लेषण के परिणाम प्रिंट करें।
डीबग.आँकड़े
विश्लेषक आँकड़ों के साथ चेतावनियाँ उत्सर्जित करें।
डीबग.टैन्टटेस्ट
दागदार प्रतीकों को ऐसे ही चिन्हित करें.
डीबग.व्यूसीएफजी
का उपयोग करके नियंत्रण-प्रवाह ग्राफ़ देखें Graphviz.
डीबग.व्यूकॉलग्राफ़
का उपयोग करके कॉल ग्राफ़ देखें Graphviz.
llvm.सम्मेलन
एलएलवीएम कोडबेस कन्वेंशन के लिए कोड की जाँच करें।
osx.API विभिन्न Mac OS
osx.AtomicCAS
कॉल का मूल्यांकन करें OSAtomic कार्य करता है.
ओएसएक्स.सेककीचेनएपीआई
सुरक्षित किचेन एपीआई के उचित उपयोग की जाँच करें।
osx.cocoa.AtSync
@synchronized के लिए म्यूटेक्स के रूप में उपयोग किए जाने वाले शून्य पॉइंटर्स की जाँच करें।
osx.cocoa.ClassRelease
किसी कक्षा में सीधे 'रिटेन', 'रिलीज़' या 'ऑटोरिलीज़' भेजने की जाँच करें।
osx.cocoa.InसंगतMethodTypes
प्रकार की असंगतताओं वाले ऑब्जेक्टिव-सी विधि हस्ताक्षरों के बारे में चेतावनी दें।
osx.cocoa.NSAutoreleasePool
इसके इष्टतम से कम उपयोग के लिए चेतावनी दें एनएसएऑटोरिलीज़पूल ऑब्जेक्टिव-सी जीसी मोड में।
osx.cocoa.NSError
NSError** पैरामीटर के उपयोग की जाँच करें।
osx.cocoa.NilArg
ऑब्जेक्टिव-सी विधि कॉल के लिए निषिद्ध शून्य तर्कों की जाँच करें।
osx.cocoa.RetainCount
लीक और अनुचित संदर्भ गणना प्रबंधन की जाँच करें।
osx.cocoa.SelfInit
जांचें कि इनिशियलाइज़र विधि के अंदर 'स्वयं' ठीक से प्रारंभ किया गया है।
osx.cocoa.UnusedIvars
उन निजी आइवरों के बारे में चेतावनी दें जिनका कभी उपयोग नहीं किया जाता।
osx.cocoa.VariadicMethodTypes
गैर-उद्देश्य-सी प्रकारों को उन विविध तरीकों से पारित करने की जाँच करें जो केवल अपेक्षित हैं
उद्देश्य-सी प्रकार.
osx.coreFoundation.CFError
CFErrorRef* पैरामीटर के उपयोग की जाँच करें।
osx.coreFoundation.CFNumber
के उचित उपयोग की जाँच करें सीएफनंबरक्रिएट()।
osx.coreFoundation.CFRetainRelease
के लिए शून्य तर्कों की जाँच करें सीएफरिटेन(), सीएफरिलीज़(), तथा सीएफमेक कलेक्टेबल()।
osx.coreFoundation.containers.OutOfBounds
का उपयोग करते समय इंडेक्स आउट-ऑफ-बाउंड की जांच करता है सीएफअरे एपीआई।
osx.coreFoundation.containers.PointerSizedValues
यदि चेतावनी देता है सीएफअरे, सीएफ डिक्शनरीया, सीएफसेट गैर-सूचक-आकार मानों के साथ बनाए गए हैं।
सुरक्षा.फ्लोटलूपकाउंटर
लूप काउंटर के रूप में फ़्लोटिंग पॉइंट मान का उपयोग करने पर चेतावनी दें (CERT: FLP30-C, FLP30-CPP)।
सुरक्षा.असुरक्षितएपीआई.अनियंत्रितरिटर्न
उन फ़ंक्शंस के उपयोग पर चेतावनी दें जिनके रिटर्न मानों को हमेशा जांचा जाना चाहिए।
सुरक्षा.असुरक्षितएपीआई.getpw
के उपयोग पर चेतावनी दें getpw()।
सुरक्षा.असुरक्षितएपीआई.प्राप्त होता है
के उपयोग पर चेतावनी दें हो जाता है()।
Security.insecureAPI.mkstemp
चेतावनी दें जब मक्सटेम्प() प्रारूप स्ट्रिंग में 6 एक्स से कम पारित किया गया है।
Security.insecureAPI.mktemp
के उपयोग पर चेतावनी दें एमकेटेम्प()।
सुरक्षा.असुरक्षितएपीआई.रैंड
के उपयोग पर चेतावनी दें पंक्ति(), बिना सोचे समझे(), और संबंधित कार्य।
सुरक्षा.असुरक्षितएपीआई.strcpy
के उपयोग पर चेतावनी दें अकड़नेवाला() तथा अकड़()।
सुरक्षा.असुरक्षितएपीआई.vfork
के उपयोग पर चेतावनी दें vfork()।
यूनिक्स.एपीआई
विभिन्न UNIX/Posix फ़ंक्शंस पर कॉल की जाँच करें।
यूनिक्स.मॉलोक
मेमोरी लीक की जांच करें, डबल फ्री और उपयोग के बाद फ्री।
unix.cstring.BadSizeArg
सामान्य त्रुटि के लिए सी स्ट्रिंग फ़ंक्शंस में दिए गए आकार तर्क की जाँच करें
पैटर्न।
unix.cstring.NullArg
सी स्ट्रिंग फ़ंक्शंस के तर्क के रूप में पारित किए जा रहे शून्य पॉइंटर्स की जांच करें।
उदाहरण
स्कैन-निर्माण -o /tmp/myhtmldir बनाना -j4
उपरोक्त उदाहरण विश्लेषण रिपोर्ट को उपनिर्देशिका में जमा करने का कारण बनता है
/tmp/myhtmldir और चलाने के लिए बनाना साथ -j4 विकल्प। एक अलग उपनिर्देशिका बनाई जाती है
हर बार स्कैन-निर्माण किसी प्रोजेक्ट का विश्लेषण करता है. विश्लेषक को अधिकांश समानांतर निर्माणों का समर्थन करना चाहिए,
लेकिन वितरित बिल्ड नहीं।
लेखक
स्कैन-निर्माण टेड क्रेमेनेक द्वारा लिखा गया था। प्रलेखन द्वारा योगदान दिया गया
जेम्स के. लोडेन[ईमेल संरक्षित]>.
onworks.net सेवाओं का उपयोग करके ऑनलाइन स्कैन-बिल्ड-3.8 का उपयोग करें