এটি হল স্ক্যান-বিল্ড-3.8 কমান্ড যা আমাদের একাধিক বিনামূল্যের অনলাইন ওয়ার্কস্টেশন যেমন উবুন্টু অনলাইন, ফেডোরা অনলাইন, উইন্ডোজ অনলাইন এমুলেটর বা MAC OS অনলাইন এমুলেটর ব্যবহার করে OnWorks ফ্রি হোস্টিং প্রদানকারীতে চালানো যেতে পারে।
কার্যক্রম:
NAME এর
স্ক্যান-বিল্ড - ঝনঝন স্ট্যাটিক বিশ্লেষক
সাইনোপিসিস
স্ক্যান-বিল্ড [-ohkvV] [-বিশ্লেষণ-হেডার] [-সক্ষম-পরীক্ষক [চেকার_নাম]]
[-অক্ষম-পরীক্ষক [চেকার_নাম]] [--help] [--হেল্প-চেকার]
[--html-শিরোনাম [= শিরোনাম]] [--চোলতে থাকা] [-প্লিস্ট] [-plist-html] [--স্থিতি-বাগ]
[--use-c++ [= কম্পাইলার_পথ]] [--ব্যবহার-সিসি [= কম্পাইলার_পথ]] [--দর্শন]
[- সীমাবদ্ধতা [মডেল]] [-ম্যাক্সলুপ N] [-নো-ব্যর্থতা-প্রতিবেদন] [-পরিসংখ্যান]
[- দোকান [মডেল]] বিল্ড_কমান্ড [বিল্ড_বিকল্প]
বর্ণনাঃ
স্ক্যান-বিল্ড একটি পার্ল স্ক্রিপ্ট যা ক্ল্যাং স্ট্যাটিক বিশ্লেষককে আহ্বান করে। দ্বারা ব্যবহৃত বিকল্প
স্ক্যান-বিল্ড অথবা বিশ্লেষক দ্বারা প্রথম প্রদর্শিত, দ্বারা অনুসরণ বিল্ড_কমান্ড এবং যে কোন
বিল্ড_অপশন সাধারণত টার্গেট সিস্টেম তৈরি করতে ব্যবহৃত হয়।
স্ট্যাটিক বিশ্লেষক অ্যালগরিদম পরীক্ষা করার একটি দীর্ঘ তালিকা নিয়োগ করে, দেখুন চেকারস. আউটপুট হতে পারে
প্রমিত .plist এবং/অথবা HTML বিন্যাসে লেখা।
নিম্নলিখিত বিকল্পগুলি সমর্থিত:
-বিশ্লেষণ-হেডার
এছাড়াও # অন্তর্ভুক্ত ফাইলের ফাংশন বিশ্লেষণ করুন।
-সক্ষম-পরীক্ষক চেকার_নাম, -অক্ষম-পরীক্ষক চেকার_নাম
চালু অচল চেকার_নাম। দেখ চেকারস.
-h, --help
এই বার্তা প্রদর্শন করুন.
--হেল্প-চেকার
তালিকা ডিফল্ট চেকার, দেখুন চেকারস.
--html-শিরোনাম[=খেতাব]
উত্পন্ন HTML পৃষ্ঠাগুলিতে ব্যবহৃত শিরোনাম উল্লেখ করুন। একটি ডিফল্ট শিরোনাম তৈরি করা হয় যদি
খেতাব নির্দিষ্ট করা হয় না।
-k, --চোলতে থাকা
একটি "চলতে থাকুন" বিকল্প যোগ করুন বিল্ড_কমান্ড. বর্তমানে মেক এবং সমর্থন করে
xcodebuild. এটি একটি সুবিধাজনক বিকল্প; কেউ সরাসরি এই আচরণ নির্দিষ্ট করতে পারেন
বিল্ড অপশন ব্যবহার করে।
-o HTML রিপোর্ট ফাইলের জন্য টার্গেট ডিরেক্টরি। প্রয়োজন অনুযায়ী সাবডিরেক্টরি তৈরি করা হবে
বিশ্লেষক পৃথক আহ্বান প্রতিনিধিত্ব. যদি এই বিকল্পটি নির্দিষ্ট করা না থাকে, a
ডিরেক্টরি তৈরি করা হয় / tmp -র পরিবর্তে (Mac OS X-এ TMPDIR) রিপোর্ট সংরক্ষণ করতে।
-প্লিস্ট .plist ফাইলের একটি সেট হিসাবে ফলাফল আউটপুট. (ডিফল্টরূপে এর আউটপুট স্ক্যান-বিল্ড is
HTML ফাইলের একটি সেট।)
-plist-html
HTML এবং .plist ফাইলের একটি সেট হিসাবে ফলাফল আউটপুট
--স্থিতি-বাগ
সম্ভাব্য বাগ পাওয়া গেলে প্রস্থান অবস্থা 1 এবং অন্যথায় 0 সেট করুন। ডিফল্টরূপে প্রস্থান
অবস্থা স্ক্যান-বিল্ড যে দ্বারা ফিরে বিল্ড_কমান্ড.
--use-c++[=কম্পাইলার_পথ]
আপনার C++ এবং Objective-C++ কোডের জন্য ডিফল্ট কম্পাইলার অনুমান করুন। এই বিকল্পটি ব্যবহার করুন
একটি বিকল্প কম্পাইলার নির্দিষ্ট করুন।
--ব্যবহার-সিসি[=কম্পাইলার_পথ]
আপনার সি এবং অবজেক্টিভ-সি কোডের জন্য ডিফল্ট কম্পাইলার অনুমান করুন। এই বিকল্পটি ব্যবহার করুন
একটি বিকল্প কম্পাইলার নির্দিষ্ট করুন।
-v থেকে ভার্বোস আউটপুট স্ক্যান-বিল্ড এবং বিশ্লেষক। একটি দ্বিতীয় এবং তৃতীয় v বৃদ্ধি
শব্দচয়ন
-V, --দর্শন
বিল্ড সম্পূর্ণ হলে একটি ওয়েব ব্রাউজারে বিশ্লেষণের ফলাফল দেখুন।
- সীমাবদ্ধতা [মডেল]
বিশ্লেষক দ্বারা ব্যবহৃত কন্ট্রাইন্ট ইঞ্জিন উল্লেখ করুন। ডিফল্টরূপে 'রেঞ্জ' মডেল
ব্যবহৃত 'বেসিক' নির্দিষ্ট করার জন্য একটি সহজ, কম শক্তিশালী সীমাবদ্ধতা মডেল ব্যবহার করা হয়েছে
চেকার-0.160 এবং তার আগের।
-ম্যাক্সলুপ N
ছেড়ে দেওয়ার আগে একটি ব্লক কতবার পরিদর্শন করা যেতে পারে তা নির্দিষ্ট করুন। ডিফল্ট হল 4।
গতির খরচে আরও ব্যাপক কভারেজের জন্য বাড়ান।
-নো-ব্যর্থতা-প্রতিবেদন
একটি 'ব্যর্থতা' সাবডিরেক্টরি তৈরি করবেন না যাতে বিশ্লেষক ক্র্যাশ রিপোর্ট এবং অন্তর্ভুক্ত থাকে
প্রিপ্রসেসড সোর্স ফাইল।
-পরিসংখ্যান বিশ্লেষণ করা প্রকল্পের জন্য পরিদর্শন পরিসংখ্যান তৈরি করে।
- দোকান [মডেল]
বিশ্লেষক দ্বারা ব্যবহৃত দোকান মডেল উল্লেখ করুন. ডিফল্টরূপে, 'অঞ্চল' স্টোর মডেল
ব্যবহৃত হয়. 'অঞ্চল' একটি ক্ষেত্র-সংবেদনশীল স্টোর মডেল নির্দিষ্ট করে। ব্যবহারকারীরা নির্দিষ্ট করতে পারেন
'বেসিক' যা অনেক কম সুনির্দিষ্ট কিন্তু আরও দ্রুত কোড বিশ্লেষণ করতে পারে। 'মৌলিক' ছিল
চেকার-0.221 এবং তার আগের জন্য ডিফল্ট স্টোর মডেল।
প্রস্থান করুন স্থিতি
স্ক্যান-বিল্ড দ্বারা প্রত্যাবর্তিত মান প্রদান করে বিল্ড_কমান্ড যদি না --স্থিতি-বাগ or --চোলতে থাকা
ব্যবহৃত হয়.
চেকারস
নীচে তালিকাভুক্ত চেকারগুলি ব্যবহার করে সক্রিয়/অক্ষম করা যেতে পারে -সক্ষম-পরীক্ষক এবং
-অক্ষম-পরীক্ষক বিকল্প চেকারদের একটি ডিফল্ট গ্রুপ চালানো হয় যদি না স্পষ্টভাবে অক্ষম করা হয়।
ঠিক কোন চেকারগুলি ডিফল্ট গ্রুপ গঠন করে তা অপারেটিং সিস্টেমের একটি ফাংশন
ব্যবহার তারা সঙ্গে তালিকাভুক্ত করা হয় --হেল্প-চেকার.
core. AdjustedReturnValue
একটি ফাংশন কলের রিটার্ন মান কলারের থেকে আলাদা কিনা তা পরীক্ষা করে দেখুন
প্রত্যাশা করে (যেমন, ফাংশন পয়েন্টারের মাধ্যমে কল থেকে)।
core.AttributeNonNull
একটি ফাংশন যার আর্গুমেন্ট হয় আর্গুমেন্ট হিসাবে পাস নাল পয়েন্টার জন্য চেক করুন
'nonnull' বৈশিষ্ট্য দিয়ে চিহ্নিত।
core.CallAndMessage
ফাংশন কল এবং অবজেক্টিভ-সি মেসেজ এক্সপ্রেশনের জন্য লজিক্যাল ত্রুটি পরীক্ষা করুন
(যেমন, অপ্রচলিত আর্গুমেন্ট, নাল ফাংশন পয়েন্টার)।
core.DivideZero
শূন্য দ্বারা বিভাজনের জন্য পরীক্ষা করুন.
core.nullDereference
নাল পয়েন্টার এর dereferences জন্য পরীক্ষা করুন.
core.StackAddressEscape
মেমরি স্ট্যাক করার ঠিকানাগুলি ফাংশন এড়িয়ে যায় না তা পরীক্ষা করুন।
core.UndefinedBinaryOperatorResult
বাইনারি অপারেটরগুলির অনির্ধারিত ফলাফলের জন্য পরীক্ষা করুন।
core.VLASize
অনির্ধারিত বা শূন্য আকারের VLA ঘোষণার জন্য পরীক্ষা করুন।
core.builtin.BuiltinFunctions
কম্পাইলার বিল্টইন ফাংশন মূল্যায়ন করুন, যেমন alloca()।
core.builtin.NoReturnFunctions
'আতঙ্ক' ফাংশনগুলি মূল্যায়ন করুন যা কলারের কাছে ফিরে আসবে না বলে পরিচিত৷
core.uninitialized.ArraySubscript
অ্যারে সাবস্ক্রিপ্ট হিসাবে ব্যবহৃত অপ্রবর্তিত মান পরীক্ষা করুন।
core.uninitialized.assign
শুরু না করা মান নির্ধারণের জন্য পরীক্ষা করুন।
core.uninitialized.Branch
শাখা শর্ত হিসাবে ব্যবহৃত অপ্রচলিত মান পরীক্ষা করুন।
core.uninitialized.CapturedBlockVariable
অপ্রবর্তিত মান ক্যাপচার যে ব্লক জন্য পরীক্ষা করুন.
core.uninitialized.UndefReturn
অবিকৃত মানগুলি কলকারীকে ফেরত দেওয়া হচ্ছে কিনা তা পরীক্ষা করুন৷
deadcode.DeadStores
ভেরিয়েবলগুলিতে সংরক্ষিত মানগুলি পরীক্ষা করুন যা পরে কখনও পড়া হয় না।
debug.DumpCFG
কন্ট্রোল-ফ্লো গ্রাফ প্রদর্শন করুন।
debug.DumpCallGraph
কল গ্রাফ প্রদর্শন করুন।
debug.DumpDominators
একটি প্রদত্ত কন্ট্রোল-ফ্লো গ্রাফের জন্য ডমিনেন্স ট্রি প্রিন্ট করুন।
debug.DumpLiveVars
লাইভ পরিবর্তনশীল বিশ্লেষণের ফলাফল প্রিন্ট করুন।
ডিবাগ। পরিসংখ্যান
বিশ্লেষক পরিসংখ্যান সহ সতর্কতা নির্গত করুন।
debug.TaintTest
কলঙ্কিত প্রতীকগুলিকে যেমন চিহ্নিত করুন।
debug.ViewCFG
ব্যবহার করে কন্ট্রোল-ফ্লো গ্রাফ দেখুন গ্রাফভিজ.
debug.ViewCallGraph
ব্যবহার করে কল গ্রাফ দেখুন গ্রাফভিজ.
llvm. কনভেনশন
LLVM কোডবেস কনভেনশনের জন্য কোড চেক করুন।
osx.API বিভিন্ন Mac OS X API-এর সঠিক ব্যবহারের জন্য পরীক্ষা করুন।
osx.AtomicCAS
কল মূল্যায়ন OSAtomic ফাংশন।
osx.SecKeychainAPI
সিকিউর কীচেন এপিআই-এর সঠিক ব্যবহার পরীক্ষা করুন।
osx.cocoa.AtSync
@synchronized এর জন্য mutexes হিসাবে ব্যবহৃত নাল পয়েন্টার পরীক্ষা করুন।
osx.cocoa.ClassRelease
একটি ক্লাসে সরাসরি 'রিটেন', 'রিলিজ' বা 'অটোরিলিজ' পাঠানোর জন্য চেক করুন।
osx.cocoa.IncompatibleMethodTypes
টাইপ অসঙ্গতি সহ অবজেক্টিভ-সি পদ্ধতি স্বাক্ষর সম্পর্কে সতর্ক করুন।
osx.cocoa.NSAutoreleasePool
এর সাবঅপ্টিমাল ব্যবহারের জন্য সতর্ক করুন এনএসএ অটোরিলিজপুল অবজেক্টিভ-সি জিসি মোডে।
osx.cocoa.NSERror
NSError** প্যারামিটারের ব্যবহার পরীক্ষা করুন।
osx.cocoa.NilArg
অবজেক্টিভ-সি মেথড কলের জন্য নিষিদ্ধ শূন্য আর্গুমেন্ট চেক করুন।
osx.cocoa.RetainCount
ফাঁস এবং অনুপযুক্ত রেফারেন্স গণনা পরিচালনার জন্য পরীক্ষা করুন।
osx.cocoa.SelfInit
একটি ইনিশিয়ালাইজার পদ্ধতির মধ্যে 'স্ব' সঠিকভাবে শুরু হয়েছে কিনা তা পরীক্ষা করুন।
osx.cocoa.UusedIvars
ব্যক্তিগত আইভার সম্পর্কে সতর্ক করুন যা কখনই ব্যবহার করা হয় না।
osx.cocoa.VariadicMethodTypes
শুধুমাত্র প্রত্যাশিত বৈচিত্র্যময় পদ্ধতিতে নন-অবজেক্টিভ-সি ধরনের পাস করার জন্য পরীক্ষা করুন
উদ্দেশ্য-সি প্রকার।
osx.coreFoundation.CFError
CFErrorRef* প্যারামিটারের ব্যবহার পরীক্ষা করুন।
osx.coreFoundation.CFNumber
এর সঠিক ব্যবহার পরীক্ষা করুন CFNumberCreate()।
osx.coreFoundation.CFRetainRelease
নাল আর্গুমেন্ট জন্য চেক করুন CFRretain, সিএফরিলিজ(), এবং CFMake সংগ্রহযোগ্য()।
osx.coreFoundation.containers.OutOfBounds
ব্যবহার করার সময় সূচকের বাইরের জন্য পরীক্ষা করে CFArray API- টি।
osx.coreFoundation.containers.PointerSizedValues
যদি সতর্ক করে CFArray, সিএফডিকশনারি, বা সিএফসেট অ-পয়েন্টার-আকার মান দিয়ে তৈরি করা হয়।
নিরাপত্তা. FloatLoopCounter
লুপ কাউন্টার (CERT: FLP30-C, FLP30-CPP) হিসাবে একটি ফ্লোটিং পয়েন্ট মান ব্যবহার করার বিষয়ে সতর্ক করুন।
security.insecureAPI. UncheckedReturn
ফাংশন ব্যবহার সম্পর্কে সতর্ক করুন যার রিটার্ন মান সবসময় চেক করা আবশ্যক।
security.insecureAPI.getpw
ব্যবহার সম্পর্কে সতর্ক করুন getpw()।
security.insecureAPI.gets
ব্যবহার সম্পর্কে সতর্ক করুন পায়()।
security.insecureAPI.mkstemp
সতর্ক করুন যখন mkstemp() ফরম্যাট স্ট্রিং-এ 6 X এর কম পাস করা হয়েছে।
security.insecureAPI.mktemp
ব্যবহার সম্পর্কে সতর্ক করুন mktemp()।
security.insecureAPI.rand
ব্যবহার সম্পর্কে সতর্ক করুন র্যান্ড্, এলোমেলো(), এবং সম্পর্কিত ফাংশন।
security.insecureAPI.strcpy
ব্যবহার সম্পর্কে সতর্ক করুন strcpy() এবং strcat()।
security.insecureAPI.vfork
ব্যবহার সম্পর্কে সতর্ক করুন vfork()।
unix.API
বিভিন্ন UNIX/Posix ফাংশনে কল চেক করুন।
unix.Malloc
মেমরি ফাঁসের জন্য পরীক্ষা করুন, দ্বিগুণ বিনামূল্যে, এবং ব্যবহারের পর-মুক্ত।
unix.cstring.BadSizeArg
সাধারণ ভুলের জন্য সি স্ট্রিং ফাংশনে পাস করা সাইজ আর্গুমেন্ট চেক করুন
নিদর্শন।
unix.cstring.NullArg
C স্ট্রিং ফাংশন আর্গুমেন্ট হিসাবে নাল পয়েন্টার পাস করা হচ্ছে চেক করুন.
EXAMPLE টি
স্ক্যান-বিল্ড -o /tmp/myhtmldir করা -জে 4
উপরোক্ত উদাহরণের কারণে বিশ্লেষণ প্রতিবেদনগুলি একটি সাবডিরেক্টরিতে জমা করা হয়
/tmp/myhtmldir এবং চালানোর জন্য করা সাথে -জে 4 বিকল্প একটি ভিন্ন সাবডিরেক্টরি তৈরি করা হয়
প্রতি বার স্ক্যান-বিল্ড একটি প্রকল্প বিশ্লেষণ করে। বিশ্লেষক অধিকাংশ সমান্তরাল বিল্ড সমর্থন করা উচিত,
কিন্তু বিল্ড বিতরণ না.
লেখক
স্ক্যান-বিল্ড টেড ক্রেমেনেক লিখেছেন। ডকুমেন্টেশন দ্বারা অবদান
জেমস কে লোডেন[ইমেল সুরক্ষিত]>.
onworks.net পরিষেবা ব্যবহার করে স্ক্যান-বিল্ড-3.8 অনলাইন ব্যবহার করুন