PVS-Studio یک ابزار برای تشخیص باگ در کد منبع برنامههایی است که بر اساس C، C++ و C# نوشته شدهاند. این برنامه در محیط ویندوز و لینوکس کار میکند.
PVS-Studio تجزیه و تحلیل استاتیک کد را انجام میدهد و سپس گزارشی تهیه میکند که به یک برنامهنویس کمک میکند باگها را پیدا و رفع کند. PVS-Studio طیف گستردهای از چکهای کد را اجرا میکند، همچنین برای جستجوی اشتباهات چاپی و خطاهای کپی-پیست نیز مفید است. مثالهایی از چنین خطاهایی: V501، V517، V522، V523، V3001 هستند.
ارزش اصلی تحلیل و تجزیه استاتیک در استفاده منظم از آن است، به این منظور که خطاها در مراحل اولیه تشخیص داده شده و رفع شوند. هدر دادن ۵۰ ساعت زمان برای جستجوی باگی که به راحتی میتواند با تجزیه و تحلیل استاتیک پیدا شود فایدهای ندارد. پس، باید اشاره کنم که ایده اصلی تجزیه و تحلیل استاتیک پیدا کردن یک باگ مخفی یک روز قبل از انتشار نیست، بلکه رفع دهها باگ به صورت روزانه است.
تحلیلکننده میتواند هر شب روی سرور اجرا شود و قطعههای کدی مشکوک را هشدار دهد. در وضع مطلوب، این خطاها میتوانند قبل از اینکه وارد مرکز شوند، تشخیص داده شده و رفع شوند. PVS-Studio میتواند به طور خودکار بلافاصله بعد از کامپایلر برای فایلهایی که تازه تعمیر شدهاند، راهاندازی شود. این برنامه در محیط ویندوز و لینوکس کار میکند.
شروع سریع در ویندوز و لینوکس
PVS-Studio میتواند در محیط توسعه ویژوال استودیو ۲۰۱۰-۲۰۱۵ ترکیب شود. اگر شما از این محیط توسعه استفاده میکنید، پس به احتمال زیاد باید به منوی پلاگین PVS-Studio رفته و ” Check Current Project” را انتخاب کنید.
اغلب، این فرایند می تواند پیچیدهتر هم شود و نیاز پیدا میکنید که PVS-Studio را درون حتی یک نوع نامتعارف بیلد سیستم (build system) پیادهسازی کنید. مسئله پیادهسازی یا ترکیب بسیار گسترده و در اینجا قابل توصیف نیست.
یک نکته قابل توجه دیگر هم این است که PVS-Studio برای ویندوز و لینوکس امکانات خاصی دارد و اطلاعات در مورد راهاندازی کامپایلر را جمعآوری میکند. این ابزار امکان انجام یک تحلیل سریع از یک پروژه که به هر روش ممکنی کامپایل میشود را فراهم میکند. شما میتوانید بدون هدر دادن زمان روی پیادهسازی آن با makefile یا یک اسکریپت ساز به سرعت قابلیتهای تحلیل گر را امتحان کنید.
تکنولوژی تحلیل
• تحلیل مبتنی بر الگو بر اساس یک درخت نحو انتزاعی برای جستجوی قطعات در کد منبع استفاده میشود که مشابه الگوهای کدی شناخته شده با یک خطا هستند.
• نوع استنباطی بر اساس مدل معنایی برنامه به تحلیل گر اجازه میدهد اطلاعات کاملی در مورد همه متغیرها و عبارات در کد داشته باشد.
• اجرای نمادین امکان ارزیابی مقادیر متغیرهایی که ممکن است منجر به خطا شوند و بررسی وسیعی از مقادیر را انجام دهند را میدهد.
• تحلیل جریان دادهها برای ارزیابی محدودیتهایی استفاده میشود که هنگام پردازش ساختارهای زبانی مختلف روی مقادیر متغیرها اعمال میشود. برای مثال، مقادیری که یک متغیر در صورت مسدود کردن متغیر دیگر میتواند بگیرد.
• توضیحات متد، اطلاعات بیشتری درباره متدهای استفاده شده ارائه میدهند که میتوان با تنها تحلیل امضاهای آنها به دست آورد،.
ویژگیهای اصلی PVS-Studio
• ادغام ساده و یکپارچه با ویژوال استودیو ۲۰۱۰-۲۰۱۵
• تحلیل خودکار فایلهای شخصی بعد از کامپایل مجدد آنها
• مرجع راهنمای آنلاین درباره همه شیوههای عیب یابی موجود در برنامه، روی وبسایت و اسناد (ارائه شده در فایل پیدیاف) تا ۴۰۰ صفحه اسناد.
• ذخیره و بارگذاری نتایج تحلیل امکان بررسیهای شبانه را میدهد- در طول شب تحلیل گر اسکن را انجام میدهد و صبحها نتایج را به شما ارائه میدهد.
• تحلیل پروژه از خط فرمان اجرا میشود: به پیاده¬سازی PVS-Studio در ساختهای شبانه کمک میکند؛ یک ثبت وقایع جدید در صبح ارائه میدهد.
• پشتیبانی مقیاسپذیری بزرگ سیستمهای چندهستهای و چند پردازندهای با امکان تعیین تعداد هستهها برای استفاده؛ پشتیبانی IncrediBuild
• فیلترینگ متقابل نتایج تحلیل (فایل لاگ) در پنجره PVS-Studio؛ توسط شماره عیب یابی ها، نام فایل، واژه کلیدی در متن عیب یابی.
• چک خودکار آپدیتهای PVS-Studio (در طول کار در IDE و ساختهای شبانه).
• قابلیت BlameNotifier. ابزاری که به شما امکان میدهد که نوتیفیکیشن هایی به صورت ایمیل درباره باگهایی که PVS-Studio در طول یک اجرای شبانه پیدا کرد را به توسعه دهنده ارسال کنید.
• تعداد زیادی از گزینهها برای پیاده¬سازی در پروژههای توسعه یافته تحت لینوکس
• علامت گذاری به عنوان هشدار اشتباه- قابلیت علامتگذاری کد برای توقف یک فرایند عیب یابی خاص در یک قطعه کدی بخصوص.
• توقف انبوه- توانایی توقف همه پیامهای قدیمی به وجود آمده برای کد موروثی؛ به این منظور که تحلیل گر تعداد ۰ هشدار را گزارش میدهد. شما همیشه میتوانید بعداً به پیامهای موقوف شده مراجعه کنید. این ویژگی به شما اجازه میدهد که به صورت یکپارچه PVS-Studio را در فرایند توسعه خود پیاده سازی کرده و فقط روی خطاهای پیدا شده در کد جدید تمرکز کنید.
• آمار خطاها را میتوان در اکسل مشاهده کرد. قابلیت مشاهده سرعت تصحیح خطا، تعداد باگهای پیدا شده برای یک دوره خاص زمانی و غیره.
• مسیرهای نسبی در فایلهای گزارش برای مشاهده آنها روی دستگاههای مختلف.
• ویژگی CLMonitoring امکان تحلیل پروژههایی که هیچ فایل ویژوال استودیویی ندارند را میدهد (.sln/.vcxproj). در مواردی که قابلیت CLMonitoring کافی نباشد، امکان پیاده سازی PVS-Studio در یک بیلد سیستم مبتنی بر Makefile به صورت دستی وجود دارد.
• تحلیل گر PVS-Studio- ابزاری مشابه به CLMonitoring، اما تحت لینوکس کار میکند.
• امکان حذف فایلها از فرایند تحلیل بر اساس نام، فولدر یا پوشش؛ برای اجرای تحلیل روی فایلهای اصلاح شده در طول N روز آخر.
• ادغام با SonarQube. این یک پلت فرم متن باز است که برای تحلیل و سنجش مداوم کیفیت کد طراحی شده است.
زبانها و کامپایلرهای پشتیبانی کننده
• Windows. Visual Studio 2015 C, C++, C++/CLI, C++/CX (WinRT), C#
• Windows. Visual Studio 2013 C, C++, C++/CLI, C++/CX (WinRT), C#
• Windows. Visual Studio 2012 C, C++, C++/CLI, C++/CX (WinRT), C#
• Windows. Visual Studio 2010 C, C++, C++/CLI, C#
• Windows. MinGW C, C++
• Windows/Linux. Clang C, C++
• Linux. GCC C, C++
نظرات کاربران