| Mono(cccheck) | Mono(cccheck) |
نام (NAME)
cccheck - انجام اعتبارسنجی ایستای قراردادهای کد برای اسمبلیهای CLR
خلاصه دستور (SYNOPSIS)
cccheck --assembly=<assembly> [options]
توضیحات (DESCRIPTION)
اعتبارسنجی ایستای قراردادهای کد (code contracts) را جهت یافتن باگها و ناسازگاریهای میان کد و مشخصات (specification) انجام میدهد. این شامل تحلیلهای non-null و اعداد صحیح (integer) میشود.
اسمبلی باید با تعریف نماد CONTRACTS_FULL کامپایل شده باشد، در غیر این صورت فراخوانیهای متدهای قرارداد توسط کامپایلر حذف خواهند شد.
در حال حاضر تنها متدهای Contract.Assume() و Contract.Assert() پشتیبانی میشوند. فقط تحلیل non-null پشتیبانی میشود و تحلیلهای بعدی در حال توسعه هستند. اگر cccheck نتواند تمام یا برخی از متدهای اسمبلی مشخصشده را پردازش کند، یک پیام خطا نمایش داده خواهد شد.
گزینههای پیکربندی (CONFIGURATION OPTIONS)
- --assembly <assembly-name>
- اسمبلی مورد نظر برای انجام اعتبارسنجی ایستا.
- --debug
- اطلاعات اشکالزدایی دربارهٔ فرایند اثبات ادعاها (assertions) را نمایش میدهد. این گزینه چهار لایهٔ انتزاع را نشان میدهد: لایهٔ خام (raw layer)، لایهٔ پشته (stack layer)، لایهٔ هیپ (heap layer) و سطح عبارات جایگزینشده (substituted expression level).
- --method=<method-name-substring>
- رشتهای برای یافتن متد. این گزینه تمام متدهای موجود در اسمبلی را که نام آنها شامل این پارامتر بهصورت زیررشته باشد، فیلتر میکند.
- --help
- نمایش راهنمای cccheck همراه با فهرست کردن گزینههای پیکربندی.
مثالها (EXAMPLES)
- فرض کنید متدی به شکل زیر دارید:
-
void Method() {
object x = null;
int y = 1;
if (y % 2 == 1)
x = new object();
else
x = new string();
Contract.Assert(x != null); }پس از اعتبارسنجی، نتایج ابزار در قالب زیر خواهد بود: "Assertion at : [Subroutine: <id> Block <blockId> PC <id>] :
is (true|false|unproven|unreachable)". (PC شمارندهٔ برنامه یا program counter است)
نویسندگان (AUTHORS)
نوشتهشده توسط Alexander Chebaturkin
کپیرایت و تکثیر (COPYRIGHT)
حق نشر (Copyright) 2011 متعلق به Alexander Chebaturkin است. تحت مجوز MIT منتشر شده است.
وبگاه (WEB SITE)
برای جزئیات بیشتر به http://www.mono-project.com مراجعه کنید