| CLAZY(1) | KDAB | CLAZY(1) |
نام (NAME)
clazy - تحلیلگر ایستا کد منبع برای C++ مبتنی بر Qt5
خلاصه دستور (SYNOPSIS)
clazy [گزینهها] [گزینههای-clang++]
توضیحات (DESCRIPTION)
ابزار clazy کد منبع C++/Qt را برای یافتن مشکلات مربوط به شیوههای مناسب کدنویسی در Qt5 بررسی میکند. در استفاده معمول، هنگام کامپایل کد با clazy، هرگونه هشدار از این دست مانند هشدارهای معمولی کامپایلر در خروجی چاپ میشود.
ابزار clazy در برخی موارد قابلیت «اصلاح» کد مشکلدار را دارد. برای اطلاعات بیشتر، توضیحات متغیر محیطی CLAZY_FIXIT را در ادامه ببینید.
گزینهها (OPTIONS)
- --help
- چاپ پیام راهنما و خروج.
- --version
- چاپ اطلاعات نسخه و خروج.
- --list
- چاپ فهرستی از تمام بررسیکنندههای موجود، مرتبشده بر اساس سطح.
- --explain
- چاپ توضیحات برای تمامی بررسیکنندهها.
- --explain <regexp>
- چاپ توضیحات برای بررسیکنندههای منطبق با عبارت منظم مشخصشده.
هر یک از گزینههای بالا اطلاعات درخواستی را چاپ کرده و سپس خارج میشوند.
- --qtdeveloper
- فقط برای
توسعهدهندگان
Qt. این گزینه
مخصوص
اجرای clazy روی
خود کد
چارچوب Qt
است. موجب
کاهش گزارش
موارد مثبت
کاذب در کد Qt
میشود.
این یک گزینه کمکی است که دقیقاً معادل ارسال مستقیم پارامتر زیر است:
"-Xclang -plugin-arg-clazy -Xclang qt-developer"
تمامی گزینههای دیگر مستقیماً به clang++ ارسال شده و از آنجا پردازش میشوند.
برای مشاهده فهرست بسیار بزرگ گزینههای موجود به راهنمای clang مراجعه کنید، اما در کاربری عادی، شما کد خود را با clazy دقیقاً همانطور «کامپایل» میکنید که با clang کامپایل میکردید.
مثالها (EXAMPLES)
- چاپ فهرستی از تمام بررسیکنندههای موجود، مرتبشده بر اساس سطح بررسی:
-
% clazy --list List of available clazy checkers: Checks from level0. Very stable checks, 100% safe, no false-positives: connect-non-signal container-anti-pattern lambda-in-connect mutable-container-key qdatetime-utc qenums qfileinfo-exists ....
- کامپایل پروژه CMake با بررسیکنندههای پیشفرض clazy:
-
% cmake -DCMAKE_CXX_COMPILER=clazy <other_cmake_options> سپس اجرای make طبق روال عادی
- کامپایل پروژه CMake تنها با بررسیهای level2 (در سیستمهای غیر ویندوزی):
-
% export CLAZY_CHECKS="level2" % cmake -DCMAKE_CXX_COMPILER=clazy <other_cmake_options> سپس اجرای make طبق روال عادی
- کامپایل پروژه qmake با بررسیکنندههای پیشفرض clazy:
-
% qmake -spec linux-clang QMAKE_CXX=clazy <other_qmake_options> سپس اجرای make طبق روال عادی
دستورالعملهای درونکد (IN-CODE DIRECTIVES)
ابزار clazy از فهرست دستورالعملهای درونکد زیر پشتیبانی میکند:
- clazy:skip
-
معاف کردن کل یک فایل از تمام بررسیها. هیچ تست clazy روی این فایل اجرا نخواهد شد.
- clazy:excludeall=<name1[,name2,...,nameN]>
-
معاف کردن کل فایل از بررسیهای مشخصشده. بررسیهای clazy با نامهای name1 و غیره روی این فایل اجرا نخواهند شد.
- clazy:exclude=<name1[,name2,...,nameN]>
-
مستثنی کردن خطهای مشخص از بررسیهای خاص. بررسیهای clazy با نامهای name1 و غیره روی خطی که این دستورالعمل در آن قرار دارد اجرا نخواهند شد.
- clazy:exclude-next-line=<name1[,name2,...,nameN]>
-
مستثنی کردن خط بعدی از بررسیهای مشخصشده clazy.
پیشوند 'clazy-' را وارد نکنید. برای مثال، جهت غیرفعال کردن بررسی "qstring-allocations"، مینویسید:
// clazy:exclude=qstring-allocations
و نه
// clazy:exclude=clazy-qstring-allocations
همچنین توجه داشته باشید که این دستورالعملها باید به سبک کامنتهای C++ باشند؛ کامنتهای سبک C نادیده گرفته میشوند.
محیط (ENVIRONMENT)
CLAZY_CHECKS - فهرستی از بررسیکنندهها یا مجموعههای بررسی جداشده با کاما برای اجرا. بهطور پیشفرض، تمامی بررسیکنندههای مجموعههای "level0" و "level1" اجرا خواهند شد.
مثالها:
- ۱. فعالسازی تنها دو بررسیکننده "unneeded-cast" و "virtual-call-ctor":
- % export CLAZY_CHECKS="unneeded-cast,virtual-call-ctor"
- ۲. فعالسازی تمام بررسیهای مجموعه "level0" به جز "qenums":
- % export CLAZY_CHECKS="level0,no-qenums"
- ۳. فعالسازی تمام بررسیهای مجموعه "level0" همراه با بررسیکننده "detaching-temporary":
- % export CLAZY_CHECKS="level0,detaching-temporary"
CLAZY_FIXIT - برخی از بررسیکنندهها قادرند هرگاه به کدی برخوردند که توانایی «اصلاح» آن را دارند، کد منبع را بهطور خودکار بازنویسی کنند. این قابلیت اصلاح را با تنظیم این متغیر روی نام بررسیکنندهای که قابلیت اصلاح دارد فعال کنید.
مثالها:
- ۱. اصلاح تخصیصهای qlatin1string:
- % export CLAZY_FIXIT="fix-qlatin1string-allocations"
- ۲. اصلاح دستورهای connect سبک قدیمی (موارد ساده):
- % export CLAZY_FIXIT=fix-old-style-connect
توضیحات بیشتر هنگام اجرای clazy با گزینه خط فرمان --explain ارائه میشود.
همچنین توجه داشته باشید که در هر زمان تنها ۱ بررسیکننده fixit میتواند اجرا شود.
CLAZY_EXTRA_OPTIONS - برخی از بررسیکنندهها میتوانند رفتار خود را بر اساس مقدار این متغیر محیطی تطبیق دهند. توضیحات بیشتر هنگام اجرای clazy با گزینه خط فرمان --explain ارائه میشود.
CLAZY_NO_WERROR - در صورت تنظیم این متغیر، clazy با هشدارها مانند خطا رفتار نمیکند، حتی اگر گزینه -Werror کامپایلر مشخص شده باشد. این قابلیت زمانی مفید است که بخواهید -Werror فقط برای هشدارهای عادی gcc/clang اعمال شود و نه هشدارهای clazy.
CLAZY_CHECKS_AS_ERRORS - فهرست جداشده با کاما از بررسیهایی که به خطاهای کامپایلر ارتقا مییابند. توجه داشته باشید که این کار بررسیهای مشخصشده در اینجا را فعال نمیکند.
CLAZY_IGNORE_DIRS - عبارت منظم برای مسیرهایی که باید از پردازش مستثنی شوند. برای مثال:
% export CLAZY_IGNORE_DIRS=".*my_qt_folder.*"
حق نشر و مجوز (COPYRIGHT AND LICENSE)
Copyright (C) 2015-2017 Klaralvdalens Datakonsult AB, a KDAB Group company, <info@kdab.com>
این کتابخانه یک نرمافزار آزاد است؛ شما میتوانید آن را تحت شرایط مجوز عمومی جامع کمتر گنو (GNU LGPL) همانطور که توسط بنیاد نرمافزارهای آزاد منتشر شده است، چه نسخه ۲.۱ مجوز یا (به انتخاب خودتان) هر نسخه بعدی بازنشر نموده یا تغییر دهید.
این کتابخانه به این امید توزیع شده است که مفید واقع شود، اما بدون هیچگونه ضمانتی؛ حتی بدون ضمانت ضمنی قابلیت فروش یا مناسب بودن برای یک هدف خاص. برای جزئیات بیشتر به مجوز عمومی جامع کمتر گنو مراجعه کنید.
شما باید همراه با این کتابخانه نسخهای از مجوز عمومی جامع کمتر گنو را دریافت کرده باشید. در غیر این صورت به http://www.gnu.org/licenses نگاه کنید.
همچنین ببینید (SEE ALSO)
clang(1) https://www.kdab.com/use-static-analysis-improve-performance
نویسندگان (AUTHORS)
Sergio Martins <sergio.martins@kdab.com> Laurent Montel <laurent.montel@kdab.com> Allen Winter <allen.winter@kdab.com> Albert Astals Cid <aacid@kde.org> Aurélien Gâteau <agateau@kde.org> Kevin Funk <kevin.funk@kdab.com> Hannah von Reth <hannah.vonreth@kdab.com> Volker Krause <volker.krause@kdab.com> Christian Ehrlicher <Ch.Ehrlicher@gmx.de> Mathias Hasselmann <mathias.hasselmann@kdab.com>
| 2026-03-23 | 1.17.1 |