فایلهای
C/C++ دادهشده
را برای
یافتن
خطاهای
رایج تحلیل
میکند.
--check-config
پیکربندی
Cppcheck را بررسی
میکند. با
این پرچم،
تحلیل
معمولی کد
غیرفعال
میشود.
--check-library
در صورتی
که
فایلهای
کتابخانه
دارای
اطلاعات
ناقص
باشند،
پیامهای
اطلاعاتی
را نمایش
میدهد.
-D<id>
بهطور
پیشفرض Cppcheck
تمام
پیکربندیها
را بررسی
میکند.
برای محدود
کردن بررسی
از -D استفاده
کنید. هنگام
استفاده از
-D، بررسی به
پیکربندی
ارائهشده
محدود
میشود.
مثال: -DDEBUG=1 -D__cplusplus
-U<id>
بهطور
پیشفرض Cppcheck
تمام
پیکربندیها
را بررسی
میکند. از '-U'
برای
پنهانسازی
صریح برخی
مسیرهای کد
#ifdef <id> از
فرایند
بررسی
استفاده
کنید. مثال:
'-UDEBUG'
--disable=<id>
بررسیهای
منفرد را
غیرفعال
میکند.
لطفاً برای
جزئیات
بیشتر به
مستندات --enable=<id>
مراجعه
کنید.
--enable=<id>
بررسیهای
اضافی را
فعال
میکند.
شناسههای
موجود
عبارتند از:
all
تمام
بررسیها
را فعال
میکند.
توصیه
میشود
تنها زمانی
از --enable=all
استفاده
کنید که کل
برنامه
پویش
میشود،
زیرا این
گزینه unusedFunction را
نیز فعال
میکند.
warning
پیامهای
هشدار را
فعال
میکند.
style
تمام
بررسیهای
شیوه
کدنویسی را
فعال
میکند.
تمام
پیامها با
سطوح اهمیت
'style'، 'performance' و 'portability'
فعال
میشوند.
performance
پیامهای
مربوط به
کارایی و
عملکرد را
فعال
میکند.
portability
پیامهای
مربوط به
قابلیت حمل
را فعال
میکند.
information
پیامهای
اطلاعاتی
را فعال
میکند.
unusedFunction
توابع
استفادهنشده
را بررسی
میکند.
توصیه
میشود
تنها زمانی
این گزینه
را فعال
کنید که کل
برنامه
پویش
میشود.
missingInclude
در صورت
وجود includeهای
مفقود،
هشدار
میدهد.
بهطور
پیشفرض
هیچیک از
بررسیهای
اضافی فعال
نیستند. با
جدا کردن
شناسهها
با کاما
میتوان
چندین
شناسه را
مشخص کرد،
مانند: --enable=style,unusedFunction.
همچنین --std را
ببینید.
--error-exitcode=<n>
در صورت
یافتن خطا،
عدد صحیح <n>
به جای
مقدار
پیشفرض 0
بازگردانده
میشود. در
صورتی که
آرگومانها
نامعتبر
باشند یا
هیچ فایل
ورودی
ارائه نشده
باشد،
مقدار EXIT_FAILURE
بازگردانده
خواهد شد.
توجه داشته
باشید که
سیستمعامل
شما
میتواند
این مقدار
را تغییر
دهد، به
عنوان مثال 256
ممکن است به 0
تبدیل شود.
--errorlist
فهرستی
از تمام
پیامهای
خطای ممکن
را در قالب XML
چاپ
میکند.
--exitcode-suppress=<spec>
برای
مشخص کردن
شناسه
خطایی
استفاده
میشود که
نباید منجر
به تولید کد
خروج
غیرصفر
شود.
--exitcode-suppressions=<file>
زمانی
استفاده
میشود که
پیامهای
خاصی باید
نمایش داده
شوند اما
نباید باعث
ایجاد کد
خروج
غیرصفر
شوند.
--file-list=<file>
فایلهای
مورد نظر
برای بررسی
را از طریق
یک فایل
متنی مشخص
میکند. در
هر سطر یک
نام فایل
قرار
میگیرد.
هنگامی که
نام فایل -
باشد،
فهرست
فایلها از
ورودی
استاندارد
خوانده
خواهد شد.
--filesdir
مقدار FILESDIR
توکار را
چاپ
میکند.
-f, --force
بررسی
اجباری
فایلهایی
که
پیکربندیهای
بسیار
زیادی
دارند. در
صورت
برخورد با
چنین فایلی
خطایی چاپ
میشود،
بنابراین
دلیلی برای
استفاده از
این گزینه
بهصورت
پیشفرض
وجود ندارد.
در صورت
استفاده
همزمان با
--max-configs=، آخرین
گزینه
اعمال
خواهد شد.
--fsigned-char
نوع char را
علامتدار
در نظر
میگیرد.
این گزینه
تنظیمات
گزینههای
قبلی --platform را
بازنویسی
کرده و توسط
گزینههای
بعدی
بازنویسی
میشود.
--funsigned-char
نوع char را
بدونعلامت
در نظر
میگیرد.
این گزینه
تنظیمات
گزینههای
قبلی --platform را
بازنویسی
کرده و توسط
گزینههای
بعدی
بازنویسی
میشود.
-h, --help
متن
راهنما را
چاپ
میکند.
-I <dir>
مسیری را
برای
جستجوی
فایلهای include
مشخص
میکند.
برای مشخص
کردن چندین
مسیر، از
چندین
پارامتر -I
استفاده
کنید.
نخستین
مسیر
دادهشده،
زودتر از
بقیه برای
فایلهای
هدر موجود
در آن جستجو
میشود. اگر
مسیرها
نسبت به
فایلهای
مبدأ نسبی
باشند،
نیازی به
این گزینه
نیست.
--includes-file=<file>
مسیر
دایرکتوریها
را برای
جستجوی
فایلهای
هدر includeشده در
یک فایل
متنی مشخص
میکند. در
هر سطر یک
مسیر include
اضافه کنید.
نخستین
مسیر
دادهشده،
زودتر از
بقیه برای
فایلهای
هدر موجود
در آن جستجو
میشود. اگر
مسیرها
نسبت به
فایلهای
مبدأ نسبی
باشند،
نیازی به
این گزینه
نیست.
--config-exclude=<dir>
مسیری
(پیشوندی) که
باید از
بررسی
پیکربندی
مستثنی شود.
پیکربندیهای
پیشپردازنده
تعریفشده
در هدرها (نه
فایلهای
مبدأ) که با
این پیشوند
مطابقت
داشته
باشند،
برای
ارزیابی
گزینههای
پیکربندی
در نظر
گرفته
نخواهند
شد.
--config-exclude-file=<file>
فایلی
شامل
فهرستی از
config-excludeها.
--include=<file>
گنجاندن
اجباری یک
فایل قبل از
فایل
بررسیشده.
برای مثال
هنگام
بررسی هسته
لینوکس، که
در آن autoconf.h باید
برای هر
فایل
کامپایلشده
گنجانده
شود، قابل
استفاده
است.
عملکردی
مشابه
گزینه -include در GCC
دارد.
-i <dir>
مسیری را
برای
نادیده
گرفتن
تعیین
میکند.
برای
نادیده
گرفتن
چندین
مسیر، چند
پارامتر -i
تعیین کنید.
نام
دایرکتوری
یا نام فایل
به همراه
مسیر را به
عنوان
پارامتر
بدهید. نام
دایرکتوری
با تمام
بخشهای
مسیر
مطابقت
داده
میشود.
--inconclusive
به Cppcheck
اجازه
میدهد حتی
در صورتی که
تحلیل
غیرقطعی
باشد گزارش
دهد. با این
گزینه
موارد مثبت
کاذب (false positives)
وجود خواهد
داشت. پیش از
نتیجهگیری
درباره صحت
یا عدم صحت،
هر نتیجه
باید با دقت
بررسی شود.
--inline-suppr
نادیدهگیریهای
درونخطی
را فعال
میکند.
برای
استفاده از
آنها، پیش
از خطی که
باید
نادیده
گرفته شود
کامنتی به
این شکل
قرار دهید: //
cppcheck-suppress memleak
-j <jobs>
راهاندازی
<jobs> ریسه برای
انجام کار
بررسی.
-l <load>
مشخص
میکند که
اگر
ریسههای
دیگری در
حال اجرا
باشند و
میانگین
بار کاری
سیستم (load average)
حداقل
برابر با <load>
باشد، هیچ
ریسه جدیدی
شروع به کار
نکند (در
سیستمهای
غیرشبهیونیکس
نادیده
گرفته
میشود).
--language=<language>
اجبار cppcheck
به بررسی
تمام
فایلها در
قالب زبان
مشخصشده.
مقادیر
معتبر
عبارتند از: c
و c++
--library=<cfg>
استفاده
از
پیکربندی
کتابخانه.
--max-configs=<limit>
حداکثر
تعداد
پیکربندیها
برای بررسی
در یک فایل
پیش از رد
شدن از آن.
مقدار
پیشفرض 12
است. در صورت
استفاده
همزمان با
--force، آخرین
گزینه
مشخصشده
اعمال
خواهد شد.
--max-ctu-depth=<limit>
حداکثر
عمق در
تحلیل
سراسری
برنامه (whole program analysis).
پیشفرض 2
است.
--platform=<type>
مشخص
کردن
نوعها و
اندازههای
وابسته به
پلتفرم.
پلتفرمهای
موجود
عبارتند از:
unix32
گونه ۳۲
بیتی unix
unix64
گونه ۶۴
بیتی unix
win32A
نگارش ۳۲
بیتی Windows با
کدگذاری
نویسه ASCII
win32W
نگارش ۳۲
بیتی Windows با
کدگذاری
نویسه UNICODE
win64
نگارش ۶۴
بیتی Windows
بهطور
پیشفرض از
پلتفرمی که
برای
کامپایل Cppcheck
به کار رفته
است
استفاده
میشود.
-q, --quiet
تنها در
صورت وجود
خطا پیام
چاپ شود.
-rp, -rp=<paths>, --relative-paths;,
--relative-paths=<paths>
استفاده
از مسیرهای
نسبی در
خروجی. در
صورت
تعیین،
مقادیر <paths>
به عنوان
پایه
استفاده
میشوند.
میتوانید
چند مسیر را
با ';' جدا
کنید. در غیر
این صورت،
از مسیری که
فایلهای
مبدأ در آن
جستجو
میشوند
استفاده
خواهد شد.
برای مثال،
اگر مقدار
دادهشده test
باشد،
هنگام
بررسی test/test.cpp،
مسیر در
خروجی به
جای test/test.cpp به
صورت test.cpp درج
میشود. این
ویژگی برای
ایجاد
مسیرهای
نسبی از
مقایسه
رشتهای
استفاده
میکند،
بنابراین
برای نمونه
استفاده از ~
برای پوشه
خانگی کار
نمیکند. در
حال حاضر،
تنها اعمال
مسیرهای
پایه بر
فایلهایی
امکانپذیر
است که در
سطحی
پایینتر
در درخت
دایرکتوری
قرار
دارند.
--report-progress
گزارش
روند
پیشرفت
هنگام
بررسی یک
فایل.
--report-type=<type>
افزودن
فیلدهای
راهنما و
ردهبندی
برای
استاندارد
کدنویسی
مشخصشده.
نوعهای
گزارش در
دسترس
عبارتند از:
normal
پیشفرض،
فقط شناسه
خطای cppcheck و شدت
آن نمایش
داده
میشود)
autosar
Autosar
cert-c-2016
Cert C 2016
cert-cpp-2016
Cert C++ 2016
misra-c-2012
Misra C 2012
misra-c-2023
Misra C 2023
misra-c-2025
Misra C 2025
misra-cpp-2008
Misra C++ 2008
misra-cpp-2023
Misra C++ 2023
--rule=<rule>
تطبیق
عبارت
باقاعده (regular expression)
برای ایجاد
بررسیهای
دلخواه
خودتان. به
عنوان
مثال،
قاعده "/ 0"
میتواند
برای بررسی
تقسیم بر
صفر به کار
رود. این
دستور تنها
در صورتی در
دسترس است
که cppcheck با HAVE_RULES=yes
کامپایل
شده باشد.
--rule-file=<file>
--showtime=<mode>
نمایش
اطلاعات
زمانبندی.
حالتهای
موجود
عبارتند از:
none
چیزی
نمایش داده
نشود
(پیشفرض)
file
نمایش
برای هر
فایل
پردازششده
file-total
نمایش کل
زمان تنها
برای هر
فایل
پردازششده
summary
نمایش
خلاصهای
در پایان
top5_file
نمایش ۵
مورد برتر
برای هر
فایل
پردازششده
top5_summary
نمایش
خلاصهای
از ۵ مورد
برتر در
پایان
--std=<id>
تعیین
استاندارد.
گزینههای
موجود
عبارتند از:
c89
کد C با C89
سازگار
است
c99
کد C با C99
سازگار
است
c11
کد C با C11
سازگار است
(پیشفرض)
c++03
کد C++ با C++03
سازگار
است
c++11
کد C++ با C++11
سازگار است
c++14
کد C++ با C++14
سازگار
است.
c++17
کد C++ با C++17
سازگار
است.
c++20
کد C++ با C++20
سازگار است
(پیشفرض).
--suppress=<spec>
نادیدهگیری
یک هشدار
خاص. قالب <spec>
به این صورت
است: [error id]:[filename]:[line].
مقادیر [filename] و [line]
اختیاری
هستند.
مقدار [error id]
میتواند *
باشد تا
تمام
هشدارها
(برای یک
فایل یا
فایلهای
مشخصشده)
نادیده
گرفته شوند.
[filename] میتواند
شامل
نویسههای
عام * یا ?
باشد.
--suppressions-list=<file>
هشدارهای
فهرستشده
در فایل را
نادیده
میگیرد. هر
مورد
نادیدهگیری
مطابق قالب
<spec> در بالا
است.
--suppress-xml=<.xml file>
استفاده
از موارد
نادیدهگیری
تعریفشده
در xml مطابق
توضیحات
دفترچهٔ
راهنما.
--template='<text>'
قالببندی
پیامهای
خطا. برای
نمونه:
'{file}:{line},{severity},{id},{message}' یا
'{file}({line}):({severity}) {message}'.
الگوهای از
پیشتعریفشده:
gcc, vs.
-v, --verbose
گزارشهای
خطای با
جزئیات
بیشتر.
--version
نمایش
اطلاعات
نسخه.
--xml
نوشتن
نتایج با
قالب XML در
جریان خطا
(stderr).
--xml-version=<version>
انتخاب
نسخهٔ فایل XML.
همچنین
گزینهٔ --xml را
نیز اعمال
میکند. در
حال حاضر
تنها نسخهٔ 2
در دسترس
است. نسخهٔ
پیشفرض 2
است.