Ito ang command scan-build-3.7 na maaaring patakbuhin sa OnWorks na libreng hosting provider gamit ang isa sa aming maramihang libreng online na workstation gaya ng Ubuntu Online, Fedora Online, Windows online emulator o MAC OS online emulator
PROGRAMA:
NAME
scan-build — Clang static analyzer
SINOPSIS
scan-build [-ohkvV] [-analyze-header] [-enable-checker [checker_name]]
[-disable-checker [checker_name]] [- Tumulong] [--help-checkers]
[--html-title [= pamagat]] [--tuloy lang] [-plist] [-plist-html] [--status-bugs]
[--use-c++ [=compiler_path]] [--gamitin-cc [=compiler_path]] [--tingnan]
[-mga hadlang [modelo]] [-maxloop N] [-walang-failure-reports] [-stats]
[-tindahan [modelo]] build_command [build_options]
DESCRIPTION
scan-build ay isang script ng Perl na humihiling sa Clang static analyzer. Mga opsyon na ginamit ng
scan-build o sa pamamagitan ng analyzer lumitaw muna, na sinusundan ng build_command at anumang
build_options karaniwang ginagamit upang bumuo ng target na sistema.
Ang static analyzer ay gumagamit ng mahabang listahan ng mga checking algorithm, tingnan mo CHESKERS. Ang output ay maaaring
nakasulat sa karaniwang .plist at/o HTML na format.
Ang mga sumusunod na opsyon ay sinusuportahan:
-analyze-header
Suriin din ang mga function sa #included na mga file.
-enable-checker checker_name, -disable-checker checker_name
Payagan hindi payagan checker_name. Tingnan CHESKERS.
-h, - Tumulong
Ipakita ang mensaheng ito.
--help-checkers
Maglista ng mga default na pamato, tingnan CHESKERS.
--html-title[=pamagat]
Tukuyin ang pamagat na ginamit sa nabuong mga pahina ng HTML. Ang isang default na pamagat ay nabuo kung
pamagat ay hindi tinukoy.
-k, --tuloy lang
Magdagdag ng opsyong "magpatuloy" sa build_command. Kasalukuyang sumusuporta sa paggawa at
xcodebuild. Ito ay isang pagpipilian sa kaginhawaan; maaaring direktang tukuyin ng isa ang pag-uugaling ito
gamit ang mga pagpipilian sa pagbuo.
-o Target na direktoryo para sa mga file ng ulat ng HTML. Ang mga subdirectory ay gagawin kung kinakailangan
kumakatawan sa hiwalay na mga invocation ng analyzer. Kung hindi tinukoy ang opsyong ito, a
ang direktoryo ay nilikha sa / Tmp (TMPDIR sa Mac OS X) upang iimbak ang mga ulat.
-plist I-output ang mga resulta bilang isang set ng mga .plist file. (Bilang default ang output ng scan-build is
isang set ng mga HTML file.)
-plist-html
I-output ang mga resulta bilang isang set ng HTML at .plist file
--status-bugs
Itakda ang exit status sa 1 kung nakakita ito ng mga potensyal na bug at 0 kung hindi. Bilang default, ang paglabas
katayuan ng scan-build binalik ba yan ng build_command.
--use-c++[=compiler_path]
Hulaan ang default na compiler para sa iyong C++ at Objective-C++ code. Gamitin ang opsyong ito upang
tukuyin ang isang alternatibong compiler.
--gamitin-cc[=compiler_path]
Hulaan ang default na compiler para sa iyong C at Objective-C code. Gamitin ang opsyong ito upang
tukuyin ang isang alternatibong compiler.
-v Verbose na output mula sa scan-build at ang analyzer. Pangalawa at pangatlo v tumataas
verbosity.
-V, --tingnan
Tingnan ang mga resulta ng pagsusuri sa isang web browser kapag nakumpleto ang build.
-mga hadlang [modelo]
Tukuyin ang contraint engine na ginagamit ng analyzer. Bilang default, ang modelong 'saklaw' ay
ginamit. Ang pagtukoy sa 'basic' ay gumagamit ng isang mas simple, hindi gaanong malakas na modelo ng pagpilit na ginamit ni
checker-0.160 at mas maaga.
-maxloop N
Tukuyin kung ilang beses mabibisita ang isang block bago sumuko. Ang default ay 4.
Taasan para sa mas malawak na saklaw sa halaga ng bilis.
-walang-failure-reports
Huwag gumawa ng subdirectory na 'mga pagkabigo' na kinabibilangan ng mga ulat ng pag-crash ng analyzer at
preprocessed source file.
-stats Bumubuo ng mga istatistika ng pagbisita para sa proyektong sinusuri.
-tindahan [modelo]
Tukuyin ang modelo ng tindahan na ginamit ng analyzer. Bilang default, ang modelo ng tindahan ng 'rehiyon'
Ginagamit. Tinutukoy ng 'rehiyon' ang isang field-sensitive na modelo ng tindahan. Maaari ring tukuyin ng mga gumagamit
'basic' na hindi gaanong tumpak ngunit mas mabilis na masuri ang code. 'basic' noon
ang default na modelo ng tindahan para sa checker-0.221 at mas maaga.
EXIT STATUS
scan-build ibinabalik ang halaga na ibinalik ni build_command maliban na lamang kung --status-bugs or --tuloy lang
Ginagamit.
CHESKERS
Ang mga checker na nakalista sa ibaba ay maaaring paganahin/i-disable gamit ang -enable-checker at
-disable-checker mga pagpipilian. Ang isang default na pangkat ng mga checker ay pinapatakbo maliban kung tahasang hindi pinagana.
Eksakto kung aling mga checker ang bumubuo sa default na grupo ay isang function ng operating system sa
gamitin; nakalista sila kasama ng --help-checkers.
core.AdjustedReturnValue
Suriin upang makita kung ang return value ng isang function na tawag ay iba kaysa sa tumatawag
inaasahan (hal., mula sa mga tawag sa pamamagitan ng mga function pointer).
core.AttributeNonNull
Suriin ang mga null pointer na ipinasa bilang mga argumento sa isang function na ang mga argumento ay
minarkahan ng katangiang 'nonnull'.
core.CallAndMessage
Suriin ang mga lohikal na error para sa mga function na tawag at Objective-C na mga expression ng mensahe
(hal., hindi nasimulang mga argumento, null function pointer).
core.DivideZero
Suriin para sa dibisyon sa pamamagitan ng zero.
core.NullDereference
Suriin para sa mga dereference ng mga null pointer.
core.StackAddressEscape
Suriin na ang mga address sa stack memory ay hindi makatakas sa function.
core.UndefinedBinaryOperatorResult
Suriin ang mga hindi natukoy na resulta ng mga binary operator.
core.VLASize
Suriin para sa mga deklarasyon ng VLA na hindi natukoy o zero ang laki.
core.builtin.BuiltinFunctions
Suriin ang mga builtin na function ng compiler, hal alloca🇧🇷
core.builtin.NoReturnFunctions
Suriin ang mga function na 'panic' na alam na hindi bumalik sa tumatawag.
core.uninitialized.ArraySubscript
Suriin para sa mga hindi inisyal na halaga na ginamit bilang mga subscript ng array.
core.uninitialized.Italaga
Suriin kung may pagtatalaga ng hindi pa nasimulang mga halaga.
core.uninitialized.Sangay
Suriin para sa mga hindi inisyal na halaga na ginamit bilang mga kundisyon ng sangay.
core.uninitialized.CapturedBlockVariable
Suriin ang mga bloke na kumukuha ng mga hindi nasimulang halaga.
core.uninitialized.UndefReturn
Suriin kung may hindi nasimulang mga halaga na ibinalik sa tumatawag.
deadcode.DeadStores
Suriin ang mga value na nakaimbak sa mga variable na hindi kailanman nababasa pagkatapos.
debug.DumpCFG
Ipakita ang Control-Flow Graph.
debug.DumpCallGraph
Ipakita ang Graph ng Tawag.
debug.DumpDominators
I-print ang dominance tree para sa isang ibinigay na Control-Flow Graph.
debug.DumpLiveVars
I-print ang mga resulta ng live variable analysis.
debug.Stats
Maglabas ng mga babala gamit ang mga istatistika ng analyzer.
debug.TaintTest
Si Mark ay may bahid ng mga simbolo tulad nito.
debug.ViewCFG
Tingnan ang Control-Flow Graph gamit ang GraphViz.
debug.ViewCallGraph
Tingnan ang Call Graph gamit ang GraphViz.
llvm.Mga Kombensiyon
Suriin ang code para sa LLVM codebase convention.
osx.API Suriin ang wastong paggamit ng iba't ibang Mac OS X API.
osx.AtomicCAS
Suriin ang mga tawag sa OSAtomic function.
osx.SecKeychainAPI
Tingnan kung may wastong paggamit ng Mga Secure Keychain API.
osx.cocoa.AtSync
Suriin ang mga null pointer na ginamit bilang mga mutex para sa @synchronized.
osx.cocoa.ClassRelease
Suriin kung direktang ipadala ang 'retain', 'release,' o 'autorelease' sa isang Class.
osx.cocoa.IncompatibleMethodTypes
Magbabala tungkol sa mga lagda ng pamamaraan ng Objective-C na may mga hindi pagkakatugma sa uri.
osx.cocoa.NSAutoreleasePool
Babala para sa suboptimal na paggamit ng NSAutoreleasePool sa Objective-C GC mode.
osx.cocoa.NSError
Suriin ang paggamit ng mga parameter ng NSError**.
osx.cocoa.NilArg
Suriin ang mga ipinagbabawal na nil argument sa mga tawag sa pamamaraan ng Objective-C.
osx.cocoa.RetainCount
Suriin kung may mga tagas at hindi wastong pamamahala ng bilang ng sanggunian.
osx.cocoa.SelfInit
Suriin na ang 'sarili' ay maayos na nasimulan sa loob ng isang paraan ng initializer.
osx.cocoa.UnusedIvars
Magbabala tungkol sa mga pribadong ivar na hindi kailanman ginagamit.
osx.cocoa.VariadicMethodTypes
Suriin para sa pagpasa ng mga non-Objective-C na uri sa mga variadic na pamamaraan na inaasahan lamang
Mga uri ng Layunin-C.
osx.coreFoundation.CFError
Suriin ang paggamit ng mga parameter ng CFErrorRef*.
osx.coreFoundation.CFNumber
Suriin para sa wastong paggamit ng CFNumberCreate🇧🇷
osx.coreFoundation.CFRetainRelease
Suriin ang mga null na argumento sa CFRetain🇧🇷 CFRelease(), at CFMakeCollectable🇧🇷
osx.coreFoundation.containers.OutOfBounds
Sinusuri ang index na wala sa hangganan kapag ginagamit ang CFArray API.
osx.coreFoundation.containers.PointerSizedValues
Nagbabala kung CFArray, CFDictionary, O CFSet ay nilikha gamit ang mga hindi-pointer-size na halaga.
seguridad.FloatLoopCounter
Babala sa paggamit ng floating point value bilang loop counter (CERT: FLP30-C, FLP30-CPP).
security.insecureAPI.UncheckedReturn
Magbabala sa paggamit ng mga function na ang mga return value ay dapat palaging suriin.
security.insecureAPI.getpw
Babala sa paggamit ng getpw🇧🇷
security.insecureAPI.gets
Babala sa paggamit ng Nakakakuha🇧🇷
security.insecureAPI.mkstemp
Babala kung kailan mkstemp() ay naipasa nang mas kaunti sa 6 na X sa string ng format.
security.insecureAPI.mktemp
Babala sa paggamit ng mktemp🇧🇷
security.insecureAPI.rand
Babala sa paggamit ng Rand🇧🇷 walang pili(), at mga kaugnay na function.
security.insecureAPI.strcpy
Babala sa paggamit ng strcpy() at strcat🇧🇷
security.insecureAPI.vfork
Babala sa paggamit ng vfork🇧🇷
unix.API
Suriin ang mga tawag sa iba't ibang mga function ng UNIX/Posix.
unix.Malloc
Suriin kung may mga tagas ng memorya, dobleng libre, at walang paggamit pagkatapos.
unix.cstring.BadSizeArg
Suriin ang laki ng argument na ipinasa sa C string function para sa mga karaniwang mali
mga pattern.
unix.cstring.NullArg
Suriin kung may mga null pointer na ipinapasa bilang mga argumento sa mga function ng C string.
Halimbawa
scan-build -o /tmp/myhtmldir gumawa -j4
Ang halimbawa sa itaas ay nagiging sanhi ng pagdeposito ng mga ulat ng pagsusuri sa isang subdirectory ng
/tmp/myhtmldir at tumakbo gumawa sa -j4 opsyon. Ang ibang subdirectory ay nilikha
sa bawat oras scan-build sinusuri ang isang proyekto. Dapat suportahan ng analyzer ang karamihan sa mga parallel build,
ngunit hindi ipinamahagi na mga build.
MGA AUTHORS
scan-build ay isinulat ni Ted Kremenek. Dokumentasyong iniambag ni
James K. Lowdenjklowden@schemamania.org>.
Gumamit ng scan-build-3.7 online gamit ang mga serbisyo ng onworks.net