ນີ້ແມ່ນຄໍາສັ່ງ scan-build-3.7 ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍໆບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
scan ສ້າງ - Clang ເຄື່ອງວິເຄາະສະຖິດ
ສະຫຼຸບສັງລວມ
scan ສ້າງ [-ohkvV] [- ວິເຄາະຫົວຂໍ້] [-enable-checker [checker_name]]
[-disable-checker [checker_name]] [- ຊ່ວຍ] [--help-checkers]
[--html-ຫົວຂໍ້ [=ຫົວຂໍ້]] [-- ສືບຕໍ່] [-plist] [-plist-html] [--ສະຖານະ-ບັກ]
[--use-c++ [=compiler_path]] [--use-cc [=compiler_path]] [--ເບິ່ງ]
[- ຂໍ້ຈໍາກັດ [ຮູບແບບ]] [- maxloop N] [-no-failure-ລາຍງານ] [- ສະຖິຕິ]
[- ສ [ຮູບແບບ]] build_command [Build_options]
ລາຍລະອຽດ
scan ສ້າງ ແມ່ນສະຄຣິບ Perl ທີ່ເອີ້ນເຄື່ອງວິເຄາະສະຖິດ Clang. ທາງເລືອກທີ່ໃຊ້ໂດຍ
scan ສ້າງ ຫຼືໂດຍນັກວິເຄາະປະກົດຂຶ້ນກ່ອນ, ຕິດຕາມດ້ວຍ build_command ແລະທຸກ
build_options ປົກກະຕິແລ້ວໃຊ້ເພື່ອສ້າງລະບົບເປົ້າຫມາຍ.
ເຄື່ອງວິເຄາະສະຖິດມີບັນຊີລາຍການອັນຍາວນານຂອງການກວດສອບລະບົບ, ເບິ່ງ ກວດສອບ. ຜົນຜະລິດສາມາດ
ຂຽນໃນຮູບແບບ .plist ແລະ/ຫຼື HTML ມາດຕະຖານ.
ທາງເລືອກດັ່ງຕໍ່ໄປນີ້ແມ່ນສະຫນັບສະຫນູນ:
- ວິເຄາະຫົວຂໍ້
ວິເຄາະຟັງຊັນຕ່າງໆໃນ # ໄຟລ໌ລວມ.
-enable-checker checker_name, -disable-checker checker_name
ເປີດ / ປິດການໃຊ້ງານ checker_name, ທະເລສາບ ກວດສອບ.
-h, - ຊ່ວຍ
ສະແດງຂໍ້ຄວາມນີ້.
--help-checkers
ລາຍຊື່ checkers ເລີ່ມຕົ້ນ, ເບິ່ງ ກວດສອບ.
--html-ຫົວຂໍ້[=ຫົວຂໍ້]
ລະບຸຊື່ທີ່ໃຊ້ໃນໜ້າ HTML ທີ່ສ້າງຂຶ້ນ. ຫົວຂໍ້ເລີ່ມຕົ້ນແມ່ນຖືກສ້າງຂຶ້ນຖ້າ
ຫົວຂໍ້ ບໍ່ໄດ້ລະບຸ.
-k, -- ສືບຕໍ່
ເພີ່ມທາງເລືອກ "ສືບຕໍ່ໄປ" ໄປຫາ build_command. ໃນປັດຈຸບັນສະຫນັບສະຫນູນເຮັດໃຫ້ແລະ
xcodebuild. ນີ້ແມ່ນທາງເລືອກທີ່ສະດວກສະບາຍ; ຫນຶ່ງສາມາດກໍານົດພຶດຕິກໍານີ້ໂດຍກົງ
ໃຊ້ຕົວເລືອກການກໍ່ສ້າງ.
-o ໄດເລກະທໍລີເປົ້າຫມາຍສໍາລັບໄຟລ໌ລາຍງານ HTML. ໄດເລກະທໍລີຍ່ອຍຈະຖືກສ້າງຂື້ນຕາມຄວາມຕ້ອງການເພື່ອ
ເປັນຕົວແທນຂອງ invocation ແຍກຕ່າງຫາກຂອງການວິເຄາະ. ຖ້າຕົວເລືອກນີ້ບໍ່ໄດ້ຖືກລະບຸ, a
ໄດເລກະທໍລີຖືກສ້າງຂື້ນໃນ / tmp (TMPDIR ໃນ Mac OS X) ເພື່ອເກັບຮັກສາບົດລາຍງານ.
-plist ສົ່ງຜົນໄດ້ຮັບເປັນຊຸດຂອງໄຟລ໌ .plist. (ໂດຍຄ່າເລີ່ມຕົ້ນຜົນຜະລິດຂອງ scan ສ້າງ is
ຊຸດຂອງໄຟລ໌ HTML.)
-plist-html
ສົ່ງຜົນໄດ້ຮັບເປັນຊຸດຂອງໄຟລ໌ HTML ແລະ .plist
--ສະຖານະ-ບັກ
ຕັ້ງສະຖານະອອກເປັນ 1 ຖ້າພົບຂໍ້ບົກພ່ອງທີ່ເປັນໄປໄດ້ ແລະ 0 ຖ້າບໍ່ດັ່ງນັ້ນ. ໂດຍຄ່າເລີ່ມຕົ້ນທາງອອກ
ສະຖານະພາບຂອງ scan ສ້າງ ແມ່ນວ່າກັບຄືນມາໂດຍ build_command.
--use-c++[=compiler_path]
ຮີດຕົວລວບລວມຂໍ້ມູນເລີ່ມຕົ້ນສໍາລັບລະຫັດ C++ ແລະ Objective-C++ ຂອງທ່ານ. ໃຊ້ຕົວເລືອກນີ້ເພື່ອ
ກໍານົດ compiler ທາງເລືອກ.
--use-cc[=compiler_path]
ຮີດຄ່າເລີ່ມຕົ້ນຂອງ compiler ສໍາລັບລະຫັດ C ແລະ Objective-C ຂອງທ່ານ. ໃຊ້ຕົວເລືອກນີ້ເພື່ອ
ກໍານົດ compiler ທາງເລືອກ.
-v ຜົນຜະລິດ Verbose ຈາກ scan ສ້າງ ແລະເຄື່ອງວິເຄາະ. ທີສອງ ແລະທີສາມ v ເພີ່ມຂຶ້ນ
ຄໍາເວົ້າ.
-V, --ເບິ່ງ
ເບິ່ງຜົນການວິເຄາະໃນຕົວທ່ອງເວັບເມື່ອການກໍ່ສ້າງສໍາເລັດ.
- ຂໍ້ຈໍາກັດ [ຮູບແບບ]
ລະບຸເຄື່ອງຈັກ contraint ທີ່ໃຊ້ໂດຍເຄື່ອງວິເຄາະ. ໂດຍຄ່າເລີ່ມຕົ້ນ, ຮູບແບບ 'ໄລຍະ' ແມ່ນ
ໃຊ້. ການລະບຸ 'ພື້ນຖານ' ໃຊ້ຕົວແບບຂໍ້ຈຳກັດທີ່ງ່າຍກວ່າ ແລະມີປະສິດທິພາບໜ້ອຍກວ່າທີ່ໃຊ້ໂດຍ
checker-0.160 ແລະກ່ອນຫນ້ານັ້ນ.
- maxloop N
ລະບຸຈໍານວນຄັ້ງທີ່ບລັອກສາມາດເຂົ້າເບິ່ງໄດ້ກ່ອນທີ່ຈະຍອມແພ້. ຄ່າເລີ່ມຕົ້ນແມ່ນ 4.
ເພີ່ມຂຶ້ນສໍາລັບການຄຸ້ມຄອງທີ່ກວ້າງຂວາງຫຼາຍຂຶ້ນໂດຍຄ່າໃຊ້ຈ່າຍຂອງຄວາມໄວ.
-no-failure-ລາຍງານ
ຢ່າສ້າງໄດເລກະທໍລີຍ່ອຍ 'ຄວາມລົ້ມເຫລວ' ທີ່ປະກອບມີບົດລາຍງານການຂັດຂ້ອງຂອງການວິເຄາະແລະ
ໄຟລ໌ແຫຼ່ງທີ່ປຸງແຕ່ງກ່ອນ.
- ສະຖິຕິ ສ້າງສະຖິຕິການຢ້ຽມຢາມສໍາລັບໂຄງການທີ່ຖືກວິເຄາະ.
- ສ [ຮູບແບບ]
ລະບຸຮູບແບບຮ້ານຄ້າທີ່ໃຊ້ໂດຍເຄື່ອງວິເຄາະ. ໂດຍຄ່າເລີ່ມຕົ້ນ, ຮູບແບບຮ້ານຄ້າ 'ພາກພື້ນ'
ຖືກນໍາໃຊ້. 'ພາກພື້ນ' ລະບຸຮູບແບບຮ້ານຄ້າທີ່ລະອຽດອ່ອນ. ຜູ້ໃຊ້ຍັງສາມາດລະບຸໄດ້
'ພື້ນຖານ' ທີ່ມີຄວາມຊັດເຈນຫນ້ອຍແຕ່ສາມາດວິເຄາະລະຫັດໄດ້ໄວກວ່າ. 'ພື້ນຖານ' ແມ່ນ
ຮູບແບບຮ້ານຄ້າເລີ່ມຕົ້ນສໍາລັບ checker-0.221 ແລະກ່ອນຫນ້ານັ້ນ.
ອອກ STATUS
scan ສ້າງ ສົ່ງຄ່າທີ່ສົ່ງຄືນໂດຍ build_command ເວັ້ນເສຍແຕ່ວ່າ --ສະຖານະ-ບັກ or -- ສືບຕໍ່
ຖືກນໍາໃຊ້.
ກວດສອບ
checkers ທີ່ລະບຸໄວ້ຂ້າງລຸ່ມນີ້ອາດຈະຖືກເປີດໃຊ້ງານ / ປິດການນໍາໃຊ້ -enable-checker ແລະ
-disable-checker ທາງເລືອກ. ກຸ່ມ checkers ເລີ່ມຕົ້ນແມ່ນດໍາເນີນການເວັ້ນເສຍແຕ່ຈະປິດການໃຊ້ງານຢ່າງຊັດເຈນ.
ແນ່ນອນວ່າ checkers ໃດປະກອບເປັນກຸ່ມເລີ່ມຕົ້ນແມ່ນຫນ້າທີ່ຂອງລະບົບປະຕິບັດການໃນ
ໃຊ້; ພວກເຂົາເຈົ້າໄດ້ຖືກລະບຸໄວ້ກັບ --help-checkers.
core.AdjustedReturnValue
ກວດເບິ່ງວ່າຄ່າກັບຄືນຂອງການເອີ້ນຟັງຊັນແຕກຕ່າງຈາກຜູ້ໂທຫຼືບໍ່
ຄາດຫວັງ (ເຊັ່ນ: ຈາກການໂທຜ່ານຕົວຊີ້ຟັງຊັນ).
core.AttributeNonNull
ກວດເບິ່ງຕົວຊີ້ null ຜ່ານເປັນ arguments ໄປຫາຟັງຊັນທີ່ arguments ແມ່ນ
ໝາຍດ້ວຍຄຸນສົມບັດ 'nonnull'.
core.CallAndMessage
ກວດເບິ່ງຂໍ້ຜິດພາດຕາມເຫດຜົນສໍາລັບການເອີ້ນຟັງຊັນແລະການສະແດງອອກຂໍ້ຄວາມ Objective-C
(ຕົວຢ່າງ, ການໂຕ້ຖຽງທີ່ບໍ່ຮູ້ຈັກ, ຕົວຊີ້ຟັງຊັນ null).
core.DivideZero
ກວດເບິ່ງການແບ່ງໂດຍສູນ.
core.NullDereference
ກວດເບິ່ງການອ້າງອິງຂອງຕົວຊີ້ null.
core.StackAddressEscape
ກວດເບິ່ງວ່າທີ່ຢູ່ທີ່ຈະ stack memory ບໍ່ຫນີຟັງຊັນ.
core.UndefinedBinaryOperatorResult
ກວດເບິ່ງຜົນໄດ້ຮັບທີ່ບໍ່ໄດ້ກໍານົດຂອງຕົວປະຕິບັດການສອງ.
core.VLASize
ກວດເບິ່ງການປະກາດຂອງ VLA ຂອງຂະຫນາດທີ່ບໍ່ໄດ້ກໍານົດຫຼືສູນ.
core.builtin.BuiltinFunctions
ປະເມີນຟັງຊັນ compiler builtin, e.g alloca,
core.builtin.NoReturnFunctions
ປະເມີນຟັງຊັນ 'ຕົກໃຈ' ທີ່ຮູ້ວ່າບໍ່ກັບຄືນໄປຫາຜູ້ໂທ.
core.uninitialized.ArraySubscript
ກວດເບິ່ງຄ່າທີ່ບໍ່ໄດ້ໃຊ້ເປັນຕົວຫຍໍ້ຂອງອາເຣ.
core.uninitialized.ມອບໝາຍ
ກວດສອບການກໍານົດຄ່າທີ່ຍັງບໍ່ທັນໄດ້ກໍານົດ.
core.uninitialized.ສາຂາ
ກວດເບິ່ງຄ່າທີ່ຍັງບໍ່ທັນໄດ້ໃຊ້ເປັນເງື່ອນໄຂສາຂາ.
core.uninitialized.CapturedBlockVariable
ກວດເບິ່ງບລັອກທີ່ເກັບຄ່າທີ່ບໍ່ໄດ້ເລີ່ມຕົ້ນ.
core.uninitialized.UndefReturn
ກວດເບິ່ງຄ່າທີ່ຍັງບໍ່ທັນໄດ້ສົ່ງຄືນໃຫ້ຜູ້ໂທ.
deadcode.DeadStores
ກວດເບິ່ງຄ່າທີ່ເກັບໄວ້ໃນຕົວແປທີ່ບໍ່ເຄີຍອ່ານຫຼັງຈາກນັ້ນ.
debug.DumpCFG
ສະແດງກາຟການໄຫຼຂອງການຄວບຄຸມ.
debug.DumpCallGraph
ສະແດງ Call Graph.
debug.DumpDominators
ພິມຕົ້ນໄມ້ເດັ່ນສໍາລັບຕາຕະລາງການຄວບຄຸມການໄຫຼເຂົ້າ.
debug.DumpLiveVars
ພິມຜົນໄດ້ຮັບຂອງການວິເຄາະຕົວແປສົດ.
debug.ສະຖິຕິ
ປ່ອຍຄຳເຕືອນດ້ວຍສະຖິຕິຕົວວິເຄາະ.
debug.TaintTest
ເຄື່ອງຫມາຍ tainted ສັນຍາລັກດັ່ງກ່າວ.
debug.ViewCFG
ເບິ່ງ Control-Flow Graphs ໂດຍໃຊ້ GraphViz.
debug.ViewCallGraph
ເບິ່ງ Call Graph ໂດຍໃຊ້ GraphViz.
llvm.Conventions
ກວດເບິ່ງລະຫັດສໍາລັບ LLVM codebase ສົນທິສັນຍາ.
osx.API ກວດເບິ່ງການນໍາໃຊ້ທີ່ເຫມາະສົມຂອງ Mac OS X APIs ຕ່າງໆ.
osx.AtomicCAS
ປະເມີນການໂທໄປຫາ OSAtomic ປະຕິບັດຫນ້າ.
osx.SecKeychainAPI
ກວດເບິ່ງການນໍາໃຊ້ທີ່ເຫມາະສົມຂອງ Secure Keychain APIs.
osx.cocoa.AtSync
ກວດເບິ່ງຕົວຊີ້ null ທີ່ໃຊ້ເປັນ mutexes ສໍາລັບ @synchronized.
osx.cocoa.ClassRelease
ກວດສອບການສົ່ງ 'retain', 'release,' ຫຼື 'autorelease' ໂດຍກົງໄປຫາ Class.
osx.cocoa.Incompatible MethodTypes
ເຕືອນກ່ຽວກັບລາຍເຊັນວິທີການ Objective-C ທີ່ມີປະເພດທີ່ບໍ່ເຂົ້າກັນໄດ້.
osx.cocoa.NSAutoreleasePool
ເຕືອນສໍາລັບການນໍາໃຊ້ທີ່ດີທີ່ສຸດຂອງ NSAutoreleasePool ໃນໂໝດ Objective-C GC.
osx.cocoa.NS ຜິດພາດ
ກວດສອບການນໍາໃຊ້ NSError ** ຕົວກໍານົດການ.
osx.cocoa.NilArg
ກວດເບິ່ງການໂຕ້ຖຽງ nil ທີ່ຖືກຫ້າມຕໍ່ກັບການໂທວິທີການ Objective-C.
osx.cocoa.RetainCount
ກວດເບິ່ງການຮົ່ວໄຫຼແລະການຄຸ້ມຄອງການອ້າງອີງທີ່ບໍ່ຖືກຕ້ອງ.
osx.cocoa.SelfInit
ກວດເບິ່ງວ່າ 'ຕົນເອງ' ຖືກເລີ່ມຕົ້ນຢ່າງຖືກຕ້ອງຢູ່ໃນວິທີການເບື້ອງຕົ້ນ.
osx.cocoa.UnusedIvars
ເຕືອນກ່ຽວກັບ ivars ສ່ວນຕົວທີ່ບໍ່ເຄີຍໃຊ້.
osx.cocoa.VariadicMethodTypes
ກວດເບິ່ງການຖ່າຍທອດປະເພດທີ່ບໍ່ແມ່ນວັດຖຸປະສົງ-C ໄປຫາວິທີການປ່ຽນແປງທີ່ຄາດຫວັງເທົ່ານັ້ນ
ປະເພດ Objective-C.
osx.coreFoundation.CFError
ກວດສອບການໃຊ້ພາລາມິເຕີ CFErrorRef*.
osx.coreFoundation.CFNumber
ກວດສອບການນໍາໃຊ້ທີ່ເຫມາະສົມຂອງ CFNumberCreate,
osx.coreFoundation.CFRetainRelease
ກວດເບິ່ງການໂຕ້ຖຽງ null ກັບ CFRetain( ), CFRelease(), ແລະ CFMakeCollectable,
osx.coreFoundation.containers.OutOfBounds
ກວດເບິ່ງດັດຊະນີນອກຂອບເຂດໃນເວລາທີ່ໃຊ້ CFArray API
osx.coreFoundation.containers.PointerSizedValues
ເຕືອນ ຖ້າ CFArray, CFDictionary, ຫຼື CFSet ຖືກສ້າງຂື້ນດ້ວຍຄ່າທີ່ບໍ່ແມ່ນຕົວຊີ້.
security.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
ເຕືອນກ່ຽວກັບການນໍາໃຊ້ ໄຕ້( ), random(), ແລະຫນ້າທີ່ທີ່ກ່ຽວຂ້ອງ.
security.insecureAPI.strcpy
ເຕືອນກ່ຽວກັບການນໍາໃຊ້ strcpy() ແລະ strcat,
security.insecureAPI.vfork
ເຕືອນກ່ຽວກັບການນໍາໃຊ້ vfork,
unix.API
ກວດເບິ່ງການໂທຫາຟັງຊັນ UNIX/Posix ຕ່າງໆ.
unix.Malloc
ກວດສອບການຮົ່ວໄຫລຂອງຫນ່ວຍຄວາມຈໍາ, ສອງຄັ້ງຟຣີ, ແລະການນໍາໃຊ້ຫຼັງຈາກການຟຣີ.
unix.cstring.BadSizeArg
ກວດເບິ່ງການໂຕ້ຖຽງຂະຫນາດທີ່ສົ່ງເຂົ້າໄປໃນຟັງຊັນ C string ສໍາລັບຄວາມຜິດພາດທົ່ວໄປ
ຮູບແບບ.
unix.cstring.NullArg
ກວດເບິ່ງຕົວຊີ້ null ຖືກສົ່ງຜ່ານເປັນອາກິວເມັນໄປຫາຟັງຊັນ C string.
EXAMPLE
scan ສ້າງ -o /tmp/myhtmldir ເຮັດໃຫ້ -j4
ຕົວຢ່າງຂ້າງເທິງນີ້ເຮັດໃຫ້ບົດລາຍງານການວິເຄາະຖືກຝາກເຂົ້າໄປໃນ subdirectory ຂອງ
/tmp/myhtmldir ແລະແລ່ນ ເຮັດໃຫ້ ກັບ -j4 ທາງເລືອກ. ໄດເຣັກທໍຣີຍ່ອຍທີ່ແຕກຕ່າງກັນແມ່ນຖືກສ້າງຂຶ້ນ
ແຕ່ລະຄັ້ງ scan ສ້າງ ວິເຄາະໂຄງການ. ເຄື່ອງວິເຄາະຄວນສະຫນັບສະຫນູນການກໍ່ສ້າງຂະຫນານຫຼາຍທີ່ສຸດ,
ແຕ່ບໍ່ໄດ້ແຈກຢາຍການກໍ່ສ້າງ.
AUTHORS
scan ສ້າງ ຂຽນໂດຍ Ted Kremenek. ເອກະສານປະກອບໂດຍ
James K. Lowden[email protected]>.
ໃຊ້ scan-build-3.7 ອອນລາຍໂດຍໃຊ້ການບໍລິການ onworks.net