Ini adalah perintah scan-build-3.6 yang dapat dijalankan di penyedia hosting gratis OnWorks menggunakan salah satu dari beberapa workstation online gratis kami seperti Ubuntu Online, Fedora Online, emulator online Windows atau emulator online MAC OS
PROGRAM:
NAMA
pindai-bangun — Penganalisis statis dentang
RINGKASAN
pindai-bangun [-ohkvV] [-analyze-header] [-aktifkan-pemeriksa [nama_pemeriksa]]
[-nonaktifkan-pemeriksa [nama_pemeriksa]] [--membantu] [--help-checker]
[--html-judul [= judul]] [--terus berlanjut] [-daftar] [-plist-html] [--status-bug]
[--gunakan-c++ [=kompiler_path]] [--gunakan-cc [=kompiler_path]] [--melihat]
[-kendala [model]] [-loop maksimal N] [-tidak-gagal-laporan] [-stat]
[-toko [model]] build_command [opsi_bangun]
DESKRIPSI
pindai-bangun adalah skrip Perl yang memanggil penganalisis statis Dentang. Opsi yang digunakan oleh
pindai-bangun atau oleh penganalisa muncul terlebih dahulu, diikuti oleh build_command dan apa saja
build_options biasanya digunakan untuk membangun sistem target.
Penganalisis statis menggunakan daftar panjang algoritma pemeriksaan, lihat DAM. Keluaran bisa
ditulis dalam format .plist dan/atau HTML standar.
Opsi berikut didukung:
-analyze-header
Juga menganalisis fungsi dalam file #included.
-aktifkan-pemeriksa nama_pemeriksa, -nonaktifkan-pemeriksa nama_pemeriksa
Aktifkan / nonaktifkan nama_pemeriksa. Lihat DAM.
-h, --membantu
Tampilkan pesan ini.
--help-checker
Daftar checker default, lihat DAM.
--html-judul[=judul]
Tentukan judul yang digunakan pada halaman HTML yang dihasilkan. Judul default dibuat jika
judul tidak ditentukan.
-k, --terus berlanjut
Tambahkan opsi "teruskan" ke build_command. Saat ini mendukung make dan
xcodebuild. Ini adalah pilihan kenyamanan; seseorang dapat menentukan perilaku ini secara langsung
menggunakan opsi pembuatan.
-o Direktori target untuk file laporan HTML. Subdirektori akan dibuat sesuai kebutuhan untuk
mewakili pemanggilan terpisah dari penganalisis. Jika opsi ini tidak ditentukan, a
direktori dibuat di / Tmp (TMPDIR di Mac OS X) untuk menyimpan laporan.
-daftar Keluarkan hasilnya sebagai satu set file .plist. (Secara default, output dari pindai-bangun is
satu set file HTML.)
-plist-html
Keluarkan hasilnya sebagai satu set file HTML dan .plist
--status-bug
Setel status keluar ke 1 jika menemukan bug potensial dan 0 sebaliknya. Secara default pintu keluar
status dari pindai-bangun apakah itu dikembalikan oleh build_command.
--gunakan-c++[=jalur_kompiler]
Tebak kompiler default untuk kode C++ dan Objective-C++ Anda. Gunakan opsi ini untuk
tentukan kompiler alternatif.
--gunakan-cc[=jalur_kompiler]
Tebak kompiler default untuk kode C dan Objective-C Anda. Gunakan opsi ini untuk
tentukan kompiler alternatif.
-v Keluaran verbose dari pindai-bangun dan penganalisa. Kedua dan ketiga v meningkat
verbositas.
-V, --melihat
Lihat hasil analisis di browser web saat pembangunan selesai.
-kendala [model]
Tentukan mesin pembatas yang digunakan oleh penganalisis. Secara default model 'rentang' adalah
digunakan. Menentukan 'dasar' menggunakan model batasan yang lebih sederhana dan kurang kuat yang digunakan oleh
pemeriksa-0.160 dan sebelumnya.
-loop maksimal N
Tentukan berapa kali sebuah blok dapat dikunjungi sebelum menyerah. Standarnya adalah 4.
Tingkatkan untuk cakupan yang lebih komprehensif dengan biaya kecepatan.
-tidak-gagal-laporan
Jangan membuat subdirektori 'kegagalan' yang menyertakan laporan kerusakan penganalisis dan
file sumber yang telah diproses sebelumnya.
-stat Menghasilkan statistik kunjungan untuk proyek yang sedang dianalisis.
-toko [model]
Tentukan model toko yang digunakan oleh penganalisis. Secara default, model toko 'wilayah'
digunakan. 'region' menentukan model toko yang peka terhadap bidang. Pengguna juga dapat menentukan
'dasar' yang jauh kurang tepat tetapi dapat lebih cepat menganalisis kode. 'dasar' adalah
model toko default untuk checker-0.221 dan sebelumnya.
EXIT STATUS
pindai-bangun mengembalikan nilai yang dikembalikan oleh build_command kecuali kalau --status-bug or --terus berlanjut
digunakan.
DAM
Checker yang tercantum di bawah ini dapat diaktifkan/dinonaktifkan menggunakan -aktifkan-pemeriksa dan
-nonaktifkan-pemeriksa pilihan. Grup pemeriksa default dijalankan kecuali dinonaktifkan secara eksplisit.
Checker mana yang merupakan grup default adalah fungsi dari sistem operasi di
menggunakan; mereka terdaftar dengan --help-checker.
inti.Nilai Pengembalian yang Disesuaikan
Periksa untuk melihat apakah nilai balik dari panggilan fungsi berbeda dari pemanggil
mengharapkan (misalnya, dari panggilan melalui pointer fungsi).
inti.AttributeNonNull
Periksa pointer nol yang diteruskan sebagai argumen ke fungsi yang argumennya
ditandai dengan atribut 'nonnull'.
inti.PanggilanDanPesan
Periksa kesalahan logis untuk panggilan fungsi dan ekspresi pesan Objective-C
(misalnya, argumen yang tidak diinisialisasi, pointer fungsi nol).
inti.DivideZero
Periksa pembagian dengan nol.
inti.NullDereference
Periksa dereferences dari null pointer.
inti.StackAddressEscape
Periksa apakah alamat untuk menumpuk memori tidak luput dari fungsi.
inti.UndefinisiBinaryOperatorResult
Periksa hasil yang tidak ditentukan dari operator biner.
inti.VLASize
Periksa deklarasi VLA dengan ukuran tidak terdefinisi atau nol.
core.builtin.BuiltinFungsi
Evaluasi fungsi bawaan kompiler, mis alokasi,
inti.builtin.NoReturnFunctions
Evaluasi fungsi 'panik' yang diketahui tidak kembali ke pemanggil.
inti.tidak diinisialisasi.ArraySubscript
Periksa nilai yang tidak diinisialisasi yang digunakan sebagai subskrip array.
inti.tidak diinisialisasi.Tetapkan
Periksa untuk menetapkan nilai yang tidak diinisialisasi.
inti.tidak diinisialisasi.Cabang
Periksa nilai yang tidak diinisialisasi yang digunakan sebagai kondisi cabang.
core.uninitialized.CapturedBlockVariable
Periksa blok yang menangkap nilai yang tidak diinisialisasi.
inti.tidak diinisialisasi.UndefReturn
Periksa nilai yang tidak diinisialisasi yang dikembalikan ke pemanggil.
deadcode.DeadStore
Periksa nilai yang disimpan ke variabel yang tidak pernah dibaca setelahnya.
debug.DumpCFG
Tampilkan Grafik Aliran Kontrol.
debug.DumpCallGraph
Tampilkan Grafik Panggilan.
debug.DumpDominator
Cetak pohon dominasi untuk Grafik Aliran Kontrol yang diberikan.
debug.DumpLiveVars
Cetak hasil analisis variabel langsung.
debug.Statistik
Pancarkan peringatan dengan statistik penganalisis.
debug.TaintTest
Tandai simbol yang tercemar seperti itu.
debug.ViewCFG
Lihat Grafik Aliran Kontrol menggunakan GrafikViz.
debug.ViewCallGraph
Lihat Grafik Panggilan menggunakan GrafikViz.
llvm.Konvensi
Periksa kode untuk konvensi basis kode LLVM.
osx.API Periksa penggunaan yang tepat dari berbagai Mac OS X API.
osx.AtomicCAS
Evaluasi panggilan ke OS Atom fungsi.
osx.SecKeychainAPI
Periksa penggunaan yang tepat dari API Rantai Kunci Aman.
osx.cocoa.AtSync
Periksa pointer nol yang digunakan sebagai mutex untuk @synchronized.
osx.cocoa.ClassRelease
Periksa pengiriman 'retain', 'release,' atau 'autorelease' langsung ke Kelas.
osx.cocoa.IncompatibelMethodTypes
Peringatkan tentang tanda tangan metode Objective-C dengan tipe yang tidak kompatibel.
osx.cocoa.NSAutoreleasePool
Peringatkan untuk penggunaan yang tidak optimal dari NSKolam Rilis Otomatis dalam mode Objective-C GC.
osx.cocoa.NSError
Periksa penggunaan parameter NSError**.
osx.cocoa.NilArg
Periksa argumen nil yang dilarang untuk panggilan metode Objective-C.
osx.cocoa.RetainCount
Periksa kebocoran dan manajemen penghitungan referensi yang tidak tepat.
osx.kakao.SelfInit
Periksa apakah 'diri' diinisialisasi dengan benar di dalam metode penginisialisasi.
osx.cocoa.Ivar yang tidak digunakan
Peringatkan tentang ivar pribadi yang tidak pernah digunakan.
osx.cocoa.VariadicMethodTypes
Periksa untuk meneruskan tipe non-Objective-C ke metode variadik yang hanya mengharapkan
Tipe Objective-C.
osx.coreFoundation.CFError
Periksa penggunaan parameter CFErrorRef*.
osx.coreFoundation.CFNumber
Periksa penggunaan yang tepat dari CFNumberBuat,
osx.coreFoundation.CFRetainRelease
Periksa argumen nol untuk Mempertahankan CF(), CFRLease(), dan CFMakeDapat Dikoleksi,
osx.coreFoundation.containers.OutOfBounds
Memeriksa indeks di luar batas saat menggunakan CFArray API.
osx.coreFoundation.containers.PointerSizedValues
Memperingatkan jika CFArray, kamus CF, atau CFSet dibuat dengan nilai ukuran non-pointer.
keamanan.FloatLoopCounter
Peringatkan penggunaan nilai floating point sebagai penghitung loop (CERT: FLP30-C, FLP30-CPP).
security.insecureAPI.UncheckedReturn
Peringatkan penggunaan fungsi yang nilai kembaliannya harus selalu diperiksa.
keamanan.tidak amanAPI.getpw
Peringatkan penggunaan dapatkanpw,
security.insecureAPI.mendapatkan
Peringatkan penggunaan mendapat,
keamanan.insecureAPI.mkstemp
Peringatkan kapan mkstemp() dilewatkan kurang dari 6 X dalam format string.
keamanan.insecureAPI.mktemp
Peringatkan penggunaan mktemp,
keamanan.insecureAPI.rand
Peringatkan penggunaan baris(), acak(), dan fungsi terkait.
security.insecureAPI.stcpy
Peringatkan penggunaan strcpy.dll() dan strcat,
keamanan.insecureAPI.vfork
Peringatkan penggunaan garpu,
unix.API
Periksa panggilan ke berbagai fungsi UNIX/Posix.
unix.Malloc
Periksa kebocoran memori, double free, dan use-after-free.
unix.cstring.BadSizeArg
Periksa argumen ukuran yang diteruskan ke fungsi string C untuk kesalahan umum
pola.
unix.cstring.NullArg
Periksa pointer nol yang diteruskan sebagai argumen ke fungsi string C.
CONTOH
pindai-bangun -o /tmp/myhtmldir membuat -j4
Contoh di atas menyebabkan laporan analisis disimpan ke dalam subdirektori
/tmp/myhtmldir dan berlari membuat pada pengatur terkenal. Pengatur ini menawarkan bantuan hukum kepada traderapabila trader berselisih dengan broker yang terdaftar dengan mereka. -j4 pilihan. Subdirektori yang berbeda dibuat
setiap kali pindai-bangun menganalisis sebuah proyek. Analyzer harus mendukung sebagian besar build paralel,
tetapi tidak membangun terdistribusi.
PENULIS
pindai-bangun ditulis oleh Ted Kremenek. Dokumentasi disumbangkan oleh
James K. Lowden[email dilindungi]>.
Gunakan scan-build-3.6 online menggunakan layanan onworks.net