Ман як нашрияеро дидам, ки PVS тањлилро дар зери Linux омўхтааст ва тасмим гирифт, ки онро дар лоињањои худам санљам. Ва ин аст он чизе ки аз он баромад.
Мутаассифона, PVS баъзан хатогиҳои синтаксисиро мекунад ва ҳангоми комилан дуруст будани код паёмҳои мусбати бардурӯғ тавлид мекунад.
Масалан, функсияе вуҷуд дорад, ки бармегардад void:
template <typename T>
auto copy (const void * source, void * destination)
->
std::enable_if_t
<
std::is_copy_constructible<T>::value
>
{
new (destination) T(*static_cast<const T *>(source));
}
Бале калимаи калидӣ auto Дар назар дошта метавонад void, ин барои он аст мошин. Аммо PVS паёмҳои зеринро истеҳсол кард:
dynamic_tuple_management.hpp:29:1: error: V591 Non-void function should return a value.
dynamic_tuple_management.hpp:29:1: error: V2542 Function with a non-void return type should return a value from all exit paths.
Сайти хеле суст
Бале, дар интерфейси веб дар паҳлӯи ҳар як паём истинод ба тавсифи ташхиси мувофиқ бо мисолҳо мавҷуд аст. Аммо вақте ки шумо истинодро пахш мекунед, шумо бояд муддати тӯлонӣ интизор шавед ва баъзан ин рӯй медиҳад Вақти тамомшавии 504 Gateway.
забон
Ҳама тавсифҳо бо забони русӣ ҳастанд, ки ин хеле хуб аст. Аммо истинодҳо аз гузориш ҳамеша ба версияи англисӣ оварда мерасонанд. Хуб мешуд, ки забонро иваз карда тавонед, то дарҳол ташхисро бо забони русӣ бинед. Ман чунин вариантро дар интерфейс наёфтам.
Кор бо сатҳҳои ташхис тавассути консол номувофиқ аст
Биёед аз он оғоз кунем, ки ин ду фармон истифода шудаанд (ин pvs-studio-analyzer и plog-converter) форматҳои гуногун барои муайян кардани ташхис.
Кӯмак барои pvs-studio-analyzer мехонад:
-a [MODE], --analysis-mode [MODE]
MODE defines the type of warnings:
1 - 64-bit errors;
2 - reserved;
4 - General Analysis;
8 - Micro-optimizations;
16 - Customers Specific Requests;
32 - MISRA.
Modes can be combined by adding the values
Default: 4
Илова бар ин, як коммуналӣ низ вуҷуд дорад plog-converter, ки иттилооти таҳлили статикиро, ки барои одамон хондан мумкин аст, тавлид мекунад. Вай мушкилоти дигар дорад.
Кӯмак барои барнома plog-converter маърӯзаҳо:
-a, --analyzer Specifies analyzer(s) and level(s) to be
used for filtering, i.e.
'GA:1,2;64:1;OP:1,2,3;CS:1;MISRA:1,2'
Default: GA:1,2
Дар ин ҷо баъзе "сатҳҳо" пайдо шуданд, ки қаблан вуҷуд надоштанд ва ман дар ҳуҷҷатҳо низ дар бораи онҳо чизе наёфтам.
Умуман, маълум нест. Аз ин рӯ, ман ҳама чизро ба ҳадди аксар гузоштам.
Як хӯшаи дашномҳои аблаҳона дар бораи Catch
Аз се лоиҳаи ман дутоаш аз китобхонаи санҷишии воҳид истифода мебаранд Catch2. Ва ҳиссаи шер аз паёмҳо (!!! 90 аз 138 дар як ва 297 аз 344 дар дигар!!!) шакли зерин дорад:
Якчанд риштаро ба назар намегирад
Дар бораи тағирёбандаҳои гӯё тағирнаёбанда ё ҳалқаҳои беохир бисёр мусбатҳои бардурӯғ мавҷуданд, дар ҳоле ки кор бо ин тағирёбандаҳо аз риштаҳои гуногун сурат мегирад ва агар ин тавр намебуд, санҷишҳои воҳидҳо кор намекунанд.