هذا هو الأمر scan-build-3.6 الذي يمكن تشغيله في مزود الاستضافة المجانية OnWorks باستخدام إحدى محطات العمل المجانية المتعددة على الإنترنت مثل Ubuntu Online أو Fedora Online أو محاكي Windows عبر الإنترنت أو محاكي MAC OS عبر الإنترنت
برنامج:
اسم
مسح البناء - محلل كلانج ثابت
موجز
مسح البناء [ohkvV] [-تحليل الرؤوس] [-يمكن-المدقق [checker_name]]
[-تعطيل-المدقق [checker_name]] [--مساعدة] [- لعبة الداما]
[--html-title [= العنوان]] [--يستمر في التقدم] [-القائمة] [-plist- أتش تي أم أل] [- البق الحالة]
[--استخدام سي ++ [= compiler_path]] [--استخدام- سم مكعب [= compiler_path]] [--عرض]
[-القيود [نموذج]] [-ماكسلوب N] [-لا-تقارير-فشل] [-الحالات]
[-متجر [نموذج]] أمر البناء [خيارات_بناء]
الوصف
مسح البناء هو برنامج نصي لـ Perl يستدعي محلل Clang الثابت. الخيارات المستخدمة من قبل
مسح البناء أو بواسطة المحلل تظهر أولاً ، متبوعة بملحق أمر البناء وأي
خيارات البناء تستخدم عادة لبناء النظام المستهدف.
يستخدم محلل ثابت قائمة طويلة من فحص الخوارزميات ، انظر المدققون. يمكن أن يكون الإخراج
مكتوبة بتنسيق .plist و / أو HTML القياسي.
الخيارات التالية مدعومة:
-تحليل الرؤوس
قم أيضًا بتحليل الوظائف في # الملفات المضمنة.
-يمكن-المدقق checker_name, -تعطيل-المدقق checker_name
مفعل وغير مفعل checker_name. شاهد المدققون.
-h, --مساعدة
اعرض هذه الرسالة.
- لعبة الداما
قائمة لعبة الداما الافتراضية ، انظر المدققون.
--html-title[=الاسم]
حدد العنوان المستخدم في صفحات HTML التي تم إنشاؤها. يتم إنشاء عنوان افتراضي إذا
الاسم غير محدد.
-k, --يستمر في التقدم
أضف خيار "متابعة" إلى أمر البناء. يدعم حاليًا إنشاء ملفات
xcodebuild. هذا خيار ملائم. يمكن للمرء تحديد هذا السلوك مباشرة
باستخدام خيارات البناء.
-o الدليل الهدف لملفات تقرير HTML. سيتم إنشاء الدلائل الفرعية حسب الحاجة إلى
تمثل دعوات منفصلة للمحلل. إذا لم يتم تحديد هذا الخيار ، أ
تم إنشاء الدليل بتنسيق / تمة (TMPDIR على نظام التشغيل Mac OS X) لتخزين التقارير.
-القائمة إخراج النتائج كمجموعة من ملفات .plist. (بشكل افتراضي ناتج مسح البناء is
مجموعة من ملفات HTML.)
-plist- أتش تي أم أل
إخراج النتائج كمجموعة من ملفات HTML و .plist
- البق الحالة
اضبط حالة الخروج على 1 إذا وجدت أخطاء محتملة و 0 بخلاف ذلك. افتراضيا الخروج
وضع مسح البناء هو الذي عاد من قبل أمر البناء.
--استخدام سي ++[=مسار التحويل البرمجي]
تخمين المترجم الافتراضي لرمز C ++ و Objective-C ++. استخدم هذا الخيار لـ
تحديد مترجم بديل.
--استخدام- سم مكعب[=مسار التحويل البرمجي]
تخمين المترجم الافتراضي لرمز C و Objective-C. استخدم هذا الخيار لـ
تحديد مترجم بديل.
-v إخراج مطوّل من مسح البناء والمحلل. ثاني وثالث v الزيادات
الإسهاب.
-V, --عرض
اعرض نتائج التحليل في مستعرض ويب عند اكتمال الإنشاء.
-القيود [نموذج]
حدد محرك منع الحمل الذي يستخدمه المحلل. بشكل افتراضي ، يكون نموذج "النطاق" هو
مستخدم. تحديد "أساسي" يستخدم نموذج قيد أبسط وأقل قوة يستخدمه
checker-0.160 وما قبله.
-ماكسلوب N
حدد عدد المرات التي يمكن فيها زيارة الكتلة قبل الاستسلام. الافتراضي هو 4.
زيادة لتغطية أكثر شمولاً بتكلفة السرعة.
-لا-تقارير-فشل
لا تقم بإنشاء دليل فرعي "فشل" يتضمن تقارير أعطال المحلل و
ملفات المصدر المجهزة مسبقًا.
-الحالات يولد إحصائيات الزيارة للمشروع الجاري تحليله.
-متجر [نموذج]
حدد نموذج المتجر الذي يستخدمه المحلل. افتراضيًا ، نموذج متجر "المنطقة"
يستخدم. تحدد "المنطقة" نموذج متجر حساسًا للحقل. يمكن للمستخدمين أيضًا تحديد
"أساسي" وهو أقل دقة بكثير ولكن يمكنه تحليل الكود بسرعة أكبر. "الأساسي" كان
نموذج المتجر الافتراضي للمدقق -0.221 وما قبله.
EXIT الوضع
مسح البناء إرجاع القيمة التي تم إرجاعها بواسطة أمر البناء ما لم - البق الحالة or --يستمر في التقدم
.
المدققون
قد يتم تمكين / تعطيل لعبة الداما المدرجة أدناه باستخدام -يمكن-المدقق و
-تعطيل-المدقق خيارات. يتم تشغيل مجموعة افتراضية من لعبة الداما ما لم يتم تعطيلها بشكل صريح.
بالضبط أي المدققات تشكل المجموعة الافتراضية هي وظيفة لنظام التشغيل في
يستخدم؛ تم سردها مع - لعبة الداما.
الأساسية
تحقق لمعرفة ما إذا كانت قيمة الإرجاع لاستدعاء الوظيفة مختلفة عن المتصل
تتوقع (على سبيل المثال ، من المكالمات عبر مؤشرات الوظيفة).
الأساسية
تحقق من وجود مؤشرات فارغة تم تمريرها كوسيطات إلى دالة تكون وسيطاتها
مميزة بالسمة "nonnull".
الأساسية
تحقق من وجود أخطاء منطقية لاستدعاءات الوظائف وتعبيرات رسائل Objective-C
(على سبيل المثال ، الوسائط غير المهيأة ، مؤشرات دالة فارغة).
الأساسية. تقسيم الصفر
تحقق من القسمة على صفر.
الأساسية
تحقق من وجود إشارات مرجعية للمؤشرات الفارغة.
الأساسية. StackAddressEscape
تحقق من أن عناوين تكديس الذاكرة لا تفلت من الوظيفة.
الأساسية
تحقق من وجود نتائج غير محددة للعوامل الثنائية.
الأساسية
تحقق من وجود إعلانات VLA بحجم غير محدد أو صفري.
core.builtin.BuiltinFunctions
تقييم وظائف المترجم المضمنة ، على سبيل المثال تخصيص().
الأساسية.بويلتين.لا عودة وظائف
تقييم وظائف "الذعر" المعروف أنها لا تعود إلى المتصل.
النواة غير المهيأة
تحقق من القيم غير المهيأة المستخدمة كنصوص مصفوفة.
الأساسية غير مهيأة
تحقق من تعيين قيم غير مهيأة.
الأساسية. uninitialized فرع
تحقق من القيم غير المهيأة المستخدمة كشروط فرع.
النواة غير المهيأة.CapturedBlockVariable
تحقق من الكتل التي تلتقط قيمًا غير مهيأة.
الأساسية غير مهيأة
تحقق من القيم غير المهيأة التي يتم إرجاعها إلى المتصل.
ميت كود
تحقق من القيم المخزنة للمتغيرات التي لا تتم قراءتها بعد ذلك.
التصحيح
عرض الرسوم البيانية للتحكم في التدفق.
debug.DumpCallGraph
عرض الرسم البياني للمكالمات.
debug.DumpDominators
اطبع شجرة السيادة لرسم بياني تحكم-تدفق محدد.
debug.DumpLiveVars
طباعة نتائج تحليل المتغيرات الحية.
التصحيح
إصدار تحذيرات باستخدام إحصائيات المحلل.
التصحيح
ضع علامة على الرموز الملوثة على هذا النحو.
التصحيح
عرض الرسوم البيانية للتحكم-التدفق باستخدام جراففيز.
التصحيح
عرض Call Graph باستخدام جراففيز.
الاتفاقيات
تحقق من رمز اصطلاحات قاعدة بيانات LLVM.
osx.API تحقق من الاستخدامات المناسبة للعديد من واجهات برمجة تطبيقات Mac OS X API.
osx.AtomicCAS
تقييم المكالمات إلى OSAtomic الوظائف.
osx.SecKeychainAPI
تحقق من الاستخدامات المناسبة لواجهات برمجة تطبيقات Secure Keychain.
osx.cocoa.AtSync
تحقق من وجود مؤشرات فارغة مستخدمة ككائنات مزامنة لـsynchronized.
osx.cocoa.ClassRelease
تحقق من إرسال "الاحتفاظ" أو "الإصدار" أو "الإصدار التلقائي" مباشرة إلى الفصل.
osx.cocoa.IncompatibleMethodTypes
تحذير من تواقيع أسلوب Objective-C مع عدم توافق النوع.
osx.cocoa.NSAutoreleasePool
تحذير من الاستخدامات دون المثلى لـ NSAutoreleasePool في وضع Objective-C GC.
osx.cocoa.NS خطأ
تحقق من استخدام معلمات NSError **.
osx.cocoa.NilArg
تحقق من وجود وسيطات صفرية محظورة لاستدعاءات أسلوب Objective-C.
osx.cocoa.RetainCount
تحقق من عدم وجود تسريبات وإدارة عد مرجعية غير صحيحة.
osx.cocoa.SelfInit
تأكد من تهيئة "self" بشكل صحيح داخل طريقة التهيئة.
osx.cocoa.UnusedIvars
تحذير بشأن العاجات الخاصة التي لا تستخدم أبدًا.
osx.cocoa.VariadicMethodTypes
تحقق من تمرير أنواع non-Objective-C إلى طرق متباينة تتوقع فقط
أنواع C الهدف.
osx.coreFoundation.CF خطأ
تحقق من استخدام معلمات CFErrorRef *.
osx.coreFoundation.CFNumber
تحقق من الاستخدامات المناسبة لـ CFNumberCreate().
osx.coreFoundation.CFRetainRelease
تحقق من وجود وسيطات فارغة لـ CFRetain() CFRelease()، و CFMakeCollectable().
osx.coreFoundation.containers.OutOfBounds
للتحقق من الفهرس خارج الحدود عند استخدام ملف CFArray API.
osx.coreFoundation.containers.PointerSizedValues
يحذر إذا CFArray, قاموس CFD أو CFSet يتم إنشاؤها بقيم غير حجم المؤشر.
الأمن
تحذير من استخدام قيمة النقطة العائمة كمقياس حلقي (CERT: FLP30-C ، FLP30-CPP).
Security.insecureAPI.UncheckedReturn
تحذير من استخدامات الوظائف التي يجب التحقق من قيم الإرجاع الخاصة بها دائمًا.
Security.insecureAPI.getpw
تحذير من استخدامات com.getpw().
Security.insecureAPI.gets
تحذير من استخدامات يحصل().
Security.insecureAPI.mkstemp
تحذير عندما مكستيمه() يتم تمرير أقل من 6 X في سلسلة التنسيق.
Security.insecureAPI.mktemp
تحذير من استخدامات com.mktemp().
Security.insecureAPI.rand
تحذير من استخدامات صف() عشوائية() والوظائف ذات الصلة.
Security.insecureAPI.strcpy
تحذير من استخدامات سترسبي() و سترات().
Security.insecureAPI.vfork
تحذير من استخدامات فورك().
يونيكس API
تحقق من المكالمات إلى وظائف UNIX / Posix المختلفة.
يونيكس
تحقق من عدم وجود تسرب للذاكرة ، وحرية مضاعفة ، وخالية من الاستخدام بعد ذلك.
unix.cstring.BadSizeArg
تحقق من وسيطة الحجم التي تم تمريرها إلى دوال السلسلة C بحثًا عن الأخطاء الشائعة
أنماط - رسم.
unix.cstring.NullArg
تحقق من تمرير المؤشرات الفارغة كوسائط إلى دوال سلسلة C.
مثال
مسح البناء -o / tmp / myhtmldir جعل -j4
يتسبب المثال أعلاه في إيداع تقارير التحليل في دليل فرعي لـ
/ tmp / myhtmldir والجري جعل مع الالجائزة -j4 خيار. يتم إنشاء دليل فرعي مختلف
كل مرة مسح البناء يحلل المشروع. يجب أن يدعم المحلل معظم الإنشاءات المتوازية ،
ولكن لا يبني الموزعة.
مؤلفون
مسح البناء كتبه تيد كريمينك. الوثائق التي ساهمت بها
جيمس ك.لودن[البريد الإلكتروني محمي]>.
استخدم scan-build-3.6 عبر الإنترنت باستخدام خدمات onworks.net