Карта сайта
- Ошибки, обнаруженные в Open Source проектах разработчиками PVS-Studio с помощью статического анализа
- Примеры ошибок, обнаруженных с помощью диагностики V501
- Примеры ошибок, обнаруженных с помощью диагностики V502
- Примеры ошибок, обнаруженных с помощью диагностики V503
- Примеры ошибок, обнаруженных с помощью диагностики V505
- Примеры ошибок, обнаруженных с помощью диагностики V507
- Примеры ошибок, обнаруженных с помощью диагностики V509
- Примеры ошибок, обнаруженных с помощью диагностики V510
- Примеры ошибок, обнаруженных с помощью диагностики V511
- Примеры ошибок, обнаруженных с помощью диагностики V512
- Примеры ошибок, обнаруженных с помощью диагностики V514
- Примеры ошибок, обнаруженных с помощью диагностики V516
- Примеры ошибок, обнаруженных с помощью диагностики V517
- Примеры ошибок, обнаруженных с помощью диагностики V518
- Примеры ошибок, обнаруженных с помощью диагностики V519
- Примеры ошибок, обнаруженных с помощью диагностики V520
- Примеры ошибок, обнаруженных с помощью диагностики V521
- Примеры ошибок, обнаруженных с помощью диагностики V522
- Примеры ошибок, обнаруженных с помощью диагностики V523
- Примеры ошибок, обнаруженных с помощью диагностики V524
- Примеры ошибок, обнаруженных с помощью диагностики V525
- Примеры ошибок, обнаруженных с помощью диагностики V526
- Примеры ошибок, обнаруженных с помощью диагностики V527
- Примеры ошибок, обнаруженных с помощью диагностики V528
- Примеры ошибок, обнаруженных с помощью диагностики V529
- Примеры ошибок, обнаруженных с помощью диагностики V530
- Примеры ошибок, обнаруженных с помощью диагностики V531
- Примеры ошибок, обнаруженных с помощью диагностики V532
- Примеры ошибок, обнаруженных с помощью диагностики V533
- Примеры ошибок, обнаруженных с помощью диагностики V535
- Примеры ошибок, обнаруженных с помощью диагностики V536
- Примеры ошибок, обнаруженных с помощью диагностики V537
- Примеры ошибок, обнаруженных с помощью диагностики V538
- Примеры ошибок, обнаруженных с помощью диагностики V540
- Примеры ошибок, обнаруженных с помощью диагностики V541
- Примеры ошибок, обнаруженных с помощью диагностики V542
- Примеры ошибок, обнаруженных с помощью диагностики V543
- Примеры ошибок, обнаруженных с помощью диагностики V547
- Примеры ошибок, обнаруженных с помощью диагностики V549
- Примеры ошибок, обнаруженных с помощью диагностики V550
- Примеры ошибок, обнаруженных с помощью диагностики V554
- Примеры ошибок, обнаруженных с помощью диагностики V556
- Примеры ошибок, обнаруженных с помощью диагностики V557
- Примеры ошибок, обнаруженных с помощью диагностики V559
- Примеры ошибок, обнаруженных с помощью диагностики V560
- Примеры ошибок, обнаруженных с помощью диагностики V561
- Примеры ошибок, обнаруженных с помощью диагностики V562
- Примеры ошибок, обнаруженных с помощью диагностики V563
- Примеры ошибок, обнаруженных с помощью диагностики V564
- Примеры ошибок, обнаруженных с помощью диагностики V565
- Примеры ошибок, обнаруженных с помощью диагностики V567
- Примеры ошибок, обнаруженных с помощью диагностики V568
- Примеры ошибок, обнаруженных с помощью диагностики V570
- Примеры ошибок, обнаруженных с помощью диагностики V571
- Примеры ошибок, обнаруженных с помощью диагностики V572
- Примеры ошибок, обнаруженных с помощью диагностики V575
- Примеры ошибок, обнаруженных с помощью диагностики V576
- Примеры ошибок, обнаруженных с помощью диагностики V578
- Примеры ошибок, обнаруженных с помощью диагностики V579
- Примеры ошибок, обнаруженных с помощью диагностики V581
- Примеры ошибок, обнаруженных с помощью диагностики V583
- Примеры ошибок, обнаруженных с помощью диагностики V584
- Примеры ошибок, обнаруженных с помощью диагностики V586
- Примеры ошибок, обнаруженных с помощью диагностики V587
- Примеры ошибок, обнаруженных с помощью диагностики V588
- Примеры ошибок, обнаруженных с помощью диагностики V590
- Примеры ошибок, обнаруженных с помощью диагностики V591
- Примеры ошибок, обнаруженных с помощью диагностики V592
- Примеры ошибок, обнаруженных с помощью диагностики V593
- Примеры ошибок, обнаруженных с помощью диагностики V594
- Примеры ошибок, обнаруженных с помощью диагностики V595
- Примеры ошибок, обнаруженных с помощью диагностики V597
- Примеры ошибок, обнаруженных с помощью диагностики V598
- Примеры ошибок, обнаруженных с помощью диагностики V599
- Примеры ошибок, обнаруженных с помощью диагностики V600
- Примеры ошибок, обнаруженных с помощью диагностики V601
- Примеры ошибок, обнаруженных с помощью диагностики V603
- Примеры ошибок, обнаруженных с помощью диагностики V604
- Примеры ошибок, обнаруженных с помощью диагностики V606
- Примеры ошибок, обнаруженных с помощью диагностики V607
- Примеры ошибок, обнаруженных с помощью диагностики V610
- Примеры ошибок, обнаруженных с помощью диагностики V611
- Примеры ошибок, обнаруженных с помощью диагностики V612
- Примеры ошибок, обнаруженных с помощью диагностики V614
- Примеры ошибок, обнаруженных с помощью диагностики V617
- Примеры ошибок, обнаруженных с помощью диагностики V624
- Примеры ошибок, обнаруженных с помощью диагностики V627
- Примеры ошибок, обнаруженных с помощью диагностики V629
- Примеры ошибок, обнаруженных с помощью диагностики V631
- Примеры ошибок, обнаруженных с помощью диагностики V636
- Примеры ошибок, обнаруженных с помощью диагностики V637
- Примеры ошибок, обнаруженных с помощью диагностики V640
- Примеры ошибок, обнаруженных с помощью диагностики V642
- Примеры ошибок, обнаруженных с помощью диагностики V645
- Примеры ошибок, обнаруженных с помощью диагностики V648
- Примеры ошибок, обнаруженных с помощью диагностики V649
- Примеры ошибок, обнаруженных с помощью диагностики V656
- Примеры ошибок, обнаруженных с помощью диагностики V665
- Примеры ошибок, обнаруженных с помощью диагностики V668
- Примеры ошибок, обнаруженных с помощью диагностики V618
- Примеры ошибок, обнаруженных с помощью диагностики V634
- Примеры ошибок, обнаруженных с помощью диагностики V635
- Примеры ошибок, обнаруженных с помощью диагностики V669
- Примеры ошибок, обнаруженных с помощью диагностики V513
- Примеры ошибок, обнаруженных с помощью диагностики V573
- Примеры ошибок, обнаруженных с помощью диагностики V596
- Примеры ошибок, обнаруженных с помощью диагностики V546
- Примеры ошибок, обнаруженных с помощью диагностики V555
- Примеры ошибок, обнаруженных с помощью диагностики V628
- Примеры ошибок, обнаруженных с помощью диагностики V666
- Примеры ошибок, обнаруженных с помощью диагностики V558
- Примеры ошибок, обнаруженных с помощью диагностики V620
- Примеры ошибок, обнаруженных с помощью диагностики V678
- Примеры ошибок, обнаруженных с помощью диагностики V545
- Примеры ошибок, обнаруженных с помощью диагностики V605
- Примеры ошибок, обнаруженных с помощью диагностики V621
- Примеры ошибок, обнаруженных с помощью диагностики V646
- Примеры ошибок, обнаруженных с помощью диагностики V654
- Примеры ошибок, обнаруженных с помощью диагностики V676
- Примеры ошибок, обнаруженных с помощью диагностики V674
- Примеры ошибок, обнаруженных с помощью диагностики V534
- Примеры ошибок, обнаруженных с помощью диагностики V663
- Примеры ошибок, обнаруженных с помощью диагностики V625
- Примеры ошибок, обнаруженных с помощью диагностики V639
- Примеры ошибок, обнаруженных с помощью диагностики V662
- Примеры ошибок, обнаруженных с помощью диагностики V684
- Примеры ошибок, обнаруженных с помощью диагностики V655
- Примеры ошибок, обнаруженных с помощью диагностики V506
- Примеры ошибок, обнаруженных с помощью диагностики V670
- Примеры ошибок, обнаруженных с помощью диагностики V677
- Примеры ошибок, обнаруженных с помощью диагностики V616
- Примеры ошибок, обнаруженных с помощью диагностики V609
- Примеры ошибок, обнаруженных с помощью диагностики V622
- Примеры ошибок, обнаруженных с помощью диагностики V626
- Примеры ошибок, обнаруженных с помощью диагностики V630
- Примеры ошибок, обнаруженных с помощью диагностики V638
- Примеры ошибок, обнаруженных с помощью диагностики V650
- Примеры ошибок, обнаруженных с помощью диагностики V653
- Примеры ошибок, обнаруженных с помощью диагностики V681
- Примеры ошибок, обнаруженных с помощью диагностики V690
- Примеры ошибок, обнаруженных с помощью диагностики V692
- Примеры ошибок, обнаруженных с помощью диагностики V696
- Примеры ошибок, обнаруженных с помощью диагностики V701
- Примеры ошибок, обнаруженных с помощью диагностики V705
- Примеры ошибок, обнаруженных с помощью диагностики V641
- Примеры ошибок, обнаруженных с помощью диагностики V643
- Примеры ошибок, обнаруженных с помощью диагностики V694
- Примеры ошибок, обнаруженных с помощью диагностики V695
- Примеры ошибок, обнаруженных с помощью диагностики V704
- Примеры ошибок, обнаруженных с помощью диагностики V712
- Примеры ошибок, обнаруженных с помощью диагностики V713
- Примеры ошибок, обнаруженных с помощью диагностики V716
- Примеры ошибок, обнаруженных с помощью диагностики V718
- Примеры ошибок, обнаруженных с помощью диагностики V548
- Примеры ошибок, обнаруженных с помощью диагностики V671
- Примеры ошибок, обнаруженных с помощью диагностики V672
- Примеры ошибок, обнаруженных с помощью диагностики V673
- Примеры ошибок, обнаруженных с помощью диагностики V698
- Примеры ошибок, обнаруженных с помощью диагностики V700
- Примеры ошибок, обнаруженных с помощью диагностики V706
- Примеры ошибок, обнаруженных с помощью диагностики V711
- Примеры ошибок, обнаруженных с помощью диагностики V721
- Примеры ошибок, обнаруженных с помощью диагностики V726
- Примеры ошибок, обнаруженных с помощью диагностики V652
- Примеры ошибок, обнаруженных с помощью диагностики V719
- Примеры ошибок, обнаруженных с помощью диагностики V707
- Примеры ошибок, обнаруженных с помощью диагностики V709
- Примеры ошибок, обнаруженных с помощью диагностики V732
- Примеры ошибок, обнаруженных с помощью диагностики V3001
- Примеры ошибок, обнаруженных с помощью диагностики V3002
- Примеры ошибок, обнаруженных с помощью диагностики V3003
- Примеры ошибок, обнаруженных с помощью диагностики V3004
- Примеры ошибок, обнаруженных с помощью диагностики V3005
- Примеры ошибок, обнаруженных с помощью диагностики V3008
- Примеры ошибок, обнаруженных с помощью диагностики V3009
- Примеры ошибок, обнаруженных с помощью диагностики V3010
- Примеры ошибок, обнаруженных с помощью диагностики V3014
- Примеры ошибок, обнаруженных с помощью диагностики V3019
- Примеры ошибок, обнаруженных с помощью диагностики V3022
- Примеры ошибок, обнаруженных с помощью диагностики V3023
- Примеры ошибок, обнаруженных с помощью диагностики V3025
- Примеры ошибок, обнаруженных с помощью диагностики V3030
- Примеры ошибок, обнаруженных с помощью диагностики V3031
- Примеры ошибок, обнаруженных с помощью диагностики V730
- Примеры ошибок, обнаруженных с помощью диагностики V3012
- Примеры ошибок, обнаруженных с помощью диагностики V3013
- Примеры ошибок, обнаруженных с помощью диагностики V3020
- Примеры ошибок, обнаруженных с помощью диагностики V3021
- Примеры ошибок, обнаруженных с помощью диагностики V3024
- Примеры ошибок, обнаруженных с помощью диагностики V3027
- Примеры ошибок, обнаруженных с помощью диагностики V3029
- Примеры ошибок, обнаруженных с помощью диагностики V3032
- Примеры ошибок, обнаруженных с помощью диагностики V3038
- Примеры ошибок, обнаруженных с помощью диагностики V569
- Примеры ошибок, обнаруженных с помощью диагностики V688
- Примеры ошибок, обнаруженных с помощью диагностики V729
- Примеры ошибок, обнаруженных с помощью диагностики V733
- Примеры ошибок, обнаруженных с помощью диагностики V739
- Примеры ошибок, обнаруженных с помощью диагностики V3028
- Примеры ошибок, обнаруженных с помощью диагностики V3041
- Примеры ошибок, обнаруженных с помощью диагностики V3043
- Примеры ошибок, обнаруженных с помощью диагностики V3045
- Примеры ошибок, обнаруженных с помощью диагностики V3046
- Примеры ошибок, обнаруженных с помощью диагностики V728
- Примеры ошибок, обнаруженных с помощью диагностики V745
- Примеры ошибок, обнаруженных с помощью диагностики V746
- Примеры ошибок, обнаруженных с помощью диагностики V3035
- Примеры ошибок, обнаруженных с помощью диагностики V3061
- Примеры ошибок, обнаруженных с помощью диагностики V3065
- Примеры ошибок, обнаруженных с помощью диагностики V552
- Примеры ошибок, обнаруженных с помощью диагностики V743
- Примеры ошибок, обнаруженных с помощью диагностики V3042
- Примеры ошибок, обнаруженных с помощью диагностики V3051
- Примеры ошибок, обнаруженных с помощью диагностики V3052
- Примеры ошибок, обнаруженных с помощью диагностики V3063
- Примеры ошибок, обнаруженных с помощью диагностики V504
- Примеры ошибок, обнаруженных с помощью диагностики V539
- Примеры ошибок, обнаруженных с помощью диагностики V615
- Примеры ошибок, обнаруженных с помощью диагностики V686
- Примеры ошибок, обнаруженных с помощью диагностики V724
- Примеры ошибок, обнаруженных с помощью диагностики V734
- Примеры ошибок, обнаруженных с помощью диагностики V737
- Примеры ошибок, обнаруженных с помощью диагностики V763
- Примеры ошибок, обнаруженных с помощью диагностики V3015
- Примеры ошибок, обнаруженных с помощью диагностики V3033
- Примеры ошибок, обнаруженных с помощью диагностики V3037
- Примеры ошибок, обнаруженных с помощью диагностики V3056
- Примеры ошибок, обнаруженных с помощью диагностики V3062
- Примеры ошибок, обнаруженных с помощью диагностики V3064
- Примеры ошибок, обнаруженных с помощью диагностики V3066
- Примеры ошибок, обнаруженных с помощью диагностики V3076
- Примеры ошибок, обнаруженных с помощью диагностики V3080
- Примеры ошибок, обнаруженных с помощью диагностики V3083
- Примеры ошибок, обнаруженных с помощью диагностики V3087
- Примеры ошибок, обнаруженных с помощью диагностики V3090
- Примеры ошибок, обнаруженных с помощью диагностики V3093
- Примеры ошибок, обнаруженных с помощью диагностики V3095
- Примеры ошибок, обнаруженных с помощью диагностики V3097
- Примеры ошибок, обнаруженных с помощью диагностики V3102
- Примеры ошибок, обнаруженных с помощью диагностики V3006
- Примеры ошибок, обнаруженных с помощью диагностики V3057
- Примеры ошибок, обнаруженных с помощью диагностики V3011
- Примеры ошибок, обнаруженных с помощью диагностики V3089
- Примеры ошибок, обнаруженных с помощью диагностики V3112
- Примеры ошибок, обнаруженных с помощью диагностики V3070
- Примеры ошибок, обнаруженных с помощью диагностики V3092
- Примеры ошибок, обнаруженных с помощью диагностики V3105
- Примеры ошибок, обнаруженных с помощью диагностики V3115
- Примеры ошибок, обнаруженных с помощью диагностики V3053
- Примеры ошибок, обнаруженных с помощью диагностики V766
- Примеры ошибок, обнаруженных с помощью диагностики V3117
- Примеры ошибок, обнаруженных с помощью диагностики V3108
- Примеры ошибок, обнаруженных с помощью диагностики V3118
- Примеры ошибок, обнаруженных с помощью диагностики V3110
- Примеры ошибок, обнаруженных с помощью диагностики V764
- Примеры ошибок, обнаруженных с помощью диагностики V751
- Примеры ошибок, обнаруженных с помощью диагностики V3125
- Примеры ошибок, обнаруженных с помощью диагностики V3128
- Примеры ошибок, обнаруженных с помощью диагностики V3078
- Примеры ошибок, обнаруженных с помощью диагностики V760
- Примеры ошибок, обнаруженных с помощью диагностики V773
- Примеры ошибок, обнаруженных с помощью диагностики V623
- Примеры ошибок, обнаруженных с помощью диагностики V779
- Примеры ошибок, обнаруженных с помощью диагностики V3127
- Примеры ошибок, обнаруженных с помощью диагностики V3130
- Примеры ошибок, обнаруженных с помощью диагностики V768
- Примеры ошибок, обнаруженных с помощью диагностики V3081
- Примеры ошибок, обнаруженных с помощью диагностики V781
- Примеры ошибок, обнаруженных с помощью диагностики V778
- Примеры ошибок, обнаруженных с помощью диагностики V3018
- Примеры ошибок, обнаруженных с помощью диагностики V769
- Примеры ошибок, обнаруженных с помощью диагностики V762
- Примеры ошибок, обнаруженных с помощью диагностики V675
- Примеры ошибок, обнаруженных с помощью диагностики V786
- Примеры ошибок, обнаруженных с помощью диагностики V780
- Примеры ошибок, обнаруженных с помощью диагностики V774
- Примеры ошибок, обнаруженных с помощью диагностики V647
- Примеры ошибок, обнаруженных с помощью диагностики V715
- Примеры ошибок, обнаруженных с помощью диагностики V1001
- Примеры ошибок, обнаруженных с помощью диагностики V789
- Примеры ошибок, обнаруженных с помощью диагностики V765
- Примеры ошибок, обнаруженных с помощью диагностики V783
- Примеры ошибок, обнаруженных с помощью диагностики V1004
- Примеры ошибок, обнаруженных с помощью диагностики V1002
- Примеры ошибок, обнаруженных с помощью диагностики V794
- Примеры ошибок, обнаруженных с помощью диагностики V708
- Примеры ошибок, обнаруженных с помощью диагностики V691
- Примеры ошибок, обнаруженных с помощью диагностики V767
- Примеры ошибок, обнаруженных с помощью диагностики V796
- Примеры ошибок, обнаруженных с помощью диагностики V602
- Примеры ошибок, обнаруженных с помощью диагностики V3136
- Примеры ошибок, обнаруженных с помощью диагностики V714
- Примеры ошибок, обнаруженных с помощью диагностики V799
- Примеры ошибок, обнаруженных с помощью диагностики V793
- Примеры ошибок, обнаруженных с помощью диагностики V749
- Примеры ошибок, обнаруженных с помощью диагностики V693
- Примеры ошибок, обнаруженных с помощью диагностики V661
- Примеры ошибок, обнаруженных с помощью диагностики V757
- Примеры ошибок, обнаруженных с помощью диагностики V784
- Примеры ошибок, обнаруженных с помощью диагностики V756
- Примеры ошибок, обнаруженных с помощью диагностики V3106
- Примеры ошибок, обнаруженных с помощью диагностики V1022
- Примеры ошибок, обнаруженных с помощью диагностики V1008
- Примеры ошибок, обнаруженных с помощью диагностики V792
- Примеры ошибок, обнаруженных с помощью диагностики V1013
- Примеры ошибок, обнаруженных с помощью диагностики V6033
- Примеры ошибок, обнаруженных с помощью диагностики V6007
- Примеры ошибок, обнаруженных с помощью диагностики V6021
- Примеры ошибок, обнаруженных с помощью диагностики V6032
- Примеры ошибок, обнаруженных с помощью диагностики V6004
- Примеры ошибок, обнаруженных с помощью диагностики V6001
- Примеры ошибок, обнаруженных с помощью диагностики V6011
- Примеры ошибок, обнаруженных с помощью диагностики V6016
- Примеры ошибок, обнаруженных с помощью диагностики V6060
- Примеры ошибок, обнаруженных с помощью диагностики V702
- Примеры ошибок, обнаруженных с помощью диагностики V797
- Примеры ошибок, обнаруженных с помощью диагностики V1028
- Примеры ошибок, обнаруженных с помощью диагностики V1005
- Примеры ошибок, обнаруженных с помощью диагностики V6003
- Примеры ошибок, обнаруженных с помощью диагностики V6025
- Примеры ошибок, обнаруженных с помощью диагностики V6013
- Примеры ошибок, обнаруженных с помощью диагностики V6039
- Примеры ошибок, обнаруженных с помощью диагностики V6058
- Примеры ошибок, обнаруженных с помощью диагностики V6006
- Примеры ошибок, обнаруженных с помощью диагностики V6008
- Примеры ошибок, обнаруженных с помощью диагностики V6009
- Примеры ошибок, обнаруженных с помощью диагностики V6062
- Примеры ошибок, обнаруженных с помощью диагностики V6019
- Примеры ошибок, обнаруженных с помощью диагностики V6026
- Примеры ошибок, обнаруженных с помощью диагностики V6002
- Примеры ошибок, обнаруженных с помощью диагностики V6014
- Примеры ошибок, обнаруженных с помощью диагностики V6022
- Примеры ошибок, обнаруженных с помощью диагностики V6037
- Примеры ошибок, обнаруженных с помощью диагностики V6023
- Примеры ошибок, обнаруженных с помощью диагностики V1023
- Примеры ошибок, обнаруженных с помощью диагностики V1009
- Примеры ошибок, обнаруженных с помощью диагностики V772
- Примеры ошибок, обнаруженных с помощью диагностики V3139
- Примеры ошибок, обнаруженных с помощью диагностики V3088
- Примеры ошибок, обнаруженных с помощью диагностики V3138
- Примеры ошибок, обнаруженных с помощью диагностики V6020
- Примеры ошибок, обнаруженных с помощью диагностики V6042
- Примеры ошибок, обнаруженных с помощью диагностики V6034
- Примеры ошибок, обнаруженных с помощью диагностики V6051
- Примеры ошибок, обнаруженных с помощью диагностики V6046
- Примеры ошибок, обнаруженных с помощью диагностики V6030
- Примеры ошибок, обнаруженных с помощью диагностики V1040
- Примеры ошибок, обнаруженных с помощью диагностики V3137
- Примеры ошибок, обнаруженных с помощью диагностики V6067
- Примеры ошибок, обнаруженных с помощью диагностики V1044
- Примеры ошибок, обнаруженных с помощью диагностики V1003
- Примеры ошибок, обнаруженных с помощью диагностики V1037
- Примеры ошибок, обнаруженных с помощью диагностики V3091
- Примеры ошибок, обнаруженных с помощью диагностики V3077
- Примеры ошибок, обнаруженных с помощью диагностики V3143
- Примеры ошибок, обнаруженных с помощью диагностики V3123
- Примеры ошибок, обнаруженных с помощью диагностики V3145
- Примеры ошибок, обнаруженных с помощью диагностики V1046
- Примеры ошибок, обнаруженных с помощью диагностики V574
- Примеры ошибок, обнаруженных с помощью диагностики V619
- Примеры ошибок, обнаруженных с помощью диагностики V6010
- Примеры ошибок, обнаруженных с помощью диагностики V6050
- Примеры ошибок, обнаруженных с помощью диагностики V6005
- Примеры ошибок, обнаруженных с помощью диагностики V3146
- Примеры ошибок, обнаруженных с помощью диагностики V3121
- Примеры ошибок, обнаруженных с помощью диагностики V6027
- Примеры ошибок, обнаруженных с помощью диагностики V6043
- Примеры ошибок, обнаруженных с помощью диагностики V6072
- Примеры ошибок, обнаруженных с помощью диагностики V3142
- Примеры ошибок, обнаруженных с помощью диагностики V3119
- Примеры ошибок, обнаруженных с помощью диагностики V3085
- Примеры ошибок, обнаруженных с помощью диагностики V3050
- Примеры ошибок, обнаруженных с помощью диагностики V3017
- Примеры ошибок, обнаруженных с помощью диагностики V3140
- Примеры ошибок, обнаруженных с помощью диагностики V3054
- Примеры ошибок, обнаруженных с помощью диагностики V3067
- Примеры ошибок, обнаруженных с помощью диагностики V3131
- Примеры ошибок, обнаруженных с помощью диагностики V3148
- Примеры ошибок, обнаруженных с помощью диагностики V1020
- Примеры ошибок, обнаруженных с помощью диагностики V6053
- Примеры ошибок, обнаруженных с помощью диагностики V6048
- Примеры ошибок, обнаруженных с помощью диагностики V551
- Примеры ошибок, обнаруженных с помощью диагностики V703
- Примеры ошибок, обнаруженных с помощью диагностики V1048
- Примеры ошибок, обнаруженных с помощью диагностики V658
- Примеры ошибок, обнаруженных с помощью диагностики V664
- Примеры ошибок, обнаруженных с помощью диагностики V735
- Примеры ошибок, обнаруженных с помощью диагностики V742
- Примеры ошибок, обнаруженных с помощью диагностики V791
- Примеры ошибок, обнаруженных с помощью диагностики V1007
- Примеры ошибок, обнаруженных с помощью диагностики V1010
- Примеры ошибок, обнаруженных с помощью диагностики V1032
- Примеры ошибок, обнаруженных с помощью диагностики V1036
- Примеры ошибок, обнаруженных с помощью диагностики V1043
- Примеры ошибок, обнаруженных с помощью диагностики V1051
- Примеры ошибок, обнаруженных с помощью диагностики V1053
- Примеры ошибок, обнаруженных с помощью диагностики V1061
- Примеры ошибок, обнаруженных с помощью диагностики V1062
- Примеры ошибок, обнаруженных с помощью диагностики V1063
- Примеры ошибок, обнаруженных с помощью диагностики V1064
- Примеры ошибок, обнаруженных с помощью диагностики V1065
- Примеры ошибок, обнаруженных с помощью диагностики V1068
- Примеры ошибок, обнаруженных с помощью диагностики V1075
- Примеры ошибок, обнаруженных с помощью диагностики V1076
- Примеры ошибок, обнаруженных с помощью диагностики V1083
- Примеры ошибок, обнаруженных с помощью диагностики V1086
- Примеры ошибок, обнаруженных с помощью диагностики V1089
- Примеры ошибок, обнаруженных с помощью диагностики V1094
- Примеры ошибок, обнаруженных с помощью диагностики V1109
- Примеры ошибок, обнаруженных с помощью диагностики V3040
- Примеры ошибок, обнаруженных с помощью диагностики V3068
- Примеры ошибок, обнаруженных с помощью диагностики V3075
- Примеры ошибок, обнаруженных с помощью диагностики V3079
- Примеры ошибок, обнаруженных с помощью диагностики V3107
- Примеры ошибок, обнаруженных с помощью диагностики V3114
- Примеры ошибок, обнаруженных с помощью диагностики V3116
- Примеры ошибок, обнаруженных с помощью диагностики V3122
- Примеры ошибок, обнаруженных с помощью диагностики V3134
- Примеры ошибок, обнаруженных с помощью диагностики V3153
- Примеры ошибок, обнаруженных с помощью диагностики V3156
- Примеры ошибок, обнаруженных с помощью диагностики V3157
- Примеры ошибок, обнаруженных с помощью диагностики V3159
- Примеры ошибок, обнаруженных с помощью диагностики V3168
- Примеры ошибок, обнаруженных с помощью диагностики V3177
- Примеры ошибок, обнаруженных с помощью диагностики V3180
- Примеры ошибок, обнаруженных с помощью диагностики V3181
- Примеры ошибок, обнаруженных с помощью диагностики V3182
- Примеры ошибок, обнаруженных с помощью диагностики V3197
- Примеры ошибок, обнаруженных с помощью диагностики V5609
- Примеры ошибок, обнаруженных с помощью диагностики V5611
- Примеры ошибок, обнаруженных с помощью диагностики V6012
- Примеры ошибок, обнаруженных с помощью диагностики V6028
- Примеры ошибок, обнаруженных с помощью диагностики V6029
- Примеры ошибок, обнаруженных с помощью диагностики V6036
- Примеры ошибок, обнаруженных с помощью диагностики V6045
- Примеры ошибок, обнаруженных с помощью диагностики V6052
- Примеры ошибок, обнаруженных с помощью диагностики V6054
- Примеры ошибок, обнаруженных с помощью диагностики V6066
- Примеры ошибок, обнаруженных с помощью диагностики V6073
- Примеры ошибок, обнаруженных с помощью диагностики V6074
- Примеры ошибок, обнаруженных с помощью диагностики V6079
- Примеры ошибок, обнаруженных с помощью диагностики V6080
- Примеры ошибок, обнаруженных с помощью диагностики V6082
- Примеры ошибок, обнаруженных с помощью диагностики V6086
- Примеры ошибок, обнаруженных с помощью диагностики V6090
- Примеры ошибок, обнаруженных с помощью диагностики V6091
- Примеры ошибок, обнаруженных с помощью диагностики V6094
- Примеры ошибок, обнаруженных с помощью диагностики V6100
- Примеры ошибок, обнаруженных с помощью диагностики V6102
- Примеры ошибок, обнаруженных с помощью диагностики V6107
- Примеры ошибок, обнаруженных с помощью диагностики V6113
- Путеводитель C++ программиста по неопределённому поведению: часть 8 из 11
- Игровое поле экспериментов: какие ошибки могут подстерегать программиста при создании эмулятора
- Самая красивая ошибка, которую я нашёл с помощью PVS-Studio в 2024 году
- Поймай уязвимость своими руками: пользовательские аннотации C# кода
- Путеводитель C++ программиста по неопределённому поведению: часть 7 из 11
- Обзор нововведений в C# 13
- Что нового в Unity 6? Обзор нововведений и ошибок в исходном коде
- Скажем нет "Превращению", или анализ Kafka
- PVS-Studio 7.33: критические ошибки, пользовательские аннотации в C#, поддержка SN-DBS и многое другое
- Исходный код на прощание: разбор ошибок в проектах закрывшейся инди-студии
- Что нового в PVS-Studio для Unreal Engine?
- PPSSPP или всё же psp? Смотрим баги в коде из будущего
- Пользовательские аннотации кода для PVS-Studio
- Анализ кода WolvenKit: что нужно знать перед созданием модов для Cyberpunk 2077
- std::array в С++ не медленнее массива в С
- Путеводитель C++ программиста по неопределённому поведению: часть 6 из 11
- Чистый код — дар или проклятие? Акт II. Компромисс
- Изучаем карты с исходным кодом GeoServer
- Путеводитель C++ программиста по неопределённому поведению: часть 5 из 11
- Рефакторим легаси при помощи ООП
- .NET Digest #3
- Чистый код — дар или проклятие? Акт I. Конфронтация
- Путеводитель C++ программиста по неопределённому поведению: часть 4 из 11
- PVS-Studio 7.32: оптимизация анализа, новые плагины и многое другое
- Как сделать анализатор кода за два дня
- Flax Engine. Знакомство с игровым движком и анализ его исходного кода
- Дайте два! Обновление плагина PVS-Studio для SonarQube
- Даже математики ошибаются
- Как найти работу для фиксиков: анализируем Godot Engine
- Путеводитель C++ программиста по неопределённому поведению: часть 3 из 11
- .NET Digest #2
- Поисковый запрос на баги в Apache Solr
- Дебажим баги в дебаггере x64dbg. Без дебаггера
- Фиксим баги в вашем AI или разбор ошибок в OpenVINO
- Как научить кота программировать. Необычные подходы к изучению нового
- Про́клятый огонь, или магия препроцессора C
- Неожиданности в авторизации. Что скрывает Keycloak?
- Насекомое 13 лет сидит в вашем компиляторе и не собирается оттуда вылезать
- .NET Digest #1
- Тотемные утки и шаманские бубны: есть ли у разработчиков свои ритуалы и приметы?
- Подборка докладов по С# 2023-2024
- 12 мгновений опечаток и копипаста, или почему сбоит AI: проверяем код OpenVINO
- Путеводитель C++ программиста по неопределённому поведению: часть 2 из 11
- Побитовые проверки в Java и почему они так неоднозначны
- Ненавижу, _____, C++ массивы!
- PVS-Studio 7.31: новые возможности C++ анализатора, расширение функционала пользовательских аннотаций
- Как шаблонный метод может сломать ваш Java код
- Улыбка сквозь баги
- Сколько UB в моём компиляторе?
- Путеводитель C++ программиста по неопределённому поведению: часть 1 из 11
- Ловушки volatile, DCL и синхронизации в Java
- Объявляю ошибку вида if (x = 42) вымирающей и заношу её в Красную книгу C и C++ багов
- Какие ошибки есть в коде LLVM?
- С++: освобождение ресурсов в деструкторах с использованием вспомогательных функций
- Garnet. Хранит ли баги кэш-хранилище от Microsoft?
- Проверка игрового движка qdEngine, часть третья: дополнительная десятка багов
- 11 мгновений ReactOS: user mode становится лучше?
- Проверка игрового движка qdEngine, часть вторая: упрощение C++ кода
- Подборка крутых докладов по С++ за 2023 год
- Проверка игрового движка qdEngine, часть первая: топ 10 предупреждений PVS-Studio
- Кошмар нефалема. Исследуем ошибки в коде эмулятора сервера Diablo 3
- 21 ошибка в 21-й версии Apache NetBeans
- PVS-Studio 7.30: улучшение работы с Unreal Engine, новые возможности C++ анализатора и многое другое
- Статический анализатор подталкивает писать чистый код
- Баги, которые наделали немало шума
- Что скрывается в коде игрового движка, написанного на Java?
- Как не надо проверять размер массива в С++
- Быстро и легко ищем баги в играх на Unity (для C# разработчиков)
- Настраиваем статический анализ Unreal Engine проекта
- Непобедимый null: копаемся в исходном коде nopCommerce
- Не исправил, а проработал принятие: как некоторые баги в играх стали фичами
- Притча о нулевом указателе для ленивых C программистов
- Проверяем Blender
- Как сломать крышку унитаза и стать спортивнее за счёт компании: поездки PVS-Studio 2023 года
- Почему проверять результат вызова malloc c помощью assert плохая идея
- Применение ООП на практике
- PVS-Studio 7.29: проверка Java-кода в VS Code, умные указатели Boost, плагин для Qt Creator на macOS
- Расширение PVS-Studio для Visual Studio Code: поиск ошибок в Java-коде
- Следует ли проверять указатель на NULL перед вызовом функции free?
- Qt Creator* ищет ошибки в Qt Creator
- От винта! Смотрим движок War Thunder и говорим с его создателями
- Внедрение SAST в процесс разработки
- PVS-Studio в 2023
- Ошибки и подозрительные места в исходниках .NET 8
- Топ-10 ошибок, найденных в C#-проектах за 2023 год
- Квиз со звёздочкой для С++ программистов от Сергея Кушниренко
- Разбор С++ квиза от Сергея Кушниренко
- Предновогоднее шоу: Топ 10 ошибок в C и С++ проектах в 2023 году
- PVS-Studio 7.28: поддержка ARM, .NET 8, анализ Unreal Engine без Unity Build и не только
- Операция "K". Ищем баги в коде IntelliJ IDEA
- Как заманить программиста на стенд?
- 30 лет DOOM: новый код — новые баги
- Немного о гигиене Java кода
- День, когда Скайнет обрёл сознание, и ещё 69 поводов собраться с коллегами. Часть 2
- День, когда Скайнет обрёл сознание, и ещё 69 поводов собраться с коллегами. Часть 1
- Возвращаемся на Гроув-Стрит. Анализ движка Grand Theft Auto: San Andreas на Unity
- Какую статью хочется прочитать в нашем блоге на тему C++, C# или Java?
- Игоры! Как пишут код для SDL (+ интервью с создателем)
- Что нового в .NET 8?
- Использование расширения VS Code "PVS-Studio" для эффективной борьбы с ошибками в C# коде
- Microsoft PowerToys: Король GitHub среди C# проектов с C++ ошибками
- Проверяем YTsaurus. Доступность, надёжность, open source
- Опечатки, нулевые указатели и коварный таб: 33 фрагмента в библиотеке GTK
- Интервью с разработчиками мультитула для хакеров и пентестеров Flipper Zero
- Обзор нововведений в C# 12
- PVS-Studio 7.27: проверка C# кода в VS Code, анализ Unreal Engine проектов в Rider и не только
- FreeCAD и C++ код с неопределённым поведением для медитации
- PVS-Studio помогает оптимизировать проекты на Unity Engine
- Пять забавных странностей в коде Entity Framework Core
- Поиск ошибок в проектах на основе Unreal Engine
- Ошибка настолько проста, что программисты её не замечают
- Проверка компилятора GCC 13 с помощью PVS-Studio
- Ква! Как писали код во времена Quake
- PVS-Studio vs CodeLite: битва за идеальный код
- Распространённые паттерны опечаток при программировании
- PVS-Studio 7.26: запуск анализа из VS Code и Qt Creator, интеграция с DefectDojo и не только
- DefectDojo и PVS-Studio: отслеживаем ошибки и уязвимости
- Обзор подозрительных мест в исходном коде MassTransit
- Всегда ли в C# есть упаковка при конкатенации со строкой и интерполяции?
- Ryujinx: повторная проверка эмулятора Nintendo Switch с помощью PVS-Studio
- Герои Кода и Магии: анализ игрового движка VCMI
- Изучаем подозрительные места в коде AWS SDK для .NET
- Обзор Top-3 Open Source игр на C# и ошибок в их коде
- PVS-Studio 7.25: поддержка новых версий Qt Creator, Rider и многое другое
- Уязвимость XSS в приложении ASP.NET: разбираем CVE-2023-24322 в CMS mojoPortal
- 60 антипаттернов для С++ программиста
- RavenDB и PVS-Studio: коллаборация, от которой выигрывают все
- BTCPay Server: топ-10 ошибок в коде финансового приложения для Bitcoin
- Топ-10 докладов на С# конференциях 2019-2022 года
- NullReferenceException в C#. Что это такое и как исправить?
- Как работает статический анализ?
- Снятся ли разработчикам безопасные приложения?
- 5 причин, почему статический анализ кода важен для бизнеса
- Можно автоматизировать обзор кода?
- PVS-Studio 7.24: Unity, продвинутые механизмы подавления и многое другое
- GPT-3 нашёл 213 Security Vulnerabilities... Или не нашёл
- SAST или DAST
- Личный кабинет PVS-Studio
- Reddit для программистов
- Зачем при изменении сборки менять её версию или как сломать Visual Studio одной командой
- Парсинг string в enum ценой в 50 Гб: разбираем уязвимость CVE-2020-36620
- Что нельзя найти с помощью статического анализа
- 64-битные ошибки: LONG, LONG_PTR и привет из прошлого
- Хорошо ли ChatGPT ищет ошибки в коде?
- PVS-Studio 7.23: плагин Qt Creator 9 и не только
- Приключения капитана Блада: потонет ли Арабелла?
- Нужно ли проверять библиотеки перед их использованием? Разберём на примере MudBlazor
- Тонкости C++: итак, вы объявили класс…
- Обзор плагина PVS-Studio для Visual Studio Code
- Изменения в PVS-Studio, о которых полезно знать
- Под капотом SAST: как инструменты анализа кода ищут дефекты безопасности
- Wave Function Collapse для процедурной генерации в Unity
- C++ — язык 2022 года. Почему так, и что с другими языками?
- PVS-Studio в 2022 году
- Ложные представления программистов о неопределённом поведении
- PVS-Studio научился анализировать Blazor компоненты
- Создание .NET библиотеки от А до Я
- Топ-10 ошибок в C++ проектах за 2022 год
- Топ-10 ошибок, найденных в C#-проектах за 2022 год
- PVS-Studio и protobuf-net: лучшие предупреждения в один клик
- Новогодние праздники вместе с PVS–Studio
- Помоги компилятору, и он поможет тебе. Тонкости работы с nullable reference типами в C#
- PVS-Studio 7.22: Visual Studio Code, Qt Creator, .NET 7
- .NET 7: разбираем ошибки и подозрительные места в исходниках
- PVS-Studio и RPCS3: лучшие предупреждения в один клик
- PVS-Studio: 2 фишки для быстрого старта
- Почему ты делаешь за меня мою работу? Типы людей, которые не пишут в поддержку
- Как увеличилась производительность LINQ в .NET 7?
- Holy C++
- Что нового в .NET 7?
- Как Apple и другие крупные компании настиг программный баг
- Что такое катастрофический возврат и как регулярное выражение может стать причиной ReDoS-уязвимости?
- Продление жизни временных значений в С++: рецепты и подводные камни
- Как мы баг в PVS-Studio искали или 278 Гигабайтов логов
- 0, 1, 2, Фредди забрал Blender
- Примеры ошибок, которые может обнаружить PVS-Studio в коде LLVM 15.0
- Обзор нововведений в C# 11
- Как PVS-Studio защищает от поспешных правок кода, пример N6
- PVS-Studio 7.21: GitLab Code Quality, Unreal Engine
- Топ-10 докладов на С++ конференциях 2019-2022 года
- Есть ли жизнь без RTTI: пишем свой dynamic_cast
- Невыжившие в IT
- Планируете взяться за .NET MAUI? Будьте готовы к приключениям с NullReferenceException
- Особенности реализации List в C#
- Разбор ошибок в игровом движке Stride
- Интервью с Джейсоном Тернером, одним из ведущих подкаста "CppCast": история и причины закрытия проекта
- Боремся с 16-летним легаси-кодом, или исправляем C и C++ front-end в PVS-Studio
- Сортировки в C#: OrderBy.OrderBy или OrderBy.ThenBy? Разбираемся, что эффективнее и почему
- Проверка JavaScript-движка Rhino, или как встретились единорог с носорогом
- Неклассические контейнеры в C++
- ML.NET: можно ли доверять машинному обучению Microsoft?
- Чем опасны уязвимые зависимости в проекте и как с этим помогает SCA?
- Соберёмся? Вторая проверка проекта MSBuild
- Как фидбек помог улучшить наш C++ квиз
- Концепция умного указателя static_ptr<T> в C++
- Единороги компании PVS-Studio
- Триквел по Orchard Core. Повторная проверка при помощи PVS-Studio
- Как я программу на вирусы проверял
- PVS-Studio 7.20: Unreal Engine, SAST, SCA
- Рассылки от программистов для программистов
- "Так исторически сложилось", или за что разделили V512
- Сказ о том, как в PVS-Studio бага обновляли
- Анализ потока данных PVS-Studio распутывает всё больше связанных переменных
- Хочу использовать в своей команде PVS-Studio. Начальник против. Как его убедить?
- Зачем разработчикам Discord.NET нужен статический анализатор?
- Почему в С++ массивы нужно удалять через delete[]
- Виды Application Security Testing. Как не запутаться среди SAST, DAST и IAST
- Что такое CVE и какие угрозы там хранятся?
- Конкурс внимательности: PVS-Studio vs Хакер
- CWE Top 25 2022. Обзор изменений
- Предупреждения помогают писать лаконичный код
- Заводим трактор: QMake -> CMake
- Есть ли в вашей IDE баги? Проверка AvalonStudio с помощью PVS-Studio
- Межмодульный анализ C и C++ проектов в деталях. Часть 2
- Статический анализатор кода vs разработчики. Шо, опять?
- Межмодульный анализ C и C++ проектов в деталях. Часть 1
- PVS-Studio для проверки лабораторных работ на C и C++
- Проверка проекта Orleans статическим анализатором PVS-Studio
- Игра: найди ошибку в C++ коде
- Тем, кто учится программировать и решил написать вопрос на Stack Overflow: "Почему код не работает?"
- PVS-Studio 7.19: что новенького?
- В мире антропоморфных животных: PVS-Studio проверил Overgrowth
- Как написать рефлексию для C++
- Проверяем эмулятор GPCS4, или сможем ли когда-нибудь поиграть в "Bloodborne" на PC
- Новый механизм мониторинга компиляции в PVS-Studio для Windows
- 50 вредных советов для С++ программиста
- Гугл-программисты. Как идиот набрал на работу идиотов
- Разработчики встраиваемых систем не умеют программировать
- О чем нельзя забывать при работе с POSIX-сигналами
- Обрабатывать ли в PVS-Studio вывод других инструментов?
- 15000 ошибок в открытых проектах
- Насколько хорошо защищены ваши пароли? Проверка проекта Bitwarden
- Как различить C и C++ разработчиков по их коду
- Зачем разработчикам игр на Unity использовать статический анализ?
- Отладочный вывод на микроконтроллерах: как Concepts и Ranges отправили мой printf на покой
- Комментарии в коде как вид искусства
- Эволюция PVS-Studio: анализ потока данных для связанных переменных
- Нереальный baselining или доработки PVS-Studio для Unreal Engine проектов
- Зачем нужен статический анализ? Разбираем на примере ошибки из Akka.NET
- Разбор некоторых вредных советов для С++ программиста
- Четыре причины проверять, что вернула функция malloc
- Место SAST в Secure SDLC: 3 причины внедрения в DevSecOps-пайплайн
- Как PVS-Studio защищает от поспешных правок кода, пример N5
- Атака Trojan Source: скрытые уязвимости
- PVS-Studio 7.18: обновления и улучшения
- Атака Trojan Source для внедрения в код изменений, незаметных для разработчика
- Повторная проверка Unity статическим анализатором PVS-Studio
- Что там у PVS-Studio c покрытием Toyota ITC Benchmark?
- Проверка Barotrauma статическим анализатором PVS-Studio
- Ищем ошибки в C# коде GUI-фреймворка Eto.Forms
- Подозрительные сортировки в Unity, ASP.NET Core и не только
- Проверка фреймворка Ogre3D статическим анализатором PVS-Studio
- Топ-10 ошибок, найденных PVS-Studio в проектах на ASP.NET Core
- MuditaOS: Зазвонит ли ваш будильник? Часть 2
- Почему моё приложение при открытии SVG-файла отправляет сетевые запросы?
- Как PVS-Studio защищает от поспешных правок кода, пример N4
- Судьба баг-репорта
- Как PVS-Studio защищает от поспешных правок кода, пример N3
- Visual Studio 2022 стильно и свежо. История о её поддержке в PVS-Studio
- Релиз PVS-Studio 7.17: улучшаем работу с Unreal Engine, ASP.NET Core, Texas Instruments
- Уязвимости из-за обработки XML-файлов: XXE в C# приложениях в теории и на практике
- Пример проявления неопределённого поведения из-за отсутствия return
- Какая стратегия освобождения памяти используется в C и С++ ядре PVS-Studio?
- Игра с null: проверка MonoGame статическим анализатором PVS-Studio
- MuditaOS: зазвонит ли ваш будильник? Часть 1
- PVS-Studio для Visual Studio 2022
- PascalABC.NET, повторная проверка
- Сколько маркетологов нужно, чтобы снять одно видео?
- Как PVS-Studio защищает от поспешных правок кода, пример N2
- Дизайн и эволюция constexpr в C++
- Технологии статического анализа кода PVS-Studio
- Самые интересные блоги и сайты по C# / .NET
- Самые интересные блоги и сайты для C++ программистов
- Что нового появилось в PVS-Studio в 2021 году
- Топ-10 ошибок, найденных в C#-проектах за 2021 год
- Ошибки и подозрительные места в исходниках .NET 6
- Проверяем код дельфина Flipper Zero на чистоту с помощью PVS-Studio
- Топ-10 ошибок в C++ проектах за 2021 год
- 1000 глаз, которые не хотят проверять код открытых проектов
- C++20: удивить линкер четырьмя строчками кода
- Третья проверка Umbraco статическим анализатором PVS-Studio
- PVS-Studio 7.16, взятие рубежей: MISRA C, Visual Studio 2022, .NET 6
- В чём проблемы первого отчёта статического анализатора и как их исправить?
- C++20 Ranges — Полное руководство
- Есть ли баги в маленьких проектах, или как PVS-Studio проверял Blend2D
- Проверка Chromium спустя три года. Ну и как оно?
- Статья для тех, кто как и я не понимает, зачем нужен std::common_type
- Вызов виртуальных функций в конструкторах и деструкторах (C++)
- Разнообразие ошибок в C# коде на примере CMS DotNetNuke: 40 вопросов к качеству
- Спасибо, Марио, но код стоит поправить – проверка TheXTech
- Прокачка статического анализа проектов на Unreal Engine 4 и проверка автосимулятора Carla
- Проверяем качество кода в проектах.NET Foundation: LINQ to DB
- Проверяем эмулятор RPCS3 с помощью PVS-Studio
- Слава баг-репортам, или как мы сократили время анализа проекта пользователя с 80 до 4 часов
- Как выбрать инструмент статического анализа
- Неопределенное поведение, пронесенное сквозь года
- Брутальный Protocol Buffers от Google vs статический анализ кода
- PVS-Studio ищет баги в проекте DuckStation
- Как один разработчик PVS-Studio защищал баг в проверяемом проекте
- Лучшие срабатывания статического анализатора
- Generic Math: суперфича C#, доступная в .NET 6 Preview 7
- О том, как мы с сочувствием смотрим на вопрос на Stack Overflow, но молчим
- OWASP Top Ten и Software Composition Analysis (SCA)
- Обзор нововведений в C# 10
- Диагностические правила группы OWASP в PVS-Studio
- Развитие инструментария С++ программистов: статические анализаторы кода
- PVS-Studio 7.15: развитие MISRA, CWE, OWASP, Unreal Engine
- Выявляем ошибки в релизе LLVM 13.0.0
- Текстовая трансляция CppCast 293: One Lone Coder
- CWE Top 25 2021. Что такое, с чем едят и чем полезен при статическом анализе?
- Зачем нужен динамический анализ кода, на примере проекта PVS-Studio
- Создание статического анализатора для C# на основе Roslyn API
- MISRA C: борьба за качество и безопасность кода
- PVS-Studio C#: что делать, если подготовка проектов идёт слишком долго или зависает?
- Как Visual Studio 2022 съела 100 Гб памяти и при чём здесь XML бомбы?
- Зачем нужен отчёт MISRA Compliance и как его получить в PVS-Studio?
- Текстовая трансляция CppСast 300: Стабильность ABI
- Зачем нужна техническая поддержка и как в ней не выгореть?
- Обзор нововведений в C# 9
- Текстовая трансляция CppCast 285: Инструмент Clang Power Tools и мифы C++
- 30 лет ядру Linux: поздравление от PVS-Studio
- XSS: атака и защита с точки зрения C# программирования
- Tutorial: как портировать проект с Interop Word API на Open XML SDK
- PHP – компилируемый язык?! PVS-Studio ищет ошибки в PeachPie
- PVS-Studio 7.14: межмодульный анализ в С++ и плагин для JetBrains CLion
- Kanban команды PVS-Studio. Часть 2: YouTrack
- Оптимизация .NET приложений: большой результат маленьких правок
- Межмодульный анализ C++ проектов в PVS-Studio
- Как в VSCode смотреть отчёты статических анализаторов, поддерживающих SARIF
- PVS-Studio для JetBrains CLion: через тернии к звёздам
- Статический анализ защищает ваш код от бомб замедленного действия
- Интеграция PVS-Studio в uVision Keil
- Проверка BitTorrent в честь 20-летнего юбилея. Время == качество
- Красивая ошибка в реализации функции конкатенации строк
- Подводные камни при работе с enum в C#
- Неожиданная статья про нашего единорога: кто такой маскот PVS-Studio?
- Один день из жизни разработчика PVS-Studio, или отладка диагностики, которая оказалась внимательнее трёх программистов
- Текстовая трансляция CppCast 298: Инструменты анализа SonarSource
- Nintendo Switch: Drop Test исходников эмулятора Ryujinx
- Beta-тестирование плагина PVS-Studio для JetBrains CLion
- Йо-хо-хо, и бутылка рому! Разбираем ошибки игрового движка Storm Engine
- Как WCF сам себе в ногу стреляет посредством TraceSource
- Оптимизация .NET приложения: как простые правки позволили ускорить PVS-Studio и уменьшить потребление памяти на 70%
- Почему важно проверять значения параметров общедоступных методов
- Анализ Unity проектов: The solution file has two projects named "UnityEngine.UI"
- Как делался новый дизайн сайта PVS-Studio
- Использование оператора ?. в foreach: защита от NullReferenceException, которая не работает
- OWASP, уязвимости и taint-анализ в PVS-Studio C#. Смешать, но не взбалтывать
- PVS-Studio 7.13: SQL инъекции, Blame Notifier, .NET 5
- Опыт команды PVS-Studio: повышение производительности C++ анализатора на Windows при переходе на Clang
- Текстовая трансляция подкаста CppCast 278: SerenityOS
- Новые возможности PVS-Studio по оповещению разработчиков о найденных ошибках
- Ускоряем сборку и анализ при помощи Incredibuild
- Текстовая трансляция подкаста CppCast 267: Вопросы производительности
- Теперь PVS-Studio ещё лучше знает, что за зверь такой – strlen
- Roslyn API, или из-за чего PVS-Studio очень долго проект анализировал
- Свершилось! PVS-Studio поддерживает анализ проектов под .NET 5
- Perl-скрипт вместо blame-notifier на ОС Linux
- Подводные камни в бассейне строк, или ещё один повод подумать перед интернированием экземпляров класса String в C#
- Kanban команды PVS-Studio. Часть 1: agile
- Ядро macOS, есть ли червячки в этом яблоке?
- Как PVS-Studio защищает от поспешных правок кода
- Анализатор PVS-Studio включен в реестр отечественного ПО
- Пример полезного комментария
- Пример, как в PVS-Studio появляются новые диагностики
- Сканер сетевого трафика Snort под сканером анализатора кода PVS-Studio
- Текстовая трансляция подкаста CppCast 281: Креативное программирование
- Новые возможности по поиску угроз безопасности и защищённости в PVS-Studio 7.12
- Проверка STP с помощью PVS-Studio
- Недолго музыка играла или анализ кода MuseScore
- Что такое yield и как он работает в C#?
- Текстовая трансляция CppCast 277: Преподавание и пленарное заседание в виртуальном формате
- PVS-Studio, Blender: цикл заметок о пользе регулярного использования статического анализа
- PVS-Studio вступает в битву с захардкоженными паролями!
- Free Heroes of might and magic 2 – open-source проект, в котором хочется участвовать
- Зачем PVS-Studio использует анализ потока данных: по мотивам интересной ошибки в Open Asset Import Library
- Мощь PVS-Studio
- Обработка дат притягивает ошибки или 77 дефектов в Qt 6
- Должен ли out-параметр быть проинициализирован до возврата из метода?
- Just for fun: команда PVS-Studio придумала мониторить качество некоторых открытых проектов
- Как в GitHub смотреть красивые отчеты об ошибках с помощью SARIF
- Дорожная карта PVS-Studio на 2021 год
- Текстовая трансляция CppCast 276: Networking TS
- Исследование COVID-19 и неинициализированная переменная
- Шпион под прикрытием: проверяем исходный код ILSpy с помощью PVS-Studio
- Выявляем опечатки в проекте GTK 4 с помощью PVS-Studio
- C# программист, испытай себя -найди ошибку
- Анализ коммитов и pull request'ов в Travis CI, Buddy и AppVeyor с помощью PVS-Studio
- Как PVS-Studio ELKI в январе проверяли
- Espressif IoT Development Framework: 71 выстрел в ногу
- GTK: как выглядит первый запуск анализатора в цифрах
- Топ 10 ошибок в проектах Java за 2020 год
- ТОП-10 ошибок, найденных в C#-проектах за 2020 год
- Стоило ли столько ждать, чтобы найти баг?
- Топ 10 ошибок в C++ проектах за 2020 год
- Релиз PVS-Studio 7.11: IAR Arm, диагностики, FREE-FREE-FREE-FREE
- ONLYOFFICE Community Server: как баги способствуют возникновению проблем с безопасностью
- Об ошибках в коде QuantConnect Lean
- Big/Bug Data: анализируем исходный код Apache Flink
- Автоматический статический анализ с помощью PVS-Studio при сборке RPM-пакетов
- Анализатор кода не прав, да здравствует анализатор
- Как статический анализ кода помогает в сфере GameDev
- Исследование качества кода Open XML SDK от Microsoft
- Почему PVS-Studio не предлагает автоматические правки кода
- Единороги на страже вашей безопасности: исследуем код Bouncy Castle
- Релиз PVS-Studio 7.10: OWASP, AUTOSAR, SARIF
- Онлайн всемогущий
- Хорошо ли вы помните nullable value types? Заглядываем "под капот"
- Проверка Clang 11 с помощью PVS-Studio
- Проверка коллекции header-only C++ библиотек (awesome-hpp)
- Amnesia: The Dark Descent или как забыть поправить копипасту
- Анализ кода проекта DeepSpeech или почему не стоит писать в namespace std
- Продолжение: обидно за мнения про статические анализаторы кода
- Разделение по тегам в нашем блоге
- Обидно за мнения про статические анализаторы кода
- Nullable Reference не защищают, и вот доказательства
- Проверка WildFly - сервера JavaEE приложений
- Почему важно проводить статический анализ открытых библиотек, которые вы добавляете в свой проект
- Почему обзоры кода — это хорошо, но недостаточно
- Проверка QEMU с помощью PVS-Studio
- PVS-Studio для поиска дефектов безопасности и защищённости приложений. Отчёт Forrester Research о SAST, Q3 2020
- PVS-Studio 7.09
- Проверка кода XMage и почему недоступны специальные редкие карточки для коллекции Dragon's Maze
- Статический анализ кода коллекции библиотек PMDK от Intel и ошибки, которые не ошибки
- ООО "СиПроВер" переименовано в ООО "ПВС" (PVS-Studio LLC)
- Единороги врываются в RTS: анализируем исходный код OpenRA
- Статический анализ – от знакомства до интеграции
- Под капотом PVS-Studio для Java: разработка диагностик
- PVS-Studio: анализ pull request-ов в Azure DevOps при помощи self-hosted агентов
- Анализ merge request'ов в GitLab с помощью PVS-Studio для C#
- PVS-Studio и Continuous Integration: TeamCity. Анализ проекта Open RollerCoaster Tycoon 2
- Код игры Command & Conquer: баги из 90-х. Том второй
- PVS-Studio теперь в Compiler Explorer!
- PVS-Studio впечатлен качеством кода Abbyy NeoML
- PVS-Studio 7.08
- Как анализатор PVS-Studio стал находить ещё больше ошибок в проектах на Unity
- Как внедрить статический анализатор кода в legacy проект и не демотивировать команду
- Анализатор PVS-Studio: выявления потенциальных проблем совместимости Java SE API
- Код игры Command & Conquer: баги из 90-х. Том первый
- Как найти ошибки в C# проекте, работая под Linux и macOS
- Анализатор PVS-Studio на сайте godbolt.org (Compiler Explorer) и предостережение
- АНБ, Ghidra и единороги
- Код в одну строку или проверка Nethermind с помощью PVS-Studio C# для Linux
- Ошибка с директивой #line в компиляторе Visual C++
- Как забраться на дерево
- Обзор возможностей PVS-Studio версии 7.07
- C++ быстрее и безопаснее Rust, Yandex сделала замеры
- И снова про embedded: ищем баги в проекте Embox
- Начало бета-тестирования плагина для Rider и PVS-Studio C# для Linux / macOS
- Повторная проверка Newton Game Dynamics статическим анализатором PVS-Studio
- PVS-Studio 7.07
- Проверка компилятора GCC 10 с помощью PVS-Studio
- DeepCode: взгляд со стороны
- Как странный код скрывает ошибки? Анализ TensorFlow.NET
- Обновлённый график количества диагностик в PVS-Studio
- Начало коллекционирования ошибок в функциях копирования
- Глубина кроличьей норы или собеседование по C++ в компании PVS-Studio
- Исследуем качество кода операционной системы Zephyr
- OpenToonz
- Как мы исправили один баг в CMake
- Скроллбар, который не смог
- Как разработчики могут помочь в борьбе с коронавирусом - продолжение
- Beta-тест C# анализатора PVS-Studio на Linux и macOS
- Выявление неправильной блокировки с двойной проверкой с помощью диагностики V3054
- Интеграция PVS-Studio в PlatformIO
- Ноль, один, два, Фредди заберёт тебя
- PVS-Studio теперь в Chocolatey: проверка Chocolatey из-под Azure DevOps
- Проверка RunUO анализатором PVS-Studio
- Какая разница между DevOps и DevSecOps?
- Вечное сияние чистого Copy-Paste
- VVVVVV??? VVVVVV!!!
- Использование машинного обучения в статическом анализе исходного кода программ
- Анализ исходного кода Emby при помощи анализатора PVS-Studio
- В "osu!" играй, про ошибки не забывай
- Что такое MISRA и как её готовить
- Цена ошибки на примере одной из проблем в PVS-Studio
- Как PVS-Studio провела второе полугодие конференций 2019
- Небольшой вклад в борьбе Avalonia UI против зоопарка платформ
- Топ 10 ошибок в проектах Java за 2019 год
- Топ 10 ошибок в проектах C# за 2019 год
- Топ 10 ошибок в проектах C++ за 2019 год
- Качество кода Apache Hadoop: production VS test
- Реклама на YouTube: достучаться до программистов
- PVS-Studio 7.05
- SARIF SDK и его ошибки
- AWS анонсировали сервис для автоматизированного анализа кода
- Azure SDK for .NET: история о непростом поиске ошибок
- Почему летом так мало конференций?
- Проверка кода компилятора Ark Compiler, недавно открытого компанией Huawei
- Статический анализатор кода PVS-Studio как защита от уязвимостей нулевого дня
- Huawei Cloud: в PVS-Studio сегодня облачно
- Причины внедрить в процесс разработки статический анализатор кода PVS-Studio
- PVS-Studio идёт в облака: GitLab CI/CD
- Ответы на задачи со стенда PVS-Studio на конференциях 2018-2019
- По заказам Embedded-разработчиков: ищем ошибки в Amazon FreeRTOS
- Проверка обёртки OpenCvSharp над OpenCV с помощью PVS-Studio
- Анализ кода ROOT - фреймворка для анализа данных научных исследований
- Ищем и анализируем ошибки в коде Orchard CMS. Часть 2
- В macOS 10.15 более не поддерживаются 32-битные приложения. Что вы можете сделать?
- Azure PowerShell: "в основном безвреден"
- Проверка Telerik UI for UWP для знакомства с PVS-Studio
- PVS-Studio идёт в облака: CircleCI
- Преподавателям на заметку: PVS-Studio для знакомства студентов с инструментами анализа кода
- Проверка кода Telegram Open Network анализатором PVS-Studio
- Celestia: приключения багов в космосе
- Из-за тёмной темы Thunderbird пришлось запускать анализатор кода
- Один день из поддержки пользователей PVS-Studio
- PVS-Studio идёт в облака: Azure DevOps
- Работа с возражениями: статический анализ будет отнимать часть рабочего времени
- Настройка Warnings Next Generation плагина для интеграции PVS-Studio
- Лучшее - враг хорошего
- Использование PVS-Studio при проверке Unreal Engine проектов на операционной системе Windows
- PVS-Studio 7.04
- Проверяем Roslyn analyzers
- Анализ исходного кода RPC фреймворка Apache Dubbo статическим анализатором PVS-Studio
- Все ли в порядке с первым Doom
- Как настроить PVS-Studio в Travis CI на примере эмулятора игровой приставки PSP
- Легкий способ заработать на Bug Bounty
- PVS-Studio - двигатель прогресса
- CMake: тот случай, когда проекту непростительно качество его кода
- PVS-Studio в гостях у Apache Hive
- Проверка исходного кода библиотек .NET Core статическим анализатором PVS-Studio
- Использование статического анализатора PVS-Studio при разработке для встраиваемых систем на C и C++
- История о том, как PVS-Studio нашёл ошибку в библиотеке, используемой в... PVS-Studio
- WinForms: ошибки, Холмс
- Знакомство со статическим анализатором PVS-Studio при разработке C++ программ в среде Linux
- Анализ исходного кода проекта Yuzu c помощью статического анализатора PVS-Studio
- Статический анализ улучшит кодовую базу сложных C++ проектов
- Знакомство со статическим анализатором PVS-Studio для Java
- Конференции. Промежуточные итоги по первому полугодию 2019
- PVS-Studio заглянул в движок Red Dead Redemption - Bullet
- Библиотеки Electronic Arts почти хорошего качества
- Лучшие Copy-Paste алгоритмы для C и C++. Сборник рецептов Haiku OS
- Как выстрелить себе в ногу в C и C++. Сборник рецептов Haiku OS
- Зачем нужен динамический анализ кода, если есть статический?
- Знакомство со статическим анализатором PVS-Studio для Visual C++
- Знакомство со статическим анализатором PVS-Studio для Visual C#
- Про разницу между strlcat и strncat
- Ошибки, которые не находит статический анализ кода, потому что он не используется
- PVS-Studio хотел, но не смог найти баги в robots.txt
- Почему мы не пишем о сравнении PVS-Studio с другими статическими анализаторами кода
- PVS-Studio идёт в облака: Travis CI
- PVS-Studio для Visual Studio
- Опасность использования multi-character-констант
- Как быстро посмотреть интересные предупреждения, которые выдает анализатор PVS-Studio для C и C++ кода?
- График развития диагностических возможностей в PVS-Studio
- Nullable Reference типы в C# 8.0 и статический анализ
- Поддержка Visual Studio 2019 в PVS-Studio
- Находим баги в LLVM 8 с помощью анализатора PVS-Studio
- Cataclysm Dark Days Ahead, статический анализ и рогалики
- IntelliJ IDEA, ReSharper, SonarLint и SonarQube находят те же ошибки, что и PVS-Studio - ну и зачем нам PVS-Studio?
- Анализ кода CUBA Platform с помощью PVS-Studio
- Кратко о PVS-Studio как SAST решении
- Проверка rdesktop и xrdp с помощью анализатора PVS-Studio
- Wireshark 3.x: анализ кода под macOS и обзор ошибок
- Проверяем исходный код Roslyn
- PVS-Studio for Java отправляется в путь. Следующая остановка - Elasticsearch
- Как фрагмент CSS разметки сломал C++ компилятор
- Топ 10 ошибок в C++ проектах за 2018 год
- По следам калькуляторов: SpeedCrunch
- Проверка FreeRDP с помощью анализатора PVS-Studio
- По следам калькуляторов: Qalculate!
- Подсчитаем баги в калькуляторе Windows
- Бесплатные варианты лицензирования PVS-Studio
- Перестал анализироваться файл с директивой 'import' (compiler internal error 'msc1.cpp'). Что делать?
- Ложные срабатывания в PVS-Studio: как глубока кроличья нора
- История о том, как мы иконку PVS-Studio меняли
- Для тех, кто хочет поиграть в детектива: найди ошибку в функции из Midnight Commander
- Ваш Java анализатор сырой: подождем пару лет
- Время конференций! Подводим итоги 2018 года
- Шестая проверка Chromium, послесловие
- PVS-Studio ROI (возврат инвестиций) [данные обновлены в 2023]
- Ищем ошибки в исходном коде Amazon Web Services SDK для .NET
- Социальные сети для программистов
- PVS-Studio для Java
- PVS-Studio 7.00
- PVS-Studio и Bug Bounties on Free and Open Source Software
- Бесплатный PVS-Studio для тех, кто развивает открытые проекты
- Стреляем в ногу, обрабатывая входные данные
- Проверка проекта LibrePCB с помощью PVS-Studio внутри Docker контейнера
- И снова в космос: как единорог Stellarium посещал
- PVS-Studio: поддержка стандартов кодирования MISRA C и MISRA C++
- Самые быстрые отчёты на диком западе. И горстка багов в придачу...
- Godot: к вопросу о регулярном использовании статических анализаторов кода
- Всё, что вы хотели знать о PVS-Studio и не постеснялись спросить
- Технологии, используемые в анализаторе кода PVS-Studio для поиска ошибок и потенциальных уязвимостей
- NCBI Genome Workbench: научные исследования под угрозой
- Какие ошибки прячутся в коде Infer.NET?
- Почему перенос при целочисленном переполнении - не очень хорошая идея
- В PVS-Studio появилась поддержка GNU Arm Embedded Toolchain
- Как PVS-Studio оказался внимательнее, чем три с половиной программиста
- LibreOffice: страшный сон бухгалтера
- Релиз PVS-Studio 6.26
- Третья проверка Qt 5 с помощью PVS-Studio
- Perl 5: как в макросах ошибки прятались
- В очередной раз анализатор PVS-Studio оказался внимательнее человека
- Авторы игры 0 A.D. - молодцы
- Команда PVS-Studio непредвзята при написании статей
- Проверили с помощью PVS-Studio исходные коды Android, или никто не идеален
- Обзор дефектов исходного кода видеоигры "Вангеры"
- PVS-Studio как SAST решение
- Указатели в C абстрактнее, чем может показаться
- Система в шоке: интересные ошибки в исходных кодах легендарного System Shock
- Amazon Lumberyard: крик души
- Visual Studio Coded UI Tests: теория и практика применения в нашей компании
- Разработка нового статического анализатора: PVS-Studio Java
- Атаки через внешние данные и способы борьбы с ними
- Статический анализ в видеоигровой индустрии: топ-10 программных ошибок
- Проверка исходного кода свободного графического редактора Krita 4.0
- Проверяем исходный C#-код Unity
- Особенности настройки и запуска PVS-Studio в Docker на примере кода Azure Service Fabric
- Релиз PVS-Studio для macOS: 64 weaknesses в Apple XNU Kernel
- Toп 10 ошибок в C++ проектах за 2017 год
- PVS-Studio - дополнительная страховка медицинского программного обеспечения
- Почему embedded-разработчикам следует использовать статический анализ кода
- Нельзя просто так взять и отредактировать субтитры
- Статический анализатор кода PVS-Studio 6.22 адаптирован для ARM-компиляторов (Keil, IAR)
- Ошибки в роботах: ожидание и реальность
- Chromium: другие ошибки
- Почему важно проверять, что вернула функция malloc
- Chromium: использование недостоверных данных
- Chromium: опечатки
- Chromium: утечки памяти
- break и fallthrough
- Красивый Chromium и корявый memset
- Chromium: шестая проверка проекта и 250 багов
- Проверка кода Reiser4 статическим анализатором PVS-Studio
- 31 февраля
- Ускорение сборки C и C++ проектов
- Первый взгляд на RPG: оказывается, это не только ролевые игры
- PVS-Studio 2018: CWE, Java, RPG, macOS, Keil, IAR, MISRA
- Когда дворецкий - жертва
- Дискуссия о статическом анализе кода
- Как программисты с PVS-Studio ошибки в проектах искали
- Да, PVS-Studio умеет выявлять утечки памяти
- Сравнение качества кода Firebird, MySQL и PostgreSQL
- Обзор дефектов кода музыкального софта. Часть 5. Steinberg SDKs
- Обзор дефектов кода музыкального софта. Часть 4. Ardour
- Отчёт PVS-Studio теперь в Html формате
- Андрей Карпов считает, что код проекта Manticore качественнее, чем код проекта Sphinx
- Что не так с уязвимостями в C# проектах?
- Обзор дефектов кода музыкального софта. Часть 3. Rosegarden
- Философия статического анализа кода: у нас 100 программистов, анализатор нашел мало ошибок, он бесполезен?
- Любите статический анализ кода!
- С++17
- Обзор дефектов кода музыкального софта. Часть 2. Audacity
- Философия статического анализа кода: три простых шага
- Обзор дефектов кода музыкального софта. Часть 1. MuseScore
- Передаю привет разработчикам компании Yandex
- Для повышения надежности и безопасности банковского программного обеспечения используйте PVS-Studio
- Как перешагнуть через legacy и начать использовать статический анализ кода
- Полезные новшества в очередном релизе PVS-Studio 6.17
- Используйте PVS-Studio для поиска ошибок в коде своих коллег
- История об одном исключении, или как нам приходится отлаживать чужой код
- Характеристики анализатора PVS-Studio на примере EFL Core Libraries, 10-15% ложных срабатываний
- Tizen: подводим итоги
- Продолжаем изучать Tizen: C# компоненты оказались высокого качества
- Поговорим о микрооптимизациях на примере кода Tizen
- 27000 ошибок в операционной системе Tizen
- Эксперимент по поиску ошибок в коде C# компонентов Tizen
- Статический анализ как часть процесса разработки Unreal Engine
- Головная боль от использования математического софта
- Философия статического анализатора PVS-Studio
- Как PVS-Studio может помочь в поиске уязвимостей?
- PVS-Studio как плагин для SonarQube
- Цена ошибки: кто и сколько платит за промахи программистов?
- Notepad++: проверка кода пять лет спустя
- Предоставляем анализатор PVS-Studio экспертам безопасности
- Зло живёт в функциях сравнения
- Команда PVS-Studio готова поработать над проектом Tizen (открытое письмо)
- Мои аплодисменты проекту Tor
- Сравнение PVS-Studio C# и статического анализатора, встроенного в Visual Studio, на базе кода проекта CruiseControl.NET
- 2038: остался всего 21 год
- Проверяем код динамического анализатора Valgrind с помощью статического анализатора
- Поддержка Visual Studio 2017 и Roslyn 2.0 в PVS-Studio: иногда использовать готовые решения не так просто, как кажется
- Как используя PVS-Studio можно улучшить Visual C++ 2017 Libraries
- Видео о статическом анализе кода
- Команда PVS-Studio: аудит кода и другие услуги
- Простая ошибка при кодировании - не значит нестрашная ошибка
- Статья о статическом анализе кода для менеджеров, которую не стоит читать программистам
- Война машин: PVS-Studio vs TensorFlow
- Как найти 56 потенциальных уязвимостей в коде FreeBSD за один вечер
- Серьёзные ошибки в коде CryEngine V
- Дефекты безопасности, которые устранила команда PVS-Studio на этой неделе: выпуск N4
- Команда PVS-Studio готова выполнять регулярный аудит вашего кода
- Проверяем проект PascalABC.NET с помощью плагинов для SonarQube: SonarC# и PVS-Studio
- Дефекты безопасности, которые устранила команда PVS-Studio на этой неделе: выпуск N3
- Баг месяца: эстафета от PC-Lint к PVS-Studio
- Интересная ошибка в Entity Framework
- Как и почему статические анализаторы борются с ложными срабатываниями
- Дефекты безопасности, которые устранила команда PVS-Studio на этой неделе: выпуск N2
- PVS-Studio: поиск дефектов безопасности
- Объяснение эффекта последней строки
- Дефекты безопасности, которые устранила команда PVS-Studio на этой неделе: выпуск N1
- Топ 10 ошибок в открытых проектах С++ за 2016 год
- Поддержка пользователей, использующих бесплатную лицензию PVS-Studio, теперь осуществляется на сайте Stack Overflow
- Ищем и анализируем ошибки в коде Media Portal 2
- Топ 10 ошибок в проектах C# за 2016 год
- Баги из СССР
- Портирование - дело тонкое: проверка Far Manager под Linux
- Об оптимизациях
- Проверка open-source сервера World of Warcraft CMaNGOS
- Инкрементальный анализ в PVS-Studio: теперь и на сборочном сервере
- PVS-Studio и GitHub-сообщество: начало дружбы
- Предложи проект для проверки анализатором PVS-Studio: теперь и на GitHub
- Переход с CruiseControl.NET на Jenkins в команде разработчиков PVS-Studio
- Почему я не люблю синтетические тесты
- Встреча разработчиков SonarQube и PVS-Studio
- Повторная проверка SharpDevelop: что нового?
- Как замкнуть переменную в C# и не выстрелить себе в ногу
- Свежие интересные материалы от команды PVS-Studio
- Как PVS-Studio ищет ошибки: методики и технологии
- Как 10 лет назад начинался проект PVS-Studio
- Как делался новый дизайн сайта viva64.com разработчиков анализатора кода PVS-Studio
- Истории о новогодних багах
- Первый баг на Марсе
- Снова проверяем исходный код Umbraco
- Проверка Linux Kernel с помощью PVS-Studio для Linux
- Встраиваем PVS-Studio в Anjuta DevStudio (Linux)
- Встраиваем PVS-Studio в Eclipse CDT (Linux)
- Как использовать PVS-Studio бесплатно
- Ищем и анализируем ошибки в коде Orchard CMS
- Linux-версия PVS-Studio устроила себе экскурсию по Disney
- А25_ScientificBug Inside: крохотный шанс сделать громадную ошибку на Pentium
- Виртуальные события в C#: что-то пошло не так
- Контролируем качество кода с помощью платформы SonarQube
- Как создавался PVS-Studio под Linux
- Проблемы, с которыми мы столкнулись при обновлении интерфейса PVS-Studio
- Я отправил текстовый лог PVS-Studio авторам проекта! Я - молодец?
- PVS-Studio покоряет Интернет
- Продолжаем проверять проекты Microsoft: анализ PowerShell
- Р-17 против "Patriot " или о проблеме округления чисел
- Находим ошибки в коде проекта LLVM с помощью анализатора PVS-Studio
- Как работать с отчетом PVS-Studio в Linux
- Linux-версия PVS-Studio не смогла обойти стороной CodeLite
- Идем на рекорд: пятая проверка Chromium
- PVS-Studio для Linux
- Ищем и анализируем ошибки в коде GitExtensions
- Toyota: 81 514 нарушений в коде
- Баг-убийца. Фигак, фигак и Therac-25
- Почему вам не следует использовать финализаторы
- Краткий ответ про MISRA
- Честный обзор PVS-Studio обычным программистом
- Я был просто обязан проверить проект ICQ
- Чат-боты, и как нам с этим поможет Microsoft
- Что скрывает загрузчик GNU? Ищем ошибки в Grub
- Ищем ошибки в Mono: сотни их!
- GDB оказался крепким орешком
- Как избежать ошибок при написании кода на современном C++
- "Ох, опять они со своим PVS-Studio. Везде они..."
- Вновь проверяем Apache HTTP Server
- Космическая ошибка: 370.000.000 $ за Integer overflow
- Находим ошибки в коде компилятора GCC с помощью анализатора PVS-Studio
- Проверяем исходный код MSBuild с помощью PVS-Studio
- Анализируем ошибки в открытых компонентах Unity3D
- По просьбе читателей, проверяем код LDAP-сервера ReOpenLDAP
- Мы нашли 10000 ошибок в различных открытых проектах
- Как статический анализ может дополнять юнит-тестирование на примере NUnit
- В ожидании Linux версии: проверка кода графического редактора Inkscape
- Уточнения о проверке проектов CPython и Ruby
- Долгожданная проверка CryEngine V
- Стряхнём пыль с глобуса: проверяем проект NASA World Wind
- PVS-Studio признаётся в любви к Linux
- Сравниваем реализацию языков Python и Ruby по плотности ошибок
- Команда PVS-Studio готовит технический прорыв, ну а пока перепроверим Blender
- Проверяем исходный код FlashDevelop с помощью PVS-Studio
- Проверяем исходный код библиотеки Nana с помощью PVS-Studio
- Accord.Net: ищем ошибку в коде, из-за которой машины поработят человечество
- Как не наступить на грабли, работая с сериализацией
- PVS-Studio спешит на помощь CERN: проверка проекта Geant4
- Проверяем исходный код WPF Samples от Microsoft
- Единорог, который смог
- Ищем аномалии в X-Ray Engine
- Проверка проекта OpenJDK с помощью PVS-Studio
- Занимательный C#
- Проверяем исходный код 7-Zip с помощью PVS-Studio
- Опечатки в Miranda IM
- Microsoft открыла исходники Xamarin.Forms. Мы не могли упустить шанс проверить их с помощью PVS-Studio
- Введение в Roslyn. Использование для разработки инструментов статического анализа
- Демонстрация возможностей анализатора PVS-Studio на примере открытых проектов компании Microsoft
- Проверка Firebird 3.0
- Краткий обзор статических анализаторов кода на C/C++
- Пояснение про ограничения демонстрационной версии PVS-Studio
- Поиск ошибок с помощью вычисления виртуальных значений
- Проверка PHP7
- Интеграция PVS-Studio в CI процесс
- Главный вопрос программирования, рефакторинга и всего такого
- Логические выражения в C, C++, C# и Java. Как ошибаются профессионалы
- Плохой код пакета для создания 2D-анимаций Toonz
- Безопасная очистка приватных данных
- Проверка проекта Samba с помощью PVS-Studio под Linux
- О преобразовании типов в арифметических выражениях в C++ и C#
- Как обнаружить переполнение 32-битных переменных в длинных циклах в 64-битной программе?
- Проверка исходного кода игрового движка Serious Engine v.1.10 к юбилею шутера Serious Sam
- Проверка кроссплатформенной библиотеки элементов интерфейса GTK+ с помощью PVS-Studio
- Проверяем исходный код плагина PVS-Studio с помощью PVS-Studio
- Об одной интересной ошибке в Lucene.Net
- Свежий взгляд на код Oracle VM VirtualBox
- Ищем ошибки в игровом движке Xenko
- Всего пара багов на 514K строках кода - Amazon Web Services SDK на языке C++
- PVS-Studio покопался в ядре FreeBSD
- Единорог в космосе: проверяем исходный код 'Space Engineers'
- Проверяем исходный код WPF примеров от компании Infragistics
- Undefined behavior ближе, чем вы думаете
- C#, PVS-Studio, ReSharper
- "Почему ещё не изобрели искусственный интеллект?" или проверка инструментария CNTK от Microsoft Research
- Проверяем исходный код набора C#/.NET компонентов от Sony
- ChakraCore: проверка JavaScript-движка для Microsoft Edge
- Сопротивляйтесь добавлению в проект новых библиотек
- Выходу Dolphin Smalltalk 7 под Open Sourсe посвящается
- Проверяем IronPython и IronRuby с помощью PVS-Studio
- Ищем ошибки в MonoDevelop
- Новогодняя проверка .NET Core Libraries (CoreFX)
- Практика использования анализатора PVS-Studio. Теперь с поддержкой С#
- Новогодний релиз PVS-Studio 6.00: проверяем Roslyn
- Большое обновление PVS-Studio: версия 6.00 с поддержкой C#
- Проверяем Microsoft Code Contracts
- Возможен ли запуск 64-битных приложений в 32-битной операционной системе?
- Самая опасная функция в мире С/С++
- Экспериментальная версия PVS-Studio, поддерживающая C#
- Продвижение с помощью контентного маркетинга и сторонних проектов
- Первая статья про проверку C# проекта
- Империя наносит ответный удар
- К тридцатилетию первого C++ компилятора: ищем ошибки в Cfront
- Поиск неинициализированных членов класса
- Пояснение про диагностику V595
- Проверка Wine: Год спустя
- Алло! Это FreeSWITCH? Тогда мы проверим вас!
- Первый вздох PVS-Studio для C#
- Проверяем исходный код Appleseed
- Единороги... Единороги повсюду
- Статический анализ кода Mozilla Thunderbird с помощью PVS-Studio
- Проверка Telegram с помощью PVS-Studio и наоборот
- Документируем ошибки в Doxygen
- 80% скачиваний PVS-Studio осуществляют инопланетяне или у нас проблема?
- PVS-Studio встретился с Octave
- Как перенести проект размером в 9 млн строк кода на 64-битную платформу?
- Просмотр статистики количества ошибок в проекте, или "Ого, в PVS-Studio появились графики!"
- Идеальный путь внедрения статического анализатора кода
- Incredibuild для проверки большого проекта с помощью PVS-Studio
- Интеграция PVS-Studio с системой распределённой сборки Incredibuild
- Статический анализ библиотеки HPX при помощи PVS-Studio
- Как же программа работает со всеми этими ошибками?
- Почему разработчики ПО не используют средства статического анализа для поиска ошибок?
- Как запускать анализатор PVS-Studio
- Хвостовая рекурсия в C++ с использованием 64-битных переменных - Часть 2
- О том, как мы опробовали статический анализ на своем проекте учебного симулятора рентгенэндоваскулярной хирургии
- Хвостовая рекурсия в C++ с использованием 64-битных переменных
- Как команда PVS-Studio улучшила код Unreal Engine
- C++ в современном мире
- Статический анализ Wireshark средствами PVS-Studio
- Единорог в поисках внеземного разума: анализ кода SETI@home
- Доклад на форуме PHDays 2015
- Проверяем открытый исходный код UEFI для Intel Galileo при помощи PVS-Studio
- 64-битный код в 2015 году: что нового в диагностике возможных проблем?
- Критика языка Rust и почему C/C++ никогда не умрет
- Я наконец-то понял, что такое unit-экономика!
- Проверяем исходный код FreeCAD и его "нехорошие" зависимости
- Анализ исходного кода движка Godot
- Мы закрываем проект CppCat
- Сравнение возможностей анализатора кода, входящего в Visual Studio 2015, и PVS-Studio
- Проверка операционной системы Haiku (семейство BeOS) с помощью PVS-Studio. Часть 2
- Проверка операционной системы Haiku (семейство BeOS) с помощью PVS-Studio. Часть 1
- Советы основателя. Евгений Рыжков, генеральный директор "СиПроВер" и разработчик PVS-Studio
- PVS-Studio: новый триальный режим
- Баги. Баги никогда не меняются
- Пожалуйста, используйте e-mail при общении с нами
- О зле, случайно призванном учениками магов
- Проверка Vim при помощи PVS-Studio в GNU/Linux
- PVS-Studio: 25 подозрительных фрагментов кода из CoreCLR
- Как быстро внедрить статический анализ в большой проект?
- Проверка проекта LibreOffice
- Отзыв команды PVS-Studio о конференции C++ Russia, 2015
- Какие баги нашёл LibreOffce в PVS-Studio?
- Разыменовывание нулевого указателя приводит к неопределённому поведению
- PVS-Studio для Microsoft Visual Studio Community 2013
- PVS-Studio для Visual C++
- Проверяем MatrixSSL с помощью PVS-Studio и Cppcheck
- PVS-Studio и враждебная среда обитания
- Twitter С++ программиста (обновлённый вариант)
- Размышления над разыменованием нулевого указателя
- Вычисление средней температуры по больнице
- Ответы на вопросы читателей статей про PVS-Studio, версия 2015
- PVS-Studio покопался во внутренностях Linux (3.18.1)
- Проверка симулятора The Powder Toy
- Заметка о новых настройках диагностик
- Заметка о горячих клавишах
- Мы прекратили поддержку среды разработки Embarcadero RAD Studio
- Почему студентам нужен анализатор кода CppCat
- Зачем понадобилась система подавления сообщений статического анализатора
- Техосмотр движка Spring RTS
- Проект Miranda NG получает приз "дикие указатели" (часть вторая)
- Проект Miranda NG получает приз "дикие указатели" (часть первая)
- Новый механизм подавления ненужных сообщений анализатора
- Бесплатный CppCat для студентов
- Тяп-ляп, проверил библиотеки Visual C++ 2013 (update 3)
- Таблица виртуальных методов и техника безопасности
- Проверка библиотеки Network Security Services
- По мотивам "трёх интервью о статических анализаторах", или четвертое интервью
- Единорог заинтересовался KDE
- Три интервью о статических анализаторах кода
- Проверяем Oracle VM VirtualBox. Часть 2
- Проверяем Oracle VM VirtualBox. Часть 1
- Давай поиграем в игру
- Пересечение PVS-Studio и Cppcheck
- Valgrind - это хорошо, но недостаточно
- Заметка про проверку PHP
- Asterisk: PVS-Studio заинтересовался телефонией
- Проверка кроссплатформенного фреймворка Cocos2d-x
- Чем статический анализ отличается от предупреждений компилятора?
- Проверяем исходный код GIMP с помощью PVS-Studio
- Проверяем Wine с помощью PVS-Studio и Clang Static Analyzer
- Можем ли мы доверять используемым библиотекам?
- Проверка PVS-Studio с помощью Clang
- Visual Studio отказывается от поддержки Add-In расширений в Community Previews 14
- Проверка Bitcoin
- Интеграция PVS-Studio в C++Builder скоро будет удалена
- Краткое сравнение PVS-Studio и CppCat
- Как мы тестируем анализаторы кода PVS-Studio и CppCat
- Файл StdAfx.h
- Команда PVS-Studio расширяет кругозор, выполняя разработку на заказ
- Работа с ложными срабатываниями в PVS-Studio и CppCat
- Легко и просто проверяем Firefox с помощью PVS-Studio Standalone
- 64-битные ошибки здесь
- Эффект последней строки
- PVS-Studio проверяет OpenMW: во вселенной Morrowind не всё гладко
- Сравнение возможностей статических анализаторов кода PVS-Studio и CppCat
- Tesseract. Распознаем ошибки в системе распознавания
- Анализатор PVS-Studio проверяет TortoiseGit
- PVS-Studio теперь поддерживает C++/CLI
- Сенсация от PVS-Studio: "Найден идеальный проект без единой ошибки!"
- C++11 и 64-битные ошибки
- Проверка открытого проекта WinSCP, разрабатываемого в Embarcadero C++ Builder
- Проверка фреймворка Qt 5
- Скучная статья про проверку OpenSSL
- Долгожданная проверка Unreal Engine 4
- Статический и динамический анализ кода
- PVS-Studio и 3DO-эмуляторы
- Самая короткая статья о проверке nginx
- Занимательная археология. Или PVS-Studio проверяет Microsoft Word 1.1a
- Математикам доверяй, но проверяй
- PVS-Studio теперь поддерживает любую сборочную систему на Windows и любой компилятор. Легко и "из коробки"
- Единорог заинтересовался микромиром
- Как мы сравнивали анализаторы кода CppCat, Cppcheck, PVS-Studio, Visual Studio
- Сравнение анализаторов кода: CppCat, Cppcheck, PVS-Studio, Visual Studio
- Побочный результат: проверяем CryEngine 3 SDK с помощью PVS-Studio
- Про гребцов и программистов, или аналогии в академической гребле и бизнесе по разработке программного обеспечения
- Сколько стоит одна ошибка в наших программах, или какие ошибки бывают в PVS-Studio и CppCat
- Эксперимент по проверке библиотеки glibc
- Как продвигать продукты для программистов
- Побочный результат: проверяем Firebird с помощью PVS-Studio
- Open-source проекты, которые мы проверили с помощью PVS-Studio
- LibRaw, Coverity SCAN, PVS-Studio
- CppCat – тульский анализатор кода C++ с большими амбициями
- Беседа с Андреем Карповым, техническим директором проектов PVS-Studio и CppCat
- Обзор статического анализатора CppCat
- Анализ проекта Source SDK
- Альтернатива PVS-Studio за $250
- Вы все еще кипятите и сравниваете this с нулем?
- Как мы пытаемся продать PVS-Studio в Google или очередные ошибки в Chromium
- Предновогодняя проверка PostgreSQL
- Продолжение проверки Geant4
- Copy-Paste и мюоны
- Качество встраиваемого ПО или погром всё-таки случился
- PVS-Studio для Visual C++ (устаревшая статья)
- Пример использования статического анализатора
- Проверка VirtualDub
- PVS-Studio теперь работает и без среды Visual Studio - проверяем препроцессированные файлы от чего угодно
- "Разработчики PVS-Studio, вы вообще слышали про Clang?", или сравнение PVS-Studio и Clang без кода
- Скорость работы PVS-Studio на разном железе – что быстрее: ноутбук или десктоп?
- PVS-Studio. Отсчёт цен в обратную сторону
- Стандартная лицензия PVS-Studio теперь может использоваться в команде до 9 человек, а не до 5 как было раньше
- Twitter С++ программиста
- WTF?
- Взят рубеж в 1000 примеров ошибок, найденных в публичных проектах!
- Идем по грибы после Cppcheck
- Большой Калькулятор выходит из-под контроля
- Руководство по разработке модулей расширений на C# для Visual Studio 2005-2012 и Atmel Studio
- После подключения бесперебойника программа больше не работает
- Заземлённые указатели
- Научная деятельность компании ООО "СиПроВер"
- PVS-Studio наконец то добрался до Boost
- Итак, вы хотите заглушить это предупреждение в Visual C++...
- Проверка open-source игры Multi Theft Auto
- Из подвала секретной лаборатории разработчиков PVS-Studio...
- Третья проверка кода проекта Chromium с помощью анализатора PVS-Studio
- Не зная брода, не лезь в воду. Часть N4
- Мы получили статус технологического партнера Embarcadero!
- Совместный вебинар с Embarcadero про C++11 в C++Builder XE4!
- Мир опечаток и Copy-Paste
- Повторная проверка TortoiseSVN с помощью анализатора кода PVS-Studio
- Мониторим программу, которая мониторит компьютерные сети
- Обнаружены ошибки в коде C++Builder
- Почему драйверы для Windows 8 глючат
- Создание общего решения Visual Studio (.sln файл) из нескольких отдельных проектов: One Solution to Rule Them All
- Как мы разрабатывали версию PVS-Studio для Embarcadero RAD Studio
- Статический анализ наиболее эффективен при регулярном использовании. И вот почему...
- Использование PVS-Studio в очень больших проектах (интеграция с MSBuild)
- Ключ к PVS-Studio на 5 дней
- Чем отличается статический анализ от рецензии (ревизии) кода
- PVS-Studio и open-source
- Отличие %p от %x
- Устаревшее описание функций в MSDN, не учитывающее 64-битность
- Как корректно привести указатель к int в 64-битной программе?
- Непонятные ошибки при компиляции 64-битной версии, error C2664
- Работа с типом size_t в функциях prinft, scanf и аналогичных им
- Использование макросов _WIN64/WIN64
- Стоит ли исправлять все ошибки, найденные статическим анализатором кода?
- Можно ли использовать более 2 гигабайт памяти в 32-битной программе, запущенной в 64-битной Windows?
- От чего зависит размер указателя в C++ на различных платформах?
- Почему 64-битные приложения работают быстрее 32-битных?
- Является ли size_t стандартным типом в языке Си++? В языке Си?
- Можно ли в 64-битной программе использовать 32-битные указатели?
- Какими преимуществами обладают 64-разрядные процессоры по сравнению с 32-разрядными?
- Большой отчет о повторной проверке проекта ReactOS
- PVS-Studio проверяет OpenCV
- Мы переехали в новый офис! Фото...
- Совместный вебинар с Embarcadero про проблемы миграции на 64-битные системы - актуально для C++Builder XE3U1!
- Полезности на сайте viva64.com
- Маленькая заметка о проекте Casablanca
- 64-bit
- Как продать продукт людям, принимающим решения
- Немного о взаимодействии PVS-Studio и Clang
- А пишут ли ещё на Си++?
- Как правильно распечатать значение типа __int64, size_t и ptrdiff_t
- C++Builder, сборка 64-битных приложений и ренессанс Viva64
- PVS-Studio 5.00: поддержка Embarcadero C++Builder, Windows Store и Windows Phone 8 приложения в Visual Studio
- Статический анализ проектов для C++Builder и WinRT
- Немного про OpenSSL
- Язык D спешит на помощь
- Наши планы на ближайшее время: PVS-Studio для Embarcadero C++ Builder, мажорное обновление до 5.00 и изменение цен
- Как статический анализ дополняет TDD
- Интересно, а в какой среде работают разработчики Microsoft? Linux?
- Работа PVS-Studio с антивирусом Microsoft Security Essentials/Windows Defender
- SQL-подобные запросы для C++ кода: задача для статического анализа или нет?
- Безопасность, безопасность! А вы её тестируете?
- R&D вокруг PVS-Studio
- Чем дальше, тем экзотичнее ошибки
- Visual Studio 2012 и макросы
- Проектная модель Visual C++
- Создание плагина для среды Visual Studio 2005-2012
- Интеграция в настройки Visual Studio
- Инструментальные окна Visual Studio
- Команды Visual Studio
- Объектная модель автоматизации Visual Studio. Интерфейсы EnvDTE
- Об одной метрике качества кода
- На нашем сайте появилась полная база ошибок, обнаруженных нами с помощью PVS-Studio
- Коллекция примеров для изучения типовых опечаток и ошибок на языке Си/Си++
- Создание, отладка и развертывание пакетов расширения сред Microsoft Visual Studio 2005/2008/2010/2012
- Разработка модулей расширения для Visual Studio 2005/2008/2010/2012 с использованием C# на реальных примерах
- Распространенная ошибка при компиляции 64-битного приложения: error C2440, OnTimer
- Что скрывают в себе комментарии
- Обнаружены ошибки в библиотеках Visual C++ 2012
- Что печатает этот код?
- Во всём виноват компилятор
- Как с нами связаться
- Немного о проверке шаблонов
- Ощущения, которые подтвердились числами
- Так ли хорошо 100% покрытие кода статическим анализом?
- Проверка проекта Trans-Proteomic Pipeline (TPP)
- Статический анализ следует применять регулярно
- Возможно ли портировать код на 64-битную платформу находясь на 32-битной?
- Что такое макрос POINTER_32 ?
- Почему 64-битные операционные системы используют для адресации только 48-битные адреса
- Болезни программ: memset
- Запуск PVS-Studio на Linux возможен?
- PVS-Studio: отзывы
- Сравнение статического анализа в Visual Studio 2012 (Visual C++ 2012) и PVS-Studio
- Тестирование PVS-Studio в системе с SSD-диском
- Сравнение Cppcheck и PVS-Studio
- Коллекция интересных ресурсов по тематике программирования на языке Си/Си++
- Всё о PVS-Studio
- Прощай #define private public
- Проверка проекта Blender с помощью PVS-Studio
- Я хочу продать в компанию Intel лицензию на PVS-Studio
- Что общего у статического анализа и поисковиков? Хороший "top"!
- Не зная брода, не лезь в воду. Часть третья
- Советы по command line версии PVS-Studio
- Изучение способов привлечения на сайт программного продукта
- Вторая проверка WinMerge с помощью PVS-Studio
- Как 32-битной программе узнать, что она запущена в 64-битной Windows?
- Тайное о PVS-Studio
- Использование PVS-Studio для проверки проектов, использующих Marmalade SDK
- 100 багов в Open Source проектах на языке Си/Си++
- Что такое идеальный статический анализатор, или почему идеал не достижим
- Предупреждения компилятора C4311 и C4312, выдаваемые при использовании ключа /Wp64
- Лицензирование PVS-Studio: почему у нас нет Single User License?
- Как в Win64 узнать, сколько процессорных ядер в системе?
- Проверка проекта Dolphin-emu
- Анализ проекта TrinityCore с помощью PVS-Studio
- Ответы на вопросы, которые часто задают после прочтения наших статей
- Повторная проверка проекта Notepad++
- Проверка проекта Quake III Arena GPL
- Не зная брода, не лезь в воду. Часть вторая
- Как мы решали задачу реализации trial-режима в анализаторе кода PVS-Studio
- Не зная брода, не лезь в воду. Часть первая
- Существует ли 64-битная версия Visual Studio?
- Как используя ifdef узнать, что объявлен тип DWORD_PTR?
- Warning C4267 в выражении unsigned n = str.find(substr)
- Где 64-битный компилятор в Visual Studio?
- Почему происходит замещение значения переменной среды ProgramFiles на ProgramFiles(x86) ?
- Сколько памяти будет доступно приложению в Win32 и в Win64
- Путаница с WPARAM и UINT, а также LPARAM с LONG
- Почему Windows помещает 64-битные модули в System32?
- Эквивалентны ли типы size_t и uintptr_t
- Почему WoW64 использует перенаправление реестра и файловой системы?
- Можно заставить тип size_t быть 32-битным в 64-битной программе?
- Перезаписывать память - зачем?
- Статический анализ кода
- Как уменьшить вероятность ошибки на этапе написания кода. Заметка N4
- PVS-Studio — советы по повышению скорости работы
- О пользе автоматической фильтрации одинаковых сообщений
- "Проверьте еще вот этот проект..."
- Диалог Windows Error Reporting
- О нашей библиотеке VivaCore
- Что поражает меня при разработке статического анализатора кода
- PVS-Studio: анализируем код Doom 3
- Мифы о статическом анализе. Миф пятый – можно составить маленькую программу, чтобы оценить инструмент
- Мифы о статическом анализе. Миф четвёртый – программисты хотят добавлять свои правила в статический анализатор
- Мифы о статическом анализе. Миф третий – динамический анализ лучше чем статический
- Мифы о статическом анализе. Миф второй – профессиональные разработчики не допускают глупых ошибок
- Мифы о статическом анализе. Миф первый – статический анализатор это продукт разового применения
- Джон Кармак про PVS-Studio
- Самая большая и интересная рекламная статья (70 листов) про статический анализ кода
- Реклама PVS-Studio - статический анализ кода на языке Си и Си++
- Бесплатные лицензии на PVS-Studio для Microsoft MVP
- PVS-Studio vs Chromium - продолжение
- Нашему сотруднику Андрею Карпову присвоен статус MVP
- PVS-Studio Output Window vs plain text stdout
- Проверка Intel IPP Samples for Windows - продолжение
- Как добавить новое диагностическое правило в PVS-Studio? Будни разработчиков...
- PVS-Studio: анализируем код операционной системы ReactOS
- Ctrl+S и Visual Studio Output Window
- Выступление Джона Кармака на QuakeCon 2011: рассказ о статических анализаторах кода
- PVS-Studio vs Clang
- Как в PVS-Studio мы решали одну инженерную задачу в течение нескольких лет
- Проверка проекта Intel Energy Checker SDK (IEC SDK) с помощью PVS-Studio
- Лев Толстой и статический анализ кода
- PVS-Studio: изменение лицензионной политики
- Изменение лицензионной политики PVS-Studio
- Как уменьшить вероятность ошибки на этапе написания кода. Заметка N3
- Как мы тестируем анализатор кода
- Пояснения к статье про Copy-Paste
- PVS-Studio научился следить за тем, как вы программируете
- Использование анализатора PVS-Studio в процессе инкрементальной сборки в Microsoft Visual Studio 2010
- Статический анализ и ROI
- PVS-Studio vs Chromium
- Андрей Карпов выступил с докладом на конференции Application Developer Days 2011
- Выпуск PVS-Studio 4.20 – первый шаг в направлении ARM
- Сравнение статического анализа общего назначения из VS 2010 и PVS-Studio на примере пяти открытых проектов
- Новая версия печатного и электронного буклета про PVS-Studio
- О внедрении PVS-Studio у наших клиентов
- Почему статический анализ кода необходимо проводить регулярно, а не время от времени (к примеру "каждый релиз")
- Мы осваиваем Reddit
- Трудности сравнения анализаторов кода или не забывайте об удобстве использования
- Вечный вопрос измерения времени
- Как уменьшить вероятность ошибки на этапе написания кода. Заметка N2
- Разработана фирменная символика для наших статей
- Сделать правильно – трудно (об одной непростой ошибке)
- Чему равно выражение sizeof(&X), если X объявлен как "char *X[n];" ?
- Как уменьшить вероятность ошибки на этапе написания кода. Заметка N1
- По колено в Си++ г... коде
- Есть ли практический смысл использовать для итераторов префиксный оператор инкремента ++it, вместо постфиксного it++
- Как узнать в 32-битной программе, какие 64-битные процессы запущены?
- Что использовать вместо rundll32.exe для запуска 64-битных DLL
- Почему создание 64-битной версии программы может быть не простым делом?
- Что можно использовать вместо инструкции "int 3" в 64-битной программе?
- Как с помощью #ifdef узнать, что собирается 64-битный проект в Visual Studio
- Intel IPP Samples for Windows - работа над ошибками
- Бесплатная лицензия на статический анализатор PVS-Studio для разработчиков, блогеров и авторов статей
- WOW6432Node и API-функции RegOpenKeyEx / RegEnumKeyEx
- Последствия использования технологии Copy-Paste при программировании на Си++ и как с этим быть
- Выпущена новая версия анализатора кода PVS-Studio 4.10
- Выпуск финальной версии PVS-Studio 4.00 и завершение этапа тестирования публичной бета-версии
- Ситуации, когда может пригодиться статический анализатор кода
- Проверка проекта Ultimate Toolbox
- Почему PVS-Studio 4.00 будет платным решением :-(
- Новый дизайн сайта viva64.com
- Статический анализ и регулярные выражения
- Работа с PVS-Studio в Visual Studio 2010 из-под нескольких учётных записей Windows
- Проблема с символами '(' и ')' в системной переменной PATH при использовании PVS-Studio из Visual Studio 2008
- Трепещи, мир! Мы выпустили PVS-Studio 4.00 с анализатором общего назначения
- Готова новая версия анализатора PVS-Studio 4.00 BETA
- Статический анализ: ошибки в медиаплеере и безглючная аська
- Новая версия сайта viva64.com
- Исследование "Обзор рынка инструментов для разработки многоядерных приложений"
- Разница в подходах анализа кода компилятором и выделенным инструментом
- Как скомпилировать 64-битное приложение, используя Visual C++ Express 2005/2008/2010?
- Как скомпилировать C++ программу в Visual Studio 2010, чтобы она работала в Windows 2000?
- Почему Visual С++ больше не поддерживает встроенный ассемблер для Intel 64 и IA-64?
- Функции класса ntohl/htonl и работа с 64-битными значениями
- Статический анализ исходного кода на примере WinMerge
- Распространенная ошибка при компиляции 64-битного приложения: error C4235, Assembler
- О сложностях программирования, или C# нас не спасет?
- Поиск явного приведения указателя к 32-битному типу
- Проблемы 64-битного кода в реальных программах: а что же Linux?
- Сотрудники ООО "СиПроВер" приняли участие в конференции ADD-2010
- Выпущена новая версия анализатора кода PVS-Studio 3.64
- Intel VTune Amplifier XE 2011 beta под строгим взглядом программиста
- Выпущена новая версия анализатора кода PVS-Studio 3.63
- Регулярное использование статического анализа кода в командной разработке
- Щупаем новый Intel Parallel Studio XE 2011 beta
- Д'Артаньян и интернет, или работа над проблемой битых ссылок
- Пять дней на исправление ошибки в два символа, или миф о всемогущих технологиях при разработке программ
- 64-битные программы и вычисления с плавающей точкой
- Выпущена новая версия анализатора кода PVS-Studio 3.62
- Большой брат помогает тебе
- Выпущена новая версия анализатора кода PVS-Studio 3.61
- Сравнение возможностей PVS-Studio и Visual Studio 2010 по выявлению дефектов в 64-битных программах
- Коллекция примеров 64-битных ошибок в реальных программах
- Почему в PVS-Studio в окне Error List иногда не показывается номер строки, в которой обнаружена проблема?
- Новые диагностические возможности, реализованные в PVS-Studio 3.60
- Выпущена новая версия анализатора кода PVS-Studio 3.60
- Причины, по которым 64-битные программы требуют больше стековой памяти
- Общение разработчиков с пользователями программ
- Интервью с Issam Lahlali, одним из создателей инструмента CppDepend
- Привлечение внимания потенциальных клиентов с помощью статей
- Получение отклика от потенциальных пользователей
- Наши сотрудники посетили конференцию КРИ2010
- "Что это такое?" – новая возможность анализатора кода PVS-Studio
- Разработка инструментов тестирования и верификации кода
- 64 бита
- Как отключить IntelliSence в Visual Studio 2010?
- Выпущена новая версия анализатора кода PVS-Studio 3.53
- Выпущена новая версия анализатора кода PVS-Studio 3.52
- Изменения в инфраструктуре инструментов для программистов
- Выпущена новая версия анализатора кода PVS-Studio 3.51
- Статический анализ Си++ кода и новый стандарт языка C++0x
- Параллельные заметки N5 — продолжаем знакомиться с конструкциями OpenMP
- Выпущена новая версия анализатора кода PVS-Studio 3.50
- Новый дизайн на нашем сайте
- База знаний по вопросам разработки 64-битных и параллельных приложений появилась на нашем сайте
- Параллельные заметки N4 - продолжаем знакомиться с конструкциями OpenMP
- Параллельные заметки #3 - базовые конструкции OpenMP
- Как стандарт C++0x поможет в борьбе с 64-битными ошибками
- Платформа автоматизации сборок CruiseControl.NET
- Параллельные заметки №2 – инструментарий для OpenMP
- Суперкомпьютерные технологии в науке, образовании и промышленности
- Описание ошибки интеграции Intel Parallel Studio Service Pack 1 в Visual Studio 2005/2008
- "Improve your... Google?"
- Ключ /Wp64 и ошибка с обработкой шаблонов
- Параллельные заметки N1 – технология OpenMP
- На нашем сайте стали доступны "Уроки разработки 64-битных приложений на языке Си/Си++"
- Выпущена новая версия PVS-Studio 3.45!
- 64-битные технологии - еще одно направление в современном программном обеспечении
- Выпущена новая версия PVS-Studio 3.44!
- Visual Studio Team System, /analyze и D9040
- Знакомство с уровнями распараллеливания
- Верификация и валидация
- Проблемы 64-битного кода в реальных программах: qsort
- Поиск 64-битных ошибок в реализации массивов
- Оптимизация в мире 64-битных ошибок
- Тонкость с виртуальными функциями
- Много ядер хорошо, а быстрый жесткий диск тоже хорошо
- Выпущена новая версия PVS-Studio 3.43
- Embarcadero C++Builder и проверка 64-битного кода
- Значение "Чисел Фибоначчи" в истории параллельного программирования
- Один из ответов на вопрос "Кому вообще нужна вся эта параллельность?"
- Программные ошибки, которых не бывает
- Почему A + B != A - (-B)
- Зависит ли результат статического анализа кода от используемого компилятора?
- Проблемы в реальных программах - каких только ошибок не бывает на свете...
- Вопросы и ответы по библиотеке VivaCore (VivaCore FAQ)
- Выпущена новая версия PVS-Studio 3.42!
- Tachyon и Parallel Lint
- Холодный Tachyon
- Проблемы 64-битного кода в реальных программах: изменение типа указателя
- Мы приняли участие в выставке в рамках конференции "Инвестиции в высокие технологии"
- Выпущена новая версия PVS-Studio 3.41!
- PVS-Studio в Intel Business Exchange Software Store
- Наши сотрудники посетили симпозиум Intel "Высокопроизводительные вычисления"
- Выпущена новая версия PVS-Studio 3.40
- Технология OpenMP
- Красивая 64-битная ошибка на языке Си
- Открыт русскоязычный форум на сайте Intel по разработке 64-битных приложений!
- Будьте аккуратны с директивой atomic
- Наша компания подтвердила свою компетенцию в Intel Partner Program!
- Наша компания провела презентацию PVS-Studio в рамках конференции "Платформа 2010"
- PVS-Studio выдает ошибку "Some diagnostic messages may contain incorrect line number for file ..." (продолжение)
- А существуют ли в реальности 64-битные ошибки?
- Интервью с Анатолием Кузнецовым, автором библиотеки BitMagic C++ Library
- Встреча участников Intel Software Network
- CEE-SECR 2009
- Посещение выставки Softool
- Представление информации на сайте
- Компания ООО "СиПроВер" приняла участие в выставке ChipEXPO-2009
- Трансляция нашего блога в англоязычном сегменте software.intel.com!
- Сравнение PVS-Studio с другими анализаторами кода
- 64-битный мир становится ближе
- Неудачная попытка сравнить PVS-Studio (VivaMP) и Intel C/C++ ("Parallel Lint")
- Посещение конференции ISDEF 2009
- Трансляция нашего блога в русскоязычной части software.intel.com!
- Посещение выставки Info Security Russia 2009
- 64-битная версия Loki
- Выпуск PVS-Studio 3.30 состоялся 25 сентября 2009
- Наш русскоязычный блог теперь транслируется на blogs.gotdotnet.ru!
- Сотрудники компании ООО "СиПроВер" посетили выставку "Передовые Технологии Автоматизации. ПТА - 2009"
- Как оценить процесс 64-битной миграции Си/Си++ приложений?
- Что такое size_t и ptrdiff_t
- Проблемы 64-битного кода в реальных программах: виртуальные функции
- Возможные проблемы с stdafx.h при использовании PVS-Studio
- Сотрудники ООО "СиПроВер" выступят с докладом на конференции CEE-SECR 2009
- Cannot process the whole file "foo.cpp"
- Вышла новая версия PVS-Studio 3.20
- Обработка исключений внутри параллельных секций
- Магические константы и функция malloc()
- PVS-Studio выдает ошибку "Some diagnostic messages may contain incorrect line number for file ..."
- Проблемы 64-битного кода в реальных программах: магические константы
- Наш сайт www.viva64.com сменил хостинг-провайдера
- Состоялся выпуск PVS-Studio 3.10
- Проверка Linux-приложений с помощью PVS-Studio на Windows
- Безопасность 64-битного кода
- PVS-Studio и проверка Loki
- Атавизмы в больших системах
- Новый программный продукт PVS-Studio 3.00 вышел 27 июля 2009 года!
- Функция распечатки типа выражения
- Метрики кода программного обеспечения
- OpenMP 3.0 и итераторы
- Курс по статическому анализу
- Программы ООО "СиПроВер" в каталоге Select Software
- Первые наши практические исследования в области расчета метрик
- Планы ООО "СиПроВер" по развитию собственных программных продуктов
- Что такое "Parallel Lint"?
- Использование rand() в параллельных секциях OpenMP
- VivaCore, вопросы по документации
- Первое впечатление от использования Intel Parallel Inspector
- 64-битный конь, который умеет считать
- Обзор наших продуктов на сайте известного реселлера "SoftKey"
- Наша статья в RSDN Magazine
- Изменения выравнивания типов и последствия
- ООО "СиПроВер" объявляет о выходе новой версии статического анализатора Viva64 2.30
- ООО "СиПроВер" объявляет о выходе новой версии статического анализатора VivaMP 1.10
- 7 шагов по переносу программы на 64-битную систему
- VivaMP, система выявления ошибок в коде параллельных программ на языке С++, использующих OpenMP
- Softkey.ru – наш реселлер для продаж Viva64 и VivaMP в России, на Украине, в Белоруссии и Казахстане
- Интервью с Дмитрием Вьюковым – автором верификатора Relacy Race Detector (RRD)
- ООО "СиПроВер" на конференции "Параллельные вычислительные технологии 2009"
- Разработка статического анализатора кода для обнаружения ошибок переноса программ на 64-битные системы
- Allsoft.ru, наш новый реселлер для продаж Viva64 и VivaMP в России и странах СНГ
- Семинар в НИВЦ МГУ
- OpenMP и исключения (exceptions)
- Вышла финальная версия анализатора кода VivaMP 1.00, предназначенного для разработчиков OpenMP программ
- Поиск ошибок явного приведения типа в 64-битных программах
- Online диагностика ошибок связанных с использованием технологии OpenMP и архитектуры x64
- Компания ООО "СиПроВер" приглашает авторов статей
- Мирное сосуществование PC-Lint и VivaMP
- Viva64 для оптимизации структур данных
- Неэффективность last() в реальном мире
- Многопроцессорным компьютерам - параллельные программы!
- Проблемы 64-битного кода в реальных программах: FreeBSD
- Запуск блога ООО "СиПроВер"
- Терминология – новый раздел на сайте www.viva64.com
- Отладка и оптимизация многопоточных OpenMP-программ
- Изучение проблемы: перенос Си++ библиотек для работы с облаками точек итриангулированными сетками на 64-битную платформу
- Введение в 64 бита для начинающих, или где же 64-битный мир?
- Сайт www.viva64.com становится полноценным информационным ресурсом для разработчиков программ
- Константин Книжник: статический анализ, взгляд со стороны
- Вышла бета-версия анализатора кода VivaMP, предназначенного для выявления ошибок в параллельных OpenMP-программах
- VivaMP - инструмент для OpenMP
- OpenMP и статический анализ кода
- Тестирование параллельных программ
- Сразу две наших статьи опубликованы в журнале "Известия ТулГУ. Технические науки", выпуск N3 – 2008
- Вышла новая версия Viva64 2.20
- Оптимизация 64-битных программ
- Архитектура AMD64 (EM64T)
- Наш новый реселлер - Avangate
- Вышла новая версия Viva64 2.10
- ООО "СиПроВер" и E.G.S. s.r.l. заявили о завершении работ по подготовке 64-битной версии решений LEIOS
- Вышла печатная версия статьи "32 подводных камня OpenMP при программировании на C++" в журнале "RSDN Magazine #2' 2008"
- Поиск уязвимостей в программах с помощью анализаторов кода
- Как появилась библиотека VivaCore
- Запущена новая версия сайта www.viva64.com
- Вышла печатная версия статьи "Библиотека анализа кода VivaCore" в журнале "RSDN Magazine" #1' 2008
- Статья "Подходы к верификации и тестированию 64-битных приложений" напечатана в "Информационные технологии" #7' 2008
- Выпущена новая версия анализатора кода Viva64 2.0
- Это сложно
- Описание VivaVisualCode
- ООО "СиПроВер" теперь находится в новом офисе!
- В ИСП РАН прошел семинар с участием наших специалистов
- Сравнение диагностических возможностей анализаторов при проверке 64-битного кода
- 32 подводных камня OpenMP при программировании на Си++
- В ВЦ РАН прошел семинар с участием наших специалистов
- Построение систем автоматического протоколирования Си/Си++ кода
- VivaCore - быстрый старт
- 64 бита, /Wp64, Visual Studio 2008, Viva64 и все, все, все...
- Преимущества использования Viva64
- Выпущена библиотека анализа кода VivaCore 1.0
- Команда Viva64.com преобразована в компанию "Системы программной верификации"
- Применение технологии статического анализа кода при разработке параллельных программ
- Разработка ресурсоемких приложений в среде Visual C++
- Применение статического анализа при разработке программ
- Введение в проблематику разработки параллельных программ
- Использование библиотеки анализа кода OpenC++: модификация, улучшение, исправление ошибок
- Краткое описание библиотеки анализа кода VivaCore
- Сущность библиотеки анализа кода VivaCore
- Поиск ловушек в Си/Си++ коде при переносе приложений под 64-битную версию Windows
- Перенос приложений на 64-битные платформы, или: "Не говори гоп, пока не перепрыгнешь... ."
- Забытые проблемы разработки 64-битных программ
- Viva64: что это и для кого?
- Проблемы 64-битного кода на примерах
- Статический анализ кода для верификации 64-битных приложений
- Проблемы тестирования 64-битных приложений
- Разработка драйверов для 64-битных версий Windows
- 20 ловушек переноса Си++ - кода на 64-битную платформу
- 64 бита для Си++ программистов: от /Wp64 к Viva64
- Viva64: разработка 64-битных приложений
- Установка PC-Lint и его использование в Visual Studio 2005
- Особенности разработки 64-битных приложений
- Урок 1. Что такое 64-битные системы
- Урок 2. Поддержка 32-битных приложений в 64-битной среде Windows
- Урок 3. Перенос кода на 64-битные системы. За и против
- Урок 4. Создание 64-битной конфигурации
- Урок 5. Сборка 64-битного приложения
- Урок 6. Ошибки в 64-битном коде
- Урок 7. Проблемы выявления 64-битных ошибок
- Урок 8. Статический анализ для выявления 64-битных ошибок
- Урок 9. Паттерн 1. Магические числа
- Урок 10. Паттерн 2. Функции с переменным количеством аргументов
- Урок 11. Паттерн 3. Операции сдвига
- Урок 12. Паттерн 4. Виртуальные функции
- Урок 13. Паттерн 5. Адресная арифметика
- Урок 14. Паттерн 6. Изменение типа массива
- Урок 15. Паттерн 7. Упаковка указателей
- Урок 16. Паттерн 8. Memsize-типы в объединениях
- Урок 17. Паттерн 9. Смешанная арифметика
- Урок 18. Паттерн 10. Хранение в double целочисленных значений
- Урок 19. Паттерн 11. Сериализация и обмен данными
- Урок 20. Паттерн 12. Исключения
- Урок 21. Паттерн 13. Выравнивание данных
- Урок 22. Паттерн 14. Перегруженные функции
- Урок 23. Паттерн 15. Рост размеров структур
- Урок 24. Фантомные ошибки
- Урок 25. Практическое знакомство с паттернами 64-битных ошибок
- Урок 26. Оптимизация 64-битных программ
- Урок 27. Особенности создания инсталляторов для 64-битного окружения
- Урок 28. Оценка стоимости процесса 64-битной миграции Си/Си++ приложений
- Курс по разработке 64-битных приложений на языке C и C++
- Курс по разработке 64-битных приложений на языке C и C++ (одним файлом)
- 64-битный
- 64-битная ошибка
- Заброшенная блокировка. Abandoned Lock
- Абстрактное синтаксическое дерево
- Адресная арифметика
- AMD64
- АСД
- Стандарт кодирования
- Критическая секция. Critical section
- Цикломатическая сложность
- Выравнивание данных
- Модель данных
- Взаимная блокировка
- EM64T
- Явное приведение типов
- Синтаксический анализ
- IA-64
- ILP32
- ILP32LL (ILP32LL64)
- ILP64
- Неявное приведение типов
- Intel 64
- intptr_t
- INT_PTR
- Лексический анализ
- LLP64 (ILP32LLP64, P64)
- Потерянный сигнал. Lost Signal
- LP64 (I32LP64)
- Измерение качества программного обеспечения
- Memsize-тип
- Метапрограммирование
- MPI
- Многопоточность
- Мютекс. Mutex
- OpenC++
- Стандарт OpenMP
- Параллельное программирование
- Дерево разбора
- Препроцессирование (в языке Си/Си++)
- ptrdiff_t
- Состояние гонки. Race condition
- Семафор. Semaphore
- size_t
- Голодание
- Статический анализ кода
- Поток. Параллельный поток
- Обход синтаксического дерева
- uintptr_t
- UINT_PTR
- VivaCore
- w64
- Win32
- Win64
- WoW64
- /Wp64
- x64
- x86-64
- x86
- Стандарт IEC 61508
- DWORD_PTR
- Access Violation
- Приоритет операций в языке Си и Си++
- Точка следования
- Неопределённое поведение
- Переполнение буфера
- Copy-paste программирование
- Функции с переменным количеством аргументов
- Динамический анализ кода
- Выход за границу массива
- Бесконечный цикл
- Обзор кода (code review)
- Инструменты статического анализа кода
- Анализ исходного кода (analyze of source code)
- Препроцессированный *.i файл
- Качество программного обеспечения
- Неинициализированная переменная
- Использование неинициализированной памяти
- Предупреждения компилятора
- Код программы
- Баги
- Cppcheck
- Оптимизация кода
- Деление на ноль
- Количество строк кода (Lines of code)
- Переполнение стека
- Терминальный ноль
- TestComplete
- Недостижимый код
- Intel VTune Performance Analyzer
- WinRT
- Тестирование
- LONG_PTR
- rsize_t
- Precompiled Headers
- StdAfx.h
- intmax_t / uintmax_t
- Потенциальная уязвимость
- OWASP, OWASP Топ-10
- Отсутствие срабатываний статического анализатора кода (false-negative results)
- Ложноположительные срабатывания статического анализатора кода
- Межсайтовый скриптинг (XSS)
- Nullable value types
- Path Traversal
- Common Weakness Enumeration (CWE)
- CERT Coding Standards
- Уязвимость нулевого дня
- Taint-анализ (анализ помеченных данных, taint checking)
- Linkage
- SQL-инъекция
- Семантика перемещения
- Функция std::forward
- RVO и NRVO
- Категории выражений и виды ссылок
- Функция std::move
- Проверка типов в C#: typeof, GetType, is
- Неполный тип
- Итераторы
- XEE-атака (billion laughs attack)
- XXE-атака (XML External Entity)
- Внедрение команд ОС
- std::common_type
- Итераторы-адаптеры
- Storage duration
- Server-Side Request Forgery (SSRF)
- DoS-атака
- Cross-site request forgery
- Memory leak
- Common Vulnerabilities and Exposures (CVE)
- Static Application Security Testing (SAST)
- Катастрофический возврат в регулярных выражениях
- Кибератака
- Small String Optimization
- Массив переменной длины
- Реализация односвязного списка на C
- Список
- Реализация двусвязного списка на C
- Реализация двусвязного списка на C++
- Реализация односвязного списка на C++
- NullReferenceException
- Упаковка и распаковка в C#
- SCA (Software Composition Analysis)
- Software Development Lifecycle (SDLC)
- Secure Software Development Lifecycle (SSDLC)
- Статистический анализ кода
- Модельный вариант (ошибки)
- Сигнатурный анализ
- Межпроцедурный контекстно-чувствительный анализ
- Межмодульный анализ
- Проверка кода с помощью PVS-Studio из командной строки (для Visual C++ проектов)
- Информация о правах и торговых марках
- PVS-Studio и Continuous Integration
- Прямая интеграция анализатора в системы автоматизации сборки (C и C++)
- Знакомство со статическим анализатором кода PVS-Studio на Windows
- Ознакомительный режим PVS-Studio
- История версий PVS-Studio
- Настройки: Общее
- Настройки: Common Analyzer Settings
- Настройки: Detectable Errors
- Настройки: Don't Check Files
- Настройки: Keyword Message Filtering
- Настройки: Registration
- Подавление ложноположительных предупреждений
- Системные требования анализатора PVS-Studio
- Режимы работы анализатора кода
- Предопределённый макрос PVS_STUDIO
- Работа со списком диагностических сообщений в Visual Studio
- Старая история версий PVS-Studio (до версии 7.00)
- Советы по повышению скорости работы PVS-Studio
- Режим инкрементального анализа PVS-Studio
- Автоматическое развёртывание PVS-Studio
- Использование внешних инструментов в PVS-Studio. Интеграция с системами отслеживания ошибок
- Использование относительных путей в файлах отчётов PVS-Studio
- Прямая интеграция анализа PVS-Studio в сборочный процесс MSBuild. Режим интеграции MSBuild в Visual Studio IDE
- Устранение неисправностей при работе PVS-Studio
- Настройки: Specific Analyzer Settings
- Проверка проектов независимо от сборочной системы (C и C++)
- Подавление сообщений анализатора (отключение выдачи предупреждений на существующий код)
- Просмотр результатов анализа в приложении C and C++ Compiler Monitoring UI
- Проверка проектов Visual Studio / MSBuild / .NET из командной строки с помощью PVS-Studio
- Как запустить PVS-Studio в Linux и macOS
- Интеграция результатов анализа PVS-Studio в SonarQube
- Просмотр и конвертация результатов анализа (форматы SARIF, HTML и др.)
- Установка и обновление PVS-Studio в Linux
- Дополнительная настройка диагностических правил C и C++ анализатора
- Ускорение анализа C и C++ кода с помощью систем распределённой сборки (Incredibuild)
- Установка и обновление PVS-Studio в macOS
- Проверка Unreal Engine проектов
- PVS-Studio для Embedded-разработки
- Как ввести лицензию PVS-Studio и что делать дальше
- Запуск PVS-Studio в Docker
- Запуск PVS-Studio в Jenkins
- Запуск PVS-Studio в TeamCity
- Оповещение команд разработчиков (утилита blame-notifier)
- Установка PVS-Studio C# на Linux и macOS
- Работа PVS-Studio в JetBrains Rider и CLion
- Запуск PVS-Studio в Azure DevOps
- Запуск PVS-Studio в CircleCI
- Анализ в режиме коммитов и слияния веток (pull/merge requests)
- Запуск PVS-Studio в GitLab CI/CD
- Запуск PVS-Studio в Travis CI
- Документация по анализатору кода PVS-Studio (одной страницей)
- Документация по статическому анализатору кода PVS-Studio
- Интеграция с Qt Creator без использования плагина PVS-Studio
- Загрузка результатов анализа в Jira
- Технологии, используемые в PVS-Studio
- Работа PVS-Studio в Visual Studio
- Отображение наиболее интересных предупреждений анализатора
- Использование диагностических правил группы OWASP в PVS-Studio
- Анализ C и C++ проектов на основе JSON Compilation Database
- Использование PVS-Studio в GitHub Actions
- Использование PVS-Studio с помощью CMake-модуля
- Анализ проектов на Unity с помощью PVS-Studio
- Кроссплатформенная проверка C и C++ проектов в PVS-Studio
- Фильтрация и обработка вывода анализатора при помощи файлов конфигурации диагностик (.pvsconfig)
- Исключение из анализа файлов и каталогов
- Использование расширения PVS-Studio для Visual Studio Code
- Использование расширения PVS-Studio для Qt Creator
- Файл конфигурации анализа Settings.xml
- Использование PVS-Studio в AppVeyor
- Использование PVS-Studio в Buddy
- Интеграция результатов анализа PVS-Studio в DefectDojo
- Работа с ядром Java анализатора из командной строки
- Работа PVS-Studio в IntelliJ IDEA и Android Studio
- Интеграция PVS-Studio Java в сборочную систему Maven
- Интеграция PVS-Studio Java в сборочную систему Gradle
- Аннотирование C и C++ кода в формате JSON
- Аннотирование C# кода в формате JSON
- Механизм пользовательских аннотаций в формате JSON
- Интеграция результатов анализа PVS-Studio в CodeChecker
- V001. A code fragment from 'file' cannot be analyzed.
- V002. Some diagnostic messages may contain incorrect line number.
- V003. Unrecognized error found...
- V101. Implicit assignment type conversion to memsize type.
- V102. Usage of non memsize type for pointer arithmetic.
- V103. Implicit type conversion from memsize type to 32-bit type.
- V104. Implicit type conversion to memsize type in an arithmetic expression.
- V105. N operand of '?:' operation: implicit type conversion to memsize type.
- V106. Implicit type conversion N argument of function 'foo' to memsize type.
- V107. Implicit type conversion N argument of function 'foo' to 32-bit type.
- V108. Incorrect index type: 'foo[not a memsize-type]'. Use memsize type instead.
- V109. Implicit type conversion of return value to memsize type.
- V110. Implicit type conversion of return value from memsize type to 32-bit type.
- V111. Call of function 'foo' with variable number of arguments. N argument has memsize type.
- V112. Dangerous magic number N used.
- V113. Implicit type conversion from memsize to double type or vice versa.
- V114. Dangerous explicit type pointer conversion.
- V115. Memsize type is used for throw.
- V116. Memsize type is used for catch.
- V117. Memsize type is used in the union.
- V118. malloc() function accepts a dangerous expression in the capacity of an argument.
- V119. More than one sizeof() operator is used in one expression.
- V120. Member operator[] of object 'foo' is declared with 32-bit type argument, but is called with memsize type argument.
- V121. Implicit conversion of the type of 'new' operator's argument to size_t type.
- V122. Memsize type is used in the struct/class.
- V123. Allocation of memory by the pattern "(X*)malloc(sizeof(Y))" where the sizes of X and Y types are not equal.
- V2001. Consider using the extended version of the 'foo' function here.
- V2002. Consider using the 'Ptr' version of the 'foo' function here.
- V201. Explicit conversion from 32-bit integer type to memsize type.
- V202. Explicit conversion from memsize type to 32-bit integer type.
- V203. Explicit type conversion from memsize to double type or vice versa.
- V301. Unexpected function overloading behavior. See N argument of function 'foo' in derived class 'derived' and base class 'base'.
- V302. Member operator[] of 'foo' class has a 32-bit type argument. Use memsize-type here.
- V303. The function is deprecated in the Win64 system. It is safer to use the 'foo' function.
- V004. Diagnostics from the 64-bit rule set are not entirely accurate without the appropriate 64-bit compiler. Consider utilizing 64-bit compiler if possible.
- V124. Function 'Foo' writes/reads 'N' bytes. The alignment rules and type sizes have been changed. Consider reviewing this value.
- V125. It is not advised to declare type 'T' as 32-bit type.
- V126. Be advised that the size of the type 'long' varies between LLP64/LP64 data models.
- V501. Identical sub-expressions to the left and to the right of 'foo' operator.
- V502. The '?:' operator may not work as expected. The '?:' operator has a lower priority than the 'foo' operator.
- V503. Nonsensical comparison: pointer < 0.
- V504. Semicolon ';' is probably missing after the 'return' keyword.
- V505. The 'alloca' function is used inside the loop. This can quickly overflow stack.
- V506. Pointer to local variable 'X' is stored outside the scope of this variable. Such a pointer will become invalid.
- V507. Pointer to local array 'X' is stored outside the scope of this array. Such a pointer will become invalid.
- V508. The 'new type(n)' pattern was detected. Probably meant: 'new type[n]'.
- V509. Exceptions raised inside noexcept functions must be wrapped in a try..catch block.
- V510. The 'Foo' function receives class-type variable as Nth actual argument. This is unexpected behavior.
- V511. The sizeof() operator returns pointer size instead of array size.
- V512. Call of the 'Foo' function will lead to buffer overflow.
- V513. Use _beginthreadex/_endthreadex functions instead of CreateThread/ExitThread functions.
- V514. Potential logical error. Size of a pointer is divided by another value.
- V515. The 'delete' operator is applied to non-pointer.
- V516. Non-null function pointer is compared to null. Consider inspecting the expression.
- V517. Potential logical error. The 'if (A) {...} else if (A) {...}' pattern was detected.
- V518. The 'malloc' function allocates suspicious amount of memory calculated by 'strlen(expr)'. Perhaps the correct expression is strlen(expr) + 1.
- V519. The 'x' variable is assigned values twice successively. Perhaps this is a mistake.
- V520. Comma operator ',' in array index expression.
- V521. Expressions that use comma operator ',' are dangerous. Make sure the expression is correct.
- V522. Possible null pointer dereference.
- V523. The 'then' statement is equivalent to the 'else' statement.
- V524. It is suspicious that the body of 'Foo_1' function is fully equivalent to the body of 'Foo_2' function.
- V525. Code contains collection of similar blocks. Check items X, Y, Z, ... in lines N1, N2, N3, ...
- V526. The 'strcmp' function returns 0 if corresponding strings are equal. Consider inspecting the condition for mistakes.
- V527. The 'zero' value is assigned to pointer. Probably meant: *ptr = zero.
- V528. Pointer is compared with 'zero' value. Probably meant: *ptr != zero.
- V529. Suspicious semicolon ';' after 'if/for/while' operator.
- V530. Return value of 'Foo' function is required to be used.
- V531. The sizeof() operator is multiplied by sizeof(). Consider inspecting the expression.
- V532. Consider inspecting the statement of '*pointer++' pattern. Probably meant: '(*pointer)++'.
- V533. It is possible that a wrong variable is incremented inside the 'for' operator. Consider inspecting 'X'.
- V534. It is possible that a wrong variable is compared inside the 'for' operator. Consider inspecting 'X'.
- V535. The 'X' variable is used for this loop and outer loops.
- V536. Constant value is represented by an octal form.
- V537. Potential incorrect use of item 'X'. Consider inspecting the expression.
- V538. The line contains control character 0x0B (vertical tabulation).
- V539. Iterators are passed as arguments to 'Foo' function. Consider inspecting the expression.
- V540. Member 'x' should point to string terminated by two 0 characters.
- V541. String is printed into itself. Consider inspecting the expression.
- V542. Suspicious type cast: 'Type1' to ' Type2'. Consider inspecting the expression.
- V543. It is suspicious that value 'X' is assigned to the variable 'Y' of HRESULT type.
- V544. It is suspicious that the value 'X' of HRESULT type is compared with 'Y'.
- V545. Conditional expression of 'if' statement is incorrect for the HRESULT type value 'Foo'. The SUCCEEDED or FAILED macro should be used instead.
- V801. Decreased performance. It is better to redefine the N function argument as a reference. Consider replacing 'const T' with 'const .. &T' / 'const .. *T'.
- V546. The 'Foo(Foo)' class member is initialized with itself.
- V547. Expression is always true/false.
- V548. TYPE X[][] is not equivalent to TYPE **X. Consider inspecting type casting.
- V549. The 'first' argument of 'Foo' function is equal to the 'second' argument.
- V005. Cannot determine active configuration for project. Please check projects and solution configurations.
- V550. Suspicious precise comparison. Consider using a comparison with defined precision: fabs(A - B) < Epsilon or fabs(A - B) > Epsilon.
- V551. Unreachable code under a 'case' label.
- V552. A bool type variable is incremented. Perhaps another variable should be incremented instead.
- V553. Length of function body or class declaration is more than 2000 lines. Consider refactoring the code.
- V554. Incorrect use of smart pointer.
- V555. Expression of the 'A - B > 0' kind will work as 'A != B'.
- V556. Values of different enum types are compared.
- V557. Possible array overrun.
- V558. Function returns pointer/reference to temporary local object.
- V802. On 32-bit/64-bit platform, structure size can be reduced from N to K bytes by rearranging the fields according to their sizes in decreasing order.
- V006. File cannot be processed. Analysis aborted by timeout.
- V559. Suspicious assignment inside the condition expression of 'if/while/for' operator.
- V560. Part of conditional expression is always true/false.
- V561. Consider assigning value to 'foo' variable instead of declaring it anew.
- V562. Bool type value is compared with value of N. Consider inspecting the expression.
- V204. Explicit conversion from 32-bit integer type to pointer type.
- V205. Explicit conversion of pointer type to 32-bit integer type.
- V563. An 'else' branch may apply to the previous 'if' statement.
- V564. The '&' or '|' operator is applied to bool type value. Check for missing parentheses or use the '&&' or '||' operator.
- V565. Empty exception handler. Silent suppression of exceptions can hide errors in source code during testing.
- V566. Integer constant is converted to pointer. Check for an error or bad coding style.
- V567. Modification of variable is unsequenced relative to another operation on the same variable. This may lead to undefined behavior.
- V568. It is suspicious that the argument of sizeof() operator is the expression.
- V569. Truncation of constant value.
- V803. Decreased performance. It is more effective to use the prefix form of ++it. Replace iterator++ with ++iterator.
- V007. Deprecated CLR switch was detected. Incorrect diagnostics are possible.
- V570. Variable is assigned to itself.
- V571. Recurring check. This condition was already verified in previous line.
- V572. Object created using 'new' operator is immediately cast to another type. Consider inspecting the expression.
- V804. Decreased performance. The 'Foo' function is called twice in the specified expression to calculate length of the same string.
- V220. Suspicious sequence of types castings: memsize -> 32-bit integer -> memsize.
- V573. Use of uninitialized variable 'Foo'. The variable was used to initialize itself.
- V574. Pointer is used both as an array and as a pointer to single object.
- V575. Function receives suspicious argument.
- V576. Incorrect format. Consider checking the Nth actual argument of the 'Foo' function.
- V577. Label is present inside switch(). Check for typos and consider using the 'default:' operator instead.
- V578. Suspicious bitwise operation was detected. Consider inspecting it.
- V805. Decreased performance. It is inefficient to identify an empty string by using 'strlen(str) > 0' construct. A more efficient way is to check: str[0] != '\0'.
- V127. An overflow of the 32-bit variable is possible inside a long cycle which utilizes a memsize-type loop counter.
- V579. The 'Foo' function receives the pointer and its size as arguments. This may be a potential error. Inspect the Nth argument.
- V580. Suspicious explicit type casting. Consider inspecting the expression.
- V581. Conditional expressions of 'if' statements located next to each other are identical.
- V582. Consider reviewing the source code that uses the container.
- V583. The '?:' operator, regardless of its conditional expression, always returns the same value.
- V584. Same value is present on both sides of the operator. The expression is incorrect or can be simplified.
- V585. Attempt to release memory that stores the 'Foo' local variable.
- V586. The 'Foo' function is called twice to deallocate the same resource.
- V587. Suspicious sequence of assignments: A = B; B = A;.
- V806. Decreased performance. The expression of strlen(MyStr.c_str()) kind can be rewritten as MyStr.length().
- V588. Expression of the 'A =+ B' kind is used. Possibly meant: 'A += B'. Consider inspecting the expression.
- V589. Expression of the 'A =- B' kind is used. Possibly meant: 'A -= B'. Consider inspecting the expression.
- V590. Possible excessive expression or typo. Consider inspecting the expression.
- V591. Non-void function must return value.
- V592. Expression is enclosed by parentheses twice: ((expression)). One pair of parentheses is unnecessary or typo is present.
- V593. Expression 'A = B == C' is calculated as 'A = (B == C)'. Consider inspecting the expression.
- V008. Unable to start the analysis on this file.
- V2003. Explicit conversion from 'float/double' type to signed integer type.
- V2004. Explicit conversion from 'float/double' type to unsigned integer type.
- V2005. C-style explicit type casting is utilized. Consider using: static_cast/const_cast/reinterpret_cast.
- V594. Pointer to array is out of array bounds.
- V595. Pointer was used before its check for nullptr. Check lines: N1, N2.
- V596. Object was created but is not used. Check for missing 'throw' keyword.
- V597. Compiler may delete 'memset' function call that is used to clear 'Foo' buffer. Use the RtlSecureZeroMemory() function to erase private data.
- V598. Memory manipulation function is used to work with a class object containing a virtual table pointer. The result of such an operation may be unexpected.
- V599. The virtual destructor is not present, although the 'Foo' class contains virtual functions.
- V600. The 'Foo' pointer is always not equal to NULL. Consider inspecting the condition.
- V601. Suspicious implicit type casting.
- V602. The '<' operator should probably be replaced with '<<'. Consider inspecting this expression.
- V603. Object was created but not used. If you wish to call constructor, use 'this->Foo::Foo(....)'.
- V807. Decreased performance. Consider creating a pointer/reference to avoid using the same expression repeatedly.
- V604. Number of iterations in loop equals size of a pointer. Consider inspecting the expression.
- V605. Unsigned value is compared to the NN number. Consider inspecting the expression.
- V606. Ownerless token 'Foo'.
- V607. Ownerless expression 'Foo'.
- V608. Recurring sequence of explicit type casts.
- V609. Possible division or mod by zero.
- V610. Undefined behavior. Check the shift operator.
- V611. Memory allocation and deallocation methods are incompatible.
- V612. Unconditional 'break/continue/return/goto' within a loop.
- V613. Suspicious pointer arithmetic with 'malloc/new'.
- V614. Use of 'Foo' uninitialized variable.
- V2006. Implicit type conversion from enum type to integer type.
- V615. Suspicious explicit conversion from 'float *' type to 'double *' type.
- V616. Use of 'Foo' named constant with 0 value in bitwise operation.
- V617. Argument of the '|' bitwise operation always contains non-zero value. Consider inspecting the condition.
- V618. Dangerous call of 'Foo' function. The passed line may contain format specification. Example of safe code: printf("%s", str);
- V619. Array is used as pointer to single object.
- V620. Expression of sizeof(T)*N kind is summed up with pointer to T type. Consider inspecting the expression.
- V621. Loop may execute incorrectly or may not execute at all. Consider inspecting the 'for' operator.
- V622. First 'case' operator may be missing. Consider inspecting the 'switch' statement.
- V623. Temporary object is created and then destroyed. Consider inspecting the '?:' operator.
- V624. Use of constant NN. The resulting value may be inaccurate. Consider using the M_NN constant from <math.h>.
- V625. Initial and final values of the iterator are the same. Consider inspecting the 'for' operator.
- V626. It's possible that ',' should be replaced by ';'. Consider checking for typos.
- V627. Argument of sizeof() is a macro, which expands to a number. Consider inspecting the expression.
- V628. It is possible that a line was commented out improperly, thus altering the program's operation logic.
- V629. Bit shifting of the 32-bit value with a subsequent expansion to the 64-bit type. Consider inspecting the expression.
- V630. The 'malloc' function is used to allocate memory for an array of objects that are classes containing constructors/destructors.
- V631. Defining absolute path to file or directory is considered a poor coding style. Consider inspecting the 'Foo' function call.
- V632. Argument is of the 'T' type. Consider inspecting the NN argument of the 'Foo' function.
- V633. The '!=' operator should probably be used here. Consider inspecting the expression.
- V634. Priority of '+' operation is higher than priority of '<<' operation. Consider using parentheses in the expression.
- V635. Length should be probably multiplied by sizeof(wchar_t). Consider inspecting the expression.
- V636. Expression was implicitly cast from integer type to real type. Consider using an explicit type cast to avoid overflow or loss of a fractional part.
- V637. Use of two opposite conditions. The second condition is always false.
- V638. Terminal null is present inside a string. Use of '\0xNN' characters. Probably meant: '\xNN'.
- V639. One of closing ')' parentheses is probably positioned incorrectly. Consider inspecting the expression for function call.
- V640. Code's operational logic does not correspond with its formatting.
- V641. Buffer size is not a multiple of element size.
- V642. Function result is saved inside the 'byte' type variable. Significant bits may be lost. This may break the program's logic.
- V643. Suspicious pointer arithmetic. Value of 'char' type is added to a string pointer.
- V644. Suspicious function declaration. Consider creating a 'T' type object.
- V645. Function call may lead to buffer overflow. Bounds should not contain size of a buffer, but a number of characters it can hold.
- V646. The 'else' keyword may be missing. Consider inspecting the program's logic.
- V647. Value of 'A' type is assigned to a pointer of 'B' type.
- V648. Priority of '&&' operation is higher than priority of '||' operation.
- V649. Two 'if' statements with identical conditional expressions. The first 'if' statement contains function return. This means that the second 'if' statement is senseless.
- V650. Type casting is used 2 times in a row. The '+' operation is executed. Probably meant: (T1)((T2)a + b).
- V2007. This expression can be simplified. One of the operands in the operation equals NN. Probably it is a mistake.
- V651. Suspicious operation of 'sizeof(X)/sizeof(T)' kind, where 'X' is of the 'class' type.
- V652. Operation is executed 3 or more times in a row.
- V653. Suspicious string consisting of two parts is used for initialization. Comma may be missing.
- V808. An array/object was declared but was not utilized.
- V654. Condition of a loop is always true/false.
- V655. Strings were concatenated but not used. Consider inspecting the expression.
- V656. Variables are initialized through the call to the same function. It's probably an error or un-optimized code.
- V809. Verifying that a pointer value is not NULL is not required. The 'if (ptr != NULL)' check can be removed.
- V2008. Cyclomatic complexity: NN. Consider refactoring the 'Foo' function.
- V657. Function always returns the same value of NN. Consider inspecting the function.
- V658. Value is subtracted from unsigned variable. It can result in an overflow. In such a case, the comparison operation may behave unexpectedly.
- V659. Functions' declarations with 'Foo' name differ in 'const' keyword only, while these functions' bodies have different composition. It is suspicious and can possibly be an error.
- V660. Program contains an unused label and function call: 'CC:AA()'. Probably meant: 'CC::AA()'.
- V810. Decreased performance. The 'A' function was called several times with identical arguments. The result should possibly be saved to a temporary variable, which then could be used while calling the 'B' function.
- V661. Suspicious expression 'A[B < C]'. Probably meant 'A[B] < C'.
- V662. Different containers are used to set up initial and final values of iterator. Consider inspecting the loop expression.
- V664. Pointer is dereferenced on the initialization list before its check for null inside the body of a constructor function.
- V811. Decreased performance. Excessive type casting: string -> char * -> string.
- V663. Infinite loop is possible. The 'cin.eof()' condition is insufficient to break from the loop. Consider adding the 'cin.fail()' function call to the conditional expression.
- V665. Possible incorrect use of '#pragma warning(default: X)'. The '#pragma warning(push/pop)' should be used instead.
- V666. Value may not correspond with the length of a string passed with YY argument. Consider inspecting the NNth argument of the 'Foo' function.
- V667. The 'throw' operator does not have any arguments and is not located within the 'catch' block.
- V668. Possible meaningless check for null, as memory was allocated using 'new' operator. Memory allocation will lead to an exception.
- V812. Decreased performance. Ineffective use of the 'count' function. It can possibly be replaced by the call to the 'find' function.
- V128. A variable of the memsize type is read from a stream. Consider verifying the compatibility of 32 and 64 bit versions of the application in the context of a stored data.
- V2009. Consider passing the 'Foo' argument as a pointer/reference to const.
- V669. Argument is a non-constant reference. The analyzer is unable to determine the position where this argument is modified. Consider checking the function for an error.
- V670. Uninitialized class member is used to initialize another member. Remember that members are initialized in the order of their declarations inside a class.
- V671. The 'swap' function may interchange a variable with itself.
- V672. It is possible that creating a new variable is unnecessary. One of the function's arguments has the same name and this argument is a reference.
- V813. Decreased performance. The argument should probably be rendered as a constant pointer/reference.
- V673. More than N bits are required to store the value, but the expression evaluates to the T type which can only hold K bits.
- V675. Writing into read-only memory.
- V674. Expression contains a suspicious mix of integer and real types.
- V814. Decreased performance. The 'strlen' function was called multiple times inside the body of a loop.
- V676. Incorrect comparison of BOOL type variable with TRUE.
- V677. Custom declaration of standard type. Consider using the declaration from system header files instead.
- V678. Object is used as an argument to its own method. Consider checking the first actual argument of the 'Foo' function.
- V679. The 'X' variable was not initialized. This variable is passed by reference to the 'Foo' function in which its value will be used.
- V680. The 'delete A, B' expression only destroys the 'A' object. Then the ',' operator returns a resulting value from the right side of the expression.
- V681. The language standard does not define order in which 'Foo' functions are called during evaluation of arguments.
- V682. Suspicious literal: '/r'. It is possible that a backslash should be used instead: '\r'.
- V683. The 'i' variable should probably be incremented instead of the 'n' variable. Consider inspecting the loop expression.
- V684. Value of variable is not modified. It is possible that '1' should be present instead of '0'. Consider inspecting the expression.
- V685. The expression contains a comma. Consider inspecting the return statement.
- V686. Pattern A || (A && ...) was detected. The expression is excessive or contains a logical error.
- V687. Size of array calculated by sizeof() operator was added to a pointer. It is possible that the number of elements should be calculated by sizeof(A)/sizeof(A[0]).
- V688. The 'foo' local variable has the same name as one of class members. This can result in confusion.
- V689. Destructor of 'Foo' class is not declared as virtual. A smart pointer may not destroy an object correctly.
- V2010. Handling of two different exception types is identical.
- V690. The class implements a copy constructor/operator=, but lacks the operator=/copy constructor.
- V691. Empirical analysis. Possible typo inside the string literal. The 'foo' word is suspicious.
- V692. Inappropriate attempt to append a null character to a string. To determine the length of a string by 'strlen' function correctly, use a string ending with a null terminator in the first place.
- V693. It is possible that 'i < X.size()' should be used instead of 'X.size()'. Consider inspecting conditional expression of the loop.
- V694. The condition (ptr - const_value) is only false if the value of a pointer equals a magic constant.
- V815. Decreased performance. Consider replacing the expression 'AA' with 'BB'.
- V695. Range intersections are possible within conditional expressions.
- V2011. Consider inspecting signed and unsigned function arguments. See NN argument of function 'Foo' in derived class and base class.
- V696. The 'continue' operator will terminate 'do { ... } while (FALSE)' loop because the condition is always false.
- V697. Number of elements in the allocated array equals the size of a pointer in bytes.
- V206. Explicit conversion from 'void *' to 'int *'.
- V698. Functions of strcmp() kind can return any values, not only -1, 0, or 1.
- V699. It is possible that 'foo = bar == baz ? .... : ....' should be used here instead of 'foo = bar = baz ? .... : ....'. Consider inspecting the expression.
- V700. It is suspicious that variable is initialized through itself. Consider inspecting the 'T foo = foo = x;' expression.
- V701. Possible realloc() leak: when realloc() fails to allocate memory, original pointer is lost. Consider assigning realloc() to a temporary pointer.
- V702. Classes should always be derived from std::exception (and alike) as 'public'.
- V703. It is suspicious that the 'foo' field in derived class overwrites field in base class.
- V704. The expression is always false on newer compilers. Avoid using 'this == 0' comparison.
- V705. It is possible that 'else' block was forgotten or commented out, thus altering the program's operation logics.
- V2012. Possibility of decreased performance. It is advised to pass arguments to std::unary_function/std::binary_function template as references.
- V706. Suspicious division: sizeof(X) / Value. Size of every element in X array is not equal to divisor.
- V707. Giving short names to global variables is considered to be bad practice.
- V708. Dangerous construction is used: 'm[x] = m.size()', where 'm' is of 'T' class. This may lead to undefined behavior.
- V709. Suspicious comparison found: 'a == b == c'. Remember that 'a == b == c' is not equal to 'a == b && b == c'.
- V710. Suspicious declaration. There is no point to declare constant reference to a number.
- V711. It is dangerous to create a local variable within a loop with a same name as a variable controlling this loop.
- V712. Compiler may optimize out this loop or make it infinite. Use volatile variable(s) or synchronization primitives to avoid this.
- V713. Pointer was used in the logical expression before its check for nullptr in the same logical expression.
- V714. Variable is not passed into foreach loop by reference, but its value is changed inside of the loop.
- V715. The 'while' operator has empty body. This pattern is suspicious.
- V716. Suspicious type conversion: HRESULT -> BOOL (BOOL -> HRESULT).
- V717. It is suspicious to cast object of base class V to derived class U.
- V718. The 'Foo' function should not be called from 'DllMain' function.
- V221. Suspicious sequence of types castings: pointer -> memsize -> 32-bit integer.
- V719. The switch statement does not cover all values of the enum.
- V720. The 'SuspendThread' function is usually used when developing a debugger. See documentation for details.
- V2013. Consider inspecting the correctness of handling the N argument in the 'Foo' function.
- V721. The VARIANT_BOOL type is used incorrectly. The true value (VARIANT_TRUE) is defined as -1.
- V722. Abnormality within similar comparisons. It is possible that a typo is present inside the expression.
- V723. Function returns a pointer to the internal string buffer of a local object, which will be destroyed.
- Сообщения PVS-Studio
- V724. Converting integers or pointers to BOOL can lead to a loss of high-order bits. Non-zero value can become 'FALSE'.
- V725. Dangerous cast of 'this' to 'void*' type in the 'Base' class, as it is followed by a subsequent cast to 'Class' type.
- V726. Attempt to free memory containing the 'int A[10]' array by using the 'free(A)' function.
- V207. A 32-bit variable is utilized as a reference to a pointer. A write outside the bounds of this variable may occur.
- V727. Return value of 'wcslen' function is not multiplied by 'sizeof(wchar_t)'.
- V728. Excessive check can be simplified. The '||' operator is surrounded by opposite expressions 'x' and '!x'.
- V729. Function body contains the 'X' label that is not used by any 'goto' statements.
- V730. Not all members of a class are initialized inside the constructor.
- V731. The variable of char type is compared with pointer to string.
- V732. Unary minus operator does not modify a bool type value.
- V733. It is possible that macro expansion resulted in incorrect evaluation order.
- V3001. There are identical sub-expressions to the left and to the right of the 'foo' operator.
- V3003. The use of 'if (A) {...} else if (A) {...}' pattern was detected. There is a probability of logical error presence.
- V3012. The '?:' operator, regardless of its conditional expression, always returns one and the same value.
- V3014. It is likely that a wrong variable is being incremented inside the 'for' operator. Consider reviewing 'X'.
- V3015. It is likely that a wrong variable is being compared inside the 'for' operator. Consider reviewing 'X'.
- V3016. The variable 'X' is being used for this loop and for the outer loop.
- V3009. It's odd that this method always returns one and the same value of NN.
- V3019. It is possible that an incorrect variable is compared with null after type conversion using 'as' keyword.
- V3013. It is odd that the body of 'Foo_1' function is fully equivalent to the body of 'Foo_2' function.
- V3021. There are two 'if' statements with identical conditional expressions. The first 'if' statement contains method return. This means that the second 'if' statement is senseless.
- V3022. Expression is always true/false.
- V3025. Incorrect format. Consider checking the N format items of the 'Foo' function.
- V052. A critical error had occurred.
- V3008. The 'x' variable is assigned values twice successively. Perhaps this is a mistake.
- V3028. Consider inspecting the 'for' operator. Initial and final values of the iterator are the same.
- V3034. Consider inspecting the expression. Probably the '!=' should be used here.
- V3035. Consider inspecting the expression. Probably the '+=' should be used here.
- V3036. Consider inspecting the expression. Probably the '-=' should be used here.
- V3033. It is possible that this 'else' branch must apply to the previous 'if' statement.
- V3002. The switch statement does not cover all values of the enum.
- V3004. The 'then' statement is equivalent to the 'else' statement.
- V3005. The 'x' variable is assigned to itself.
- V3006. The object was created but it is not being used. The 'throw' keyword could be missing.
- V3007. Odd semicolon ';' after 'if/for/while' operator.
- V3010. The return value of function 'Foo' is required to be utilized.
- V3011. Two opposite conditions were encountered. The second condition is always false.
- V3017. A pattern was detected: A || (A && ...). The expression is excessive or contains a logical error.
- V3018. Consider inspecting the application's logic. It's possible that 'else' keyword is missing.
- V3020. An unconditional 'break/continue/return/goto' within a loop.
- V3023. Consider inspecting this expression. The expression is excessive or contains a misprint.
- V3024. An odd precise comparison. Consider using a comparison with defined precision: Math.Abs(A - B) < Epsilon or Math.Abs(A - B) > Epsilon.
- V3026. The constant NN is being utilized. The resulting value could be inaccurate. Consider using the KK constant.
- V3027. The variable was utilized in the logical expression before it was verified against null in the same logical expression.
- V3030. Recurring check. This condition was already verified in previous line.
- V3031. An excessive check can be simplified. The operator '||' operator is surrounded by opposite expressions 'x' and '!x'.
- V734. Excessive expression. Examine the substrings "abc" and "abcd".
- V3029. The conditional expressions of the 'if' statements situated alongside each other are identical.
- V3032. Waiting on this expression is unreliable, as compiler may optimize some of the variables. Use volatile variable(s) or synchronization primitives to avoid this.
- V3037. An odd sequence of assignments of this kind: A = B; B = A;
- V3039. Consider inspecting the 'Foo' function call. Defining an absolute path to the file or directory is considered a poor style.
- V735. Possibly an incorrect HTML. The "</XX>" closing tag was encountered, while the "</YY>" tag was expected.
- V3038. The argument was passed to method several times. It is possible that another argument should be passed instead.
- V3040. The expression contains a suspicious mix of integer and real types.
- V3041. The expression was implicitly cast from integer type to real type. Consider utilizing an explicit type cast to avoid the loss of a fractional part.
- V3043. The code's operational logic does not correspond with its formatting.
- V3042. Possible NullReferenceException. The '?.' and '.' operators are used for accessing members of the same object.
- V743. The memory areas must not overlap. Use 'memmove' function.
- V736. The behavior is undefined for arithmetic or comparisons with pointers that do not point to members of the same array.
- V737. It is possible that ',' comma is missing at the end of the string.
- V738. Temporary anonymous object is used.
- V739. EOF should not be compared with a value of the 'char' type. Consider using the 'int' type.
- V740. Exception is of the 'int' type because NULL is defined as 0. Keyword 'nullptr' can be used for 'pointer' type exception.
- V741. Use of the throw (a, b); pattern. It is possible that type name was omitted: throw MyException(a, b);.
- V745. A 'wchar_t *' type string is incorrectly converted to 'BSTR' type string.
- V746. Object slicing. An exception should be caught by reference rather than by value.
- V747. Suspicious expression inside parentheses. A function name may be missing.
- V750. BSTR string becomes invalid. Notice that BSTR strings store their length before start of the text.
- V816. It is more efficient to catch exception by reference rather than by value.
- V3044. WPF: writing and reading are performed on a different Dependency Properties.
- V3045. WPF: the names of the property registered for DependencyProperty, and of the property used to access it, do not correspond with each other.
- V3046. WPF: the type registered for DependencyProperty does not correspond with the type of the property used to access it.
- V3047. WPF: A class containing registered property does not correspond with a type that is passed as the ownerType.type.
- V3048. WPF: several Dependency Properties are registered with a same name within the owner type.
- V3049. WPF: readonly field of 'DependencyProperty' type is not initialized.
- V742. Function receives an address of a 'char' type variable instead of pointer to a buffer.
- V3055. Suspicious assignment inside the condition expression of 'if/while/for' operator.
- V744. Temporary object is immediately destroyed after being created. Consider naming the object.
- V748. Memory for 'getline' function should be allocated only by 'malloc' or 'realloc' functions. Consider inspecting the first parameter of 'getline' function.
- V749. Destructor of the object will be invoked a second time after leaving the object's scope.
- V3050. Possibly an incorrect HTML. The </XX> closing tag was encountered, while the </YY> tag was expected.
- V3054. Potentially unsafe double-checked locking. Use volatile variable(s) or synchronization primitives to avoid this.
- V3056. Consider reviewing the correctness of 'X' item's usage.
- V3053. An excessive expression. Examine the substrings "abc" and "abcd".
- V3051. An excessive type cast or check. The object is already of the same type.
- V3052. The original exception object was swallowed. Stack of original exception could be lost.
- V3058. An item with the same key has already been added.
- V3060. A value of variable is not modified. Consider inspecting the expression. It is possible that other value should be present instead of '0'.
- V3066. Possible incorrect order of arguments passed to method.
- V3057. Function receives an odd argument.
- V3063. A part of conditional expression is always true/false if it is evaluated.
- V3064. Division or mod division by zero.
- V3067. It is possible that 'else' block was forgotten or commented out, thus altering the program's operation logics.
- V3068. Calling overrideable class member from constructor is dangerous.
- V3071. The object is returned from inside 'using' block. 'Dispose' will be invoked before exiting method.
- V3075. The operation is executed 2 or more times in succession.
- V3059. Consider adding '[Flags]' attribute to the enum.
- V3061. Parameter 'A' is always rewritten in method body before being used.
- V3062. An object is used as an argument to its own method. Consider checking the first actual argument of the 'Foo' method.
- V3065. Parameter is not utilized inside method's body.
- V3069. It's possible that the line was commented out improperly, thus altering the program's operation logics.
- V3070. Uninitialized variables are used when initializing the 'A' variable.
- V3076. Comparison with 'double.NaN' is meaningless. Use 'double.IsNaN()' method instead.
- V3077. Property setter / event accessor does not utilize its 'value' parameter.
- V3072. The 'A' class containing IDisposable members does not itself implement IDisposable.
- V051. Some of the references in project are missing or incorrect. The analysis results could be incomplete. Consider making the project fully compilable and building it before analysis.
- V3073. Not all IDisposable members are properly disposed. Call 'Dispose' when disposing 'A' class.
- V3074. The 'A' class contains 'Dispose' method. Consider making it implement 'IDisposable' interface.
- V3081. The 'X' counter is not used inside a nested loop. Consider inspecting usage of 'Y' counter.
- V3080. Possible null dereference.
- V752. Creating an object with placement new requires a buffer of large size.
- V751. Parameter is not used inside function's body.
- V3078. Sorting keys priority will be reversed relative to the order of 'OrderBy' method calls. Perhaps, 'ThenBy' should be used instead.
- V3079. The 'ThreadStatic' attribute is applied to a non-static 'A' field and will be ignored.
- V3083. Unsafe invocation of event, NullReferenceException is possible. Consider assigning event to a local variable before invoking it.
- V3084. Anonymous function is used to unsubscribe from event. No handlers will be unsubscribed, as a separate delegate instance is created for each anonymous function declaration.
- V3085. The name of 'X' field/property in a nested type is ambiguous. The outer type contains static field/property with identical name.
- V3086. Variables are initialized through the call to the same function. It's probably an error or un-optimized code.
- V3087. Type of variable enumerated in 'foreach' is not guaranteed to be castable to the type of collection's elements.
- V3088. The expression was enclosed by parentheses twice: ((expression)). One pair of parentheses is unnecessary or misprint is present.
- V3091. Empirical analysis. It is possible that a typo is present inside the string literal. The 'foo' word is suspicious.
- V754. The expression of 'foo(foo(x))' pattern is excessive or contains an error.
- V3092. Range intersections are possible within conditional expressions.
- V3093. The operator evaluates both operands. Perhaps a short-circuit operator should be used instead.
- V3082. The 'Thread' object is created but is not started. It is possible that a call to 'Start' method is missing.
- V3089. Initializer of a field marked by [ThreadStatic] attribute will be called once on the first accessing thread. The field will have default value on different threads.
- V3090. Unsafe locking on an object.
- V753. The '&=' operation always sets a value of 'Foo' variable to zero.
- V3098. The 'continue' operator will terminate 'do { ... } while (false)' loop because the condition is always false.
- V3100. NullReferenceException is possible. Unhandled exceptions in destructor lead to termination of runtime.
- V755. Copying from potentially tainted data source. Buffer overflow is possible.
- V3102. Suspicious access to element by a constant index inside a loop.
- V3101. Potential resurrection of 'this' object instance from destructor. Without re-registering for finalization, destructor will not be called a second time on resurrected object.
- V3095. The object was used before it was verified against null. Check lines: N1, N2.
- V3094. Possible exception when deserializing type. The Ctor(SerializationInfo, StreamingContext) constructor is missing.
- V3096. Possible exception when serializing type. [Serializable] attribute is missing.
- V3097. Possible exception: type marked by [Serializable] contains non-serializable members not marked by [NonSerialized].
- V3099. Not all the members of type are serialized inside 'GetObjectData' method.
- V3103. A private Ctor(SerializationInfo, StreamingContext) constructor in unsealed type will not be accessible when deserializing derived types.
- V3104. The 'GetObjectData' implementation in unsealed type is not virtual, incorrect serialization of derived type is possible.
- V757. It is possible that an incorrect variable is compared with null after type conversion using 'dynamic_cast'.
- V756. The 'X' counter is not used inside a nested loop. Consider inspecting usage of 'Y' counter.
- V758. Reference was invalidated because of destruction of the temporary object returned by the function.
- V759. Violated the order of exception handlers. Exception caught handler for the base class.
- V760. Two identical text blocks were detected. The second block starts with NN string.
- V762. Consider inspecting virtual function arguments. See NN argument of function 'Foo' in derived class and base class.
- V761. NN identical blocks were found.
- V3105. The 'a' variable was used after it was assigned through null-conditional operator. NullReferenceException is possible.
- V763. Parameter is always rewritten in function body before being used.
- V764. Possible incorrect order of arguments passed to function.
- V765. Compound assignment expression 'X += X + N' is suspicious. Consider inspecting it for a possible error.
- V3107. Identical expression to the left and to the right of compound assignment.
- V3106. Possibly index is out of bound.
- V766. An item with the same key has already been added.
- V767. Suspicious access to element by a constant index inside a loop.
- V3109. The same sub-expression is present on both sides of the operator. The expression is incorrect or it can be simplified.
- V3110. Possible infinite recursion.
- V3108. It is not recommended to return null or throw exceptions from 'ToString()' method.
- V3111. Checking value for null will always return false when generic type is instantiated with a value type.
- V3112. An abnormality within similar comparisons. It is possible that a typo is present inside the expression.
- V3113. Consider inspecting the loop expression. It is possible that different variables are used inside initializer and iterator.
- V3114. IDisposable object is not disposed before method returns.
- V3115. It is not recommended to throw exceptions from 'Equals(object obj)' method.
- V3116. Consider inspecting the 'for' operator. It's possible that the loop will be executed incorrectly or won't be executed at all.
- V768. Variable is of enum type. It is suspicious that it is used as a variable of a Boolean-type.
- V3117. Constructor parameter is not used.
- V3118. A component of TimeSpan is used, which does not represent full time interval. Possibly 'Total*' value was intended instead.
- V769. The pointer in the expression equals nullptr. The resulting value is senseless and it should not be used.
- V770. Possible use of left shift operator instead of comparison operator.
- V3119. Calling a virtual (overridden) event may lead to unpredictable behavior. Consider implementing event accessors explicitly or use 'sealed' keyword.
- V3121. An enumeration was declared with 'Flags' attribute, but does not set any initializers to override default values.
- V3120. Potentially infinite loop. The variable from the loop exit condition does not change its value between iterations.
- V771. The '?:' operator uses constants from different enums.
- V817. It is more efficient to seek 'X' character rather than a string.
- V009. To use free version of PVS-Studio, source code files are required to start with a special comment.
- V3122. Uppercase (lowercase) string is compared with a different lowercase (uppercase) string.
- V772. Calling a 'delete' operator for a void pointer will cause undefined behavior.
- V773. Function exited without releasing the pointer/handle. A memory/resource leak is possible.
- V774. Pointer was used after the memory was released.
- V775. It is suspicious that the BSTR data type is compared using a relational operator.
- V776. Potentially infinite loop. The variable from the loop exit condition does not change its value between iterations.
- V3123. Perhaps the '??' operator works in a different way than it was expected. Its priority is lower than priority of other operators in its left part.
- V3124. Appending an element and checking for key uniqueness is performed on two different variables.
- V778. Two similar code fragments. Perhaps, it is a typo and 'X' variable should be used instead of 'Y'.
- V777. A dangerous widening type conversion from an array of a derived class objects to a base class pointer.
- V3125. The object was used after it was verified against null. Check lines: N1, N2.
- V3126. Type implementing IEquatable<T> interface does not override 'GetHashCode' method.
- V3127. Two similar code fragments were found. Perhaps, this is a typo and 'X' variable should be used instead of 'Y'.
- V3129. The value of the captured variable will be overwritten on the next iteration of the loop in each instance of anonymous function that captures it.
- V3128. The field (property) is used before it is initialized in constructor.
- V3130. Priority of the '&&' operator is higher than that of the '||' operator. Possible missing parentheses.
- V779. Unreachable code was detected. It is possible that an error is present.
- V780. The object of non-passive (non-PDS) type cannot be used with the function.
- V3131. The expression is checked for compatibility with the type 'A', but is casted to the 'B' type.
- V3132. A terminal null is present inside a string. The '\0xNN' characters were encountered. Probably meant: '\xNN'.
- V3133. Postfix increment/decrement is senseless because this variable is overwritten.
- V3134. Shift by N bits is greater than the size of type.
- V781. Value of a variable is checked after it is used. Possible error in program's logic. Check lines: N1, N2.
- V783. Possible dereference of invalid iterator 'X'.
- V782. There is no sense in evaluating the distance between elements from different arrays.
- V785. Constant expression in switch statement.
- V784. The size of the bit mask is less than the size of the first operand. This will cause the loss of higher bits.
- V786. It is odd that value C is assigned to the X variable. The value range of variable: [A, B].
- V787. Wrong variable is probably used in the for operator as an index.
- V788. Consider reviewing a captured variable in lambda expression.
- V010. Analysis of 'Makefile/Utility' type projects is not supported in this tool. Use direct analyzer integration or compiler monitoring instead.
- V819. Decreased performance. Memory is allocated and released multiple times inside the loop body.
- V797. The function is used as if it returned a bool type. The return value of the function should probably be compared with std::string::npos.
- V794. The assignment operator should be protected from the case of 'this == &src'.
- V795. Size of the 'time_t' type is not 64 bits. After the year 2038, the program will work incorrectly.
- V792. The function located to the right of the '|' and '&' operators will be called regardless of the value of the left operand. Consider using '||' and '&&' instead.
- V793. It is suspicious that the result of the statement is a part of the condition. Perhaps, this statement should have been compared with something else.
- V790. It is suspicious that the assignment operator takes an object by a non-constant reference and returns this object.
- V818. It is more efficient to use an initialization list rather than an assignment operator.
- V789. Iterators for the container, used in the range-based for loop, become invalid upon a function call.
- V791. The initial value of the index in the nested loop equals 'i'. Consider using 'i + 1' instead.
- V798. The size of the dynamic array can be less than the number of elements in the initializer.
- V820. The variable is not used after copying. Copying can be replaced with move/swap for optimization.
- V796. A 'break' statement is probably missing in a 'switch' statement.
- V799. Variable is not used after memory is allocated for it. Consider checking the use of this variable.
- V3136. Constant expression in switch statement.
- V3135. The initial value of the index in the nested loop equals 'i'. Consider using 'i + 1' instead.
- V821. The variable can be constructed in a lower level scope.
- V1001. Variable is assigned but not used by the end of the function.
- V3137. The variable is assigned but is not used by the end of the function.
- V1002. Class that contains pointers, constructor and destructor is copied by the automatically generated operator= or copy constructor.
- V1003. Macro expression is dangerous or suspicious.
- V1004. Pointer was used unsafely after its check for nullptr.
- V1005. The resource was acquired using 'X' function but was released using incompatible 'Y' function.
- V1006. Several shared_ptr objects are initialized by the same pointer. A double memory deallocation will occur.
- V1007. Value from the uninitialized optional is used. It may be an error.
- V1008. No more than one iteration of the loop will be performed. Consider inspecting the 'for' operator.
- V1010. Unchecked tainted data is used in expression.
- V1009. Check the array initialization. Only the first element is initialized explicitly.
- V011. Presence of #line directives may cause some diagnostic messages to have incorrect file name and line number.
- V1012. The expression is always false. Overflow check is incorrect.
- V1011. Function execution could be deferred. Consider specifying execution policy explicitly.
- V1013. Suspicious subexpression in a sequence of similar comparisons.
- V1015. Suspicious simultaneous use of bitwise and logical operators.
- V1014. Structures with members of real type are compared byte-wise.
- V1016. The value is out of range of enum values. This causes unspecified or undefined behavior.
- V1017. Variable of the 'string_view' type references a temporary object, which will be removed after evaluation of an expression.
- V6004. The 'then' statement is equivalent to the 'else' statement.
- V6034. Shift by N bits is inconsistent with the size of type.
- V6035. Double negation is present in the expression: !!x.
- V6043. Consider inspecting the 'for' operator. Initial and final values of the iterator are the same.
- V6013. Comparison of arrays, strings, collections by reference. Possibly an equality comparison was intended.
- V6015. Consider inspecting the expression. Probably the '!='/'-='/'+=' should be used here.
- V6024. The 'continue' operator will terminate 'do { ... } while (false)' loop because the condition is always false.
- V6007. Expression is always true/false.
- V6031. The variable 'X' is being used for this loop and for the outer loop.
- V6037. An unconditional 'break/continue/return/goto' within a loop.
- V6040. The code's operational logic does not correspond with its formatting.
- V6005. The 'x' variable is assigned to itself.
- V6028. Identical expression to the left and to the right of compound assignment.
- V6027. Variables are initialized through the call to the same function. It's probably an error or un-optimized code.
- V6019. Unreachable code detected. It is possible that an error is present.
- V6025. Possibly index is out of bound.
- V6044. Postfix increment/decrement is senseless because this variable is overwritten.
- V6002. The switch statement does not cover all values of the enum.
- V6006. The object was created but it is not being used. The 'throw' keyword could be missing.
- V6018. Constant expression in switch statement.
- V6012. The '?:' operator, regardless of its conditional expression, always returns one and the same value.
- V6036. The value from the uninitialized optional is used.
- V6010. The return value of function 'Foo' is required to be utilized.
- V6048. This expression can be simplified. One of the operands in the operation equals NN. Probably it is a mistake.
- V6029. Possible incorrect order of arguments passed to method.
- V6023. Parameter 'A' is always rewritten in method body before being used.
- V6022. Parameter is not used inside method's body.
- V6009. Function receives an odd argument.
- V6049. Classes that define 'equals' method must also define 'hashCode' method.
- V6033. An item with the same key has already been added.
- V6014. It's odd that this method always returns one and the same value of NN.
- V6026. This value is already assigned to the 'b' variable.
- V6041. Suspicious assignment inside the conditional expression of 'if/while/do...while' statement.
- V6020. Division or mod division by zero.
- V6016. Suspicious access to element by a constant index inside a loop.
- V6030. The function located to the right of the '|' and '&' operators will be called regardless of the value of the left operand. Consider using '||' and '&&' instead.
- V6046. Incorrect format. Consider checking the N format items of the 'Foo' function.
- V6008. Potential null dereference.
- V6042. The expression is checked for compatibility with type 'A', but is cast to type 'B'.
- V6032. It is odd that the body of 'Foo_1' function is fully equivalent to the body of 'Foo_2' function.
- V6038. Comparison with 'double.NaN' is meaningless. Use 'double.isNaN()' method instead.
- V6011. The expression contains a suspicious mix of integer and real types.
- V6045. Suspicious subexpression in a sequence of similar comparisons.
- V6047. It is possible that this 'else' branch must apply to the previous 'if' statement.
- V6001. There are identical sub-expressions to the left and to the right of the 'foo' operator.
- V6021. The value is assigned to the 'x' variable but is not used.
- V6039. There are two 'if' statements with identical conditional expressions. The first 'if' statement contains method return. This means that the second 'if' statement is senseless.
- V6003. The use of 'if (A) {...} else if (A) {...}' pattern was detected. There is a probability of logical error presence.
- V6017. The 'X' counter is not used inside a nested loop. Consider inspecting usage of 'Y' counter.
- V1018. Usage of a suspicious mutex wrapper. It is probably unused, uninitialized, or already locked.
- V6050. Class initialization cycle is present.
- V1020. Function exited without performing epilogue actions. It is possible that there is an error.
- V1019. Compound assignment expression is used inside condition.
- V6055. Expression inside assert statement can change object's state.
- V6051. Use of jump statements in 'finally' block can lead to the loss of unhandled exceptions.
- V6056. Implementation of 'compareTo' overloads the method from a base class. Possibly, an override was intended.
- V6052. Calling an overridden method in parent-class constructor may lead to use of uninitialized data.
- V6054. Classes should not be compared by their name.
- V6053. Collection is modified while iteration is in progress. ConcurrentModificationException may occur.
- V1021. The variable is assigned the same value on several loop iterations.
- V1029. Numeric Truncation Error. Return value of function is written to N-bit variable.
- V1025. New variable with default value is created instead of 'std::unique_lock' that locks on the mutex.
- V1028. Possible overflow. Consider casting operands, not the result.
- V1027. Pointer to an object of the class is cast to unrelated class.
- V1026. The variable is incremented in the loop. Undefined behavior will occur in case of signed integer overflow.
- V1030. Variable is used after it is moved.
- V1022. Exception was thrown by pointer. Consider throwing it by value instead.
- V1024. Potential use of invalid data. The stream is checked for EOF before reading from it but is not checked after reading.
- V1023. A pointer without owner is added to the container by the 'emplace_back' method. A memory leak will occur in case of an exception.
- V6060. The reference was used before it was verified against null.
- V6057. Consider inspecting this expression. The expression is excessive or contains a misprint.
- V6058. Comparing objects of incompatible types.
- V1031. Function is not declared. The passing of data to or from this function may be affected.
- V1034. Do not use real-type variables as loop counters.
- V1032. Pointer is cast to a more strictly aligned pointer type.
- V6059. Odd use of special character in regular expression. Possibly, it was intended to be escaped.
- V1035. Only values returned from fgetpos() can be used as arguments to fsetpos().
- V1033. Variable is declared as auto in C. Its default type is int.
- V2014. Don't use terminating functions in library code.
- V6061. The used constant value is represented by an octal form.
- V2523. MISRA. All integer constants of unsigned type should have 'u' or 'U' suffix.
- V2524. MISRA. A switch-label should only appear at the top level of the compound statement forming the body of a 'switch' statement.
- V2516. MISRA. The 'if' ... 'else if' construct should be terminated with an 'else' statement.
- V2506. MISRA. A function should have a single point of exit at the end.
- V2504. MISRA. Size of an array is not specified.
- V6063. Odd semicolon ';' after 'if/for/while' operator.
- V2508. MISRA. The function with the 'atof/atoi/atol/atoll' name should not be used.
- V2518. MISRA. The 'default' label should be either the first or the last label of a 'switch' statement.
- V2503. MISRA. Implicitly specified enumeration constants should be unique – consider specifying non-unique constants explicitly.
- V2507. MISRA. The body of a loop\conditional statement should be enclosed in braces.
- V2517. MISRA. Literal suffixes should not contain lowercase characters.
- V2515. MISRA. Declaration should contain no more than two levels of pointer nesting.
- V2505. MISRA. The 'goto' statement shouldn't jump to a label declared earlier.
- V2519. MISRA. Every 'switch' statement should have a 'default' label, which, in addition to the terminating 'break' statement, should contain either a statement or a comment.
- V2501. MISRA. Octal constants should not be used.
- V2511. MISRA. Memory allocation and deallocation functions should not be used.
- V2509. MISRA. The function with the 'abort/exit/getenv/system' name should not be used.
- V2513. MISRA. Unbounded functions performing string operations should not be used.
- V2521. MISRA. Only the first member of enumerator list should be explicitly initialized, unless all members are explicitly initialized.
- V6062. Possible infinite recursion.
- V2525. MISRA. Every 'switch' statement should contain non-empty switch-clauses.
- V2514. MISRA. Unions should not be used.
- V2510. MISRA. The function with the 'qsort/bsearch' name should not be used.
- V2522. MISRA. The 'switch' statement should have 'default' as the last label.
- V2520. MISRA. Every switch-clause should be terminated by an unconditional 'break' or 'throw' statement.
- V2502. MISRA. The 'goto' statement should not be used.
- V2512. MISRA. The macro with the 'setjmp' name and the function with the 'longjmp' name should not be used.
- V063. Analysis aborted by timeout.
- V6065. A non-serializable class should not be serialized.
- V6064. Suspicious invocation of Thread.run().
- V062. Failed to run analyzer core. Make sure the correct 64-bit Java 11 or higher executable is used, or specify it manually.
- V061. An error has occurred.
- V1036. Potentially unsafe double-checked locking.
- V2526. MISRA. The functions from time.h/ctime should not be used.
- V6066. Passing objects of incompatible types to the method of collection.
- V2528. MISRA. The comma operator should not be used.
- V2527. MISRA. A switch-expression should not have Boolean type. Consider using of 'if-else' construct.
- V2529. MISRA. Any label should be declared in the same block as 'goto' statement or in any block enclosing it.
- V2530. MISRA. Any loop should be terminated with no more than one 'break' or 'goto' statement.
- V1037. Two or more case-branches perform the same actions.
- V2532. MISRA. String literal should not be assigned to object unless it has type of pointer to const-qualified char.
- V2531. MISRA. Expression of essential type 'foo' should not be explicitly cast to essential type 'bar'.
- V2536. MISRA. Function should not contain labels not used by any 'goto' statements.
- V2537. MISRA. Functions should not have unused parameters.
- V2538. MISRA. The value of uninitialized variable should not be used.
- V2541. MISRA. Function should not be declared implicitly.
- V2533. MISRA. C-style and functional notation casts should not be performed.
- V2534. MISRA. The loop counter should not have floating-point type.
- V2539. MISRA. Class destructor should not exit with an exception.
- V2540. MISRA. Arrays should not be partially initialized.
- V2535. MISRA. Unreachable code should not be present in the project.
- V2542. MISRA. Function with a non-void return type should return a value from all exit paths.
- V1038. It is suspicious that a char or string literal is added to a pointer.
- V6067. Two or more case-branches perform the same actions.
- V3138. String literal contains potential interpolated expression.
- V3139. Two or more case-branches perform the same actions.
- V1039. Character escape is used in multicharacter literal. This causes implementation-defined behavior.
- V2547. MISRA. The return value of non-void function should be used.
- V2544. MISRA. The values used in expressions should have appropriate essential types.
- V2550. MISRA. Floating-point values should not be tested for equality or inequality.
- V2543. MISRA. Value of the essential character type should be used appropriately in the addition/subtraction operations.
- V2546. MISRA. Expression resulting from the macro expansion should be surrounded by parentheses.
- V2548. MISRA. The address of an object with local scope should not be passed out of its scope.
- V2549. MISRA. Pointer to FILE should not be dereferenced.
- V2545. MISRA. Conversion between pointers of different object types should not be performed.
- V1040. Possible typo in the spelling of a pre-defined macro name.
- V3140. Property accessors use different backing fields.
- V3141. Expression under 'throw' is a potential null, which can lead to NullReferenceException.
- V6068. Suspicious use of BigDecimal class.
- V6069. Unsigned right shift assignment of negative 'byte' / 'short' value.
- V3142. Unreachable code detected. It is possible that an error is present.
- V6070. Unsafe synchronization on an object.
- V3143. The 'value' parameter is rewritten inside a property setter, and is not used after that.
- V1042. This file is marked with copyleft license, which requires you to open the derived source code.
- V3144. This file is marked with copyleft license, which requires you to open the derived source code.
- V6071. This file is marked with copyleft license, which requires you to open the derived source code.
- V1043. A global object variable is declared in the header. Multiple copies of it will be created in all translation units that include this header file.
- V3145. Unsafe dereference of a WeakReference target. The object could have been garbage collected before the 'Target' property was accessed.
- V2552. MISRA. Expressions with enum underlying type should have values corresponding to the enumerators of the enumeration.
- V2554. MISRA. Expression containing increment (++) or decrement (--) should not have other side effects.
- V2551. MISRA. Variable should be declared in a scope that minimizes its visibility.
- V2556. MISRA. Use of a pointer to FILE when the associated stream has already been closed.
- V2553. MISRA. Unary minus operator should not be applied to an expression of the unsigned type.
- V2555. MISRA. Incorrect shifting expression.
- V2557. MISRA. Operand of sizeof() operator should not have other side effects.
- V1044. Loop break conditions do not depend on the number of iterations.
- V6072. Two similar code fragments were found. Perhaps, this is a typo and 'X' variable should be used instead of 'Y'.
- V1045. The DllMain function throws an exception. Consider wrapping the throw operator in a try..catch block.
- V6073. It is not recommended to return null or throw exceptions from 'toString' / 'clone' methods.
- V1046. Unsafe usage of the 'bool' and integer types together in the operation '&='.
- V3146. Possible null dereference. A method can return default null value.
- V6074. Non-atomic modification of volatile variable.
- V6075. The signature of method 'X' does not conform to serialization requirements.
- V1047. Lifetime of the lambda is greater than lifetime of the local variable captured by reference.
- V1048. Variable 'foo' was assigned the same value.
- V822. Decreased performance. A new object is created, while a reference to an object is expected.
- V3148. Casting potential 'null' value to a value type can lead to NullReferenceException.
- V3147. Non-atomic modification of volatile variable.
- V2561. MISRA. The result of an assignment expression should not be used.
- V2560. MISRA. There should be no user-defined variadic functions.
- V2558. MISRA. A pointer/reference parameter in a function should be declared as pointer/reference to const if the corresponding object was not modified.
- V2562. MISRA. Expressions with pointer type should not be used in the '+', '-', '+=' and '-=' operations.
- V3149. Dereferencing the result of 'as' operator can lead to NullReferenceException.
- V2559. MISRA. Subtraction, >, >=, <, <= should be applied only to pointers that address elements of the same array.
- V6076. Recurrent serialization will use cached object state from first serialization.
- V2564. MISRA. There should be no implicit integral-floating conversion.
- V1049. The 'foo' include guard is already defined in the 'bar1.h' header. The 'bar2.h' header will be excluded from compilation.
- V1050. Uninitialized class member is used when initializing the base class.
- V2563. MISRA. Array indexing should be the only form of pointer arithmetic and it should be applied only to objects defined as an array type.
- V2566. MISRA. Constant expression evaluation should not result in an unsigned integer wrap-around.
- V2568. MISRA. Both operands of an operator should be of the same type category.
- V2567. MISRA. Cast should not remove 'const' / 'volatile' qualification from the type that is pointed to by a pointer or a reference.
- V2570. MISRA. Operands of the logical '&&' or the '||' operators, the '!' operator should have 'bool' type.
- V2572. MISRA. Value of the expression should not be converted to the different essential type or the narrower essential type.
- V2565. MISRA. A function should not call itself either directly or indirectly.
- V2569. MISRA. The 'operator &&', 'operator ||', 'operator ,' and the unary 'operator &' should not be overloaded.
- V2571. MISRA. Conversions between pointers to objects and integer types should not be performed.
- V3150. Loop break conditions do not depend on the number of iterations.
- V1051. It is possible that an assigned variable should be checked in the next condition. Consider checking for typos.
- V3151. Potential division by zero. Variable was used as a divisor before it was compared to zero. Check lines: N1, N2.
- V6077. A suspicious label is present inside a switch(). It is possible that these are misprints and 'default:' label should be used instead.
- V823. Decreased performance. Object may be created in-place in a container. Consider replacing methods: 'insert' -> 'emplace', 'push_*' -> 'emplace_*'.
- V3152. Potential division by zero. Variable was compared to zero before it was used as a divisor. Check lines: N1, N2.
- V3153. Dereferencing the result of null-conditional access operator can lead to NullReferenceException.
- V1052. Declaring virtual methods in a class marked as 'final' is pointless.
- V2573. MISRA. Identifiers that start with '__' or '_[A-Z]' are reserved.
- V2015. An identifier declared in an inner scope should not hide an identifier in an outer scope.
- V1053. Calling the 'foo' virtual function in the constructor/destructor may lead to unexpected result at runtime.
- V1054. Object slicing. Derived class object was copied to the base class object.
- V1055. The 'sizeof' expression returns the size of the container type, not the number of elements. Consider using the 'size()' function.
- V6078. Potential Java SE API compatibility issue.
- V1057. Pseudo random sequence is the same at every program run. Consider assigning the seed to a value not known at compile-time.
- V1056. The predefined identifier '__func__' always contains the string 'operator()' inside function body of the overloaded 'operator()'.
- V6079. Value of variable is checked after use. Potential logical error is present. Check lines: N1, N2.
- V825. Expression is equivalent to moving one unique pointer to another. Consider using 'std::move' instead.
- V824. It is recommended to use the 'make_unique/make_shared' function to create smart pointers.
- V6080. Consider checking for misprints. It's possible that an assigned variable should be checked in the next condition.
- V1058. Nonsensical comparison of two different functions' addresses.
- V6081. Annotation that does not have 'RUNTIME' retention policy will not be accessible through Reflection API.
- V6082. Unsafe double-checked locking.
- V6084. Suspicious return of an always empty collection.
- V6083. Serialization order of fields should be preserved during deserialization.
- V6085. An abnormality within similar comparisons. It is possible that a typo is present inside the expression.
- V6086. Suspicious code formatting. 'else' keyword is probably missing.
- V6087. InvalidClassException may occur during deserialization.
- V6088. Result of this expression will be implicitly cast to 'Type'. Check if program logic handles it correctly.
- V826. Consider replacing standard container with a different one.
- V827. Maximum size of a vector is known at compile time. Consider pre-allocating it by calling reserve(N).
- V6106. Casting expression to 'X' type before implicitly casting it to other type may be excessive or incorrect.
- V3535. AUTOSAR. Operand of sizeof() operator should not have other side effects.
- V3519. AUTOSAR. The comma operator should not be used.
- V5008. OWASP. Classes should always be derived from std::exception (and alike) as 'public'.
- V3523. AUTOSAR. Functions should not have unused parameters.
- V5005. OWASP. A value is being subtracted from the unsigned variable. This can result in an overflow. In such a case, the comparison operation can potentially behave unexpectedly.
- V5012. OWASP. Potentially unsafe double-checked locking.
- V3541. AUTOSAR. A function should not call itself either directly or indirectly.
- V3509. AUTOSAR. Unions should not be used.
- V5001. OWASP. It is highly probable that the semicolon ';' is missing after 'return' keyword.
- V3534. AUTOSAR. Incorrect shifting expression.
- V5010. OWASP. The variable is incremented in the loop. Undefined behavior will occur in case of signed integer overflow.
- V3536. AUTOSAR. A pointer/reference parameter in a function should be declared as pointer/reference to const if the corresponding object was not modified.
- V3524. AUTOSAR. The value of uninitialized variable should not be used.
- V3501. AUTOSAR. Octal constants should not be used.
- V5007. OWASP. Consider inspecting the loop expression. It is possible that the 'i' variable should be incremented instead of the 'n' variable.
- V3529. AUTOSAR. Floating-point values should not be tested for equality or inequality.
- V3518. AUTOSAR. A switch-expression should not have Boolean type. Consider using of 'if-else' construct.
- V3504. AUTOSAR. The body of a loop\conditional statement should be enclosed in braces.
- V3543. AUTOSAR. Cast should not remove 'const' / 'volatile' qualification from the type that is pointed to by a pointer or a reference.
- V3520. AUTOSAR. Any label should be declared in the same block as 'goto' statement or in any block enclosing it.
- V3539. AUTOSAR. Array indexing should be the only form of pointer arithmetic and it should be applied only to objects defined as an array type.
- V3530. AUTOSAR. Variable should be declared in a scope that minimizes its visibility.
- V3505. AUTOSAR. The function with the 'atof/atoi/atol/atoll' name should not be used.
- V3525. AUTOSAR. Function with a non-void return type should return a value from all exit paths.
- V3546. AUTOSAR. Conversions between pointers to objects and integer types should not be performed.
- V3513. AUTOSAR. Every switch-clause should be terminated by an unconditional 'break' or 'throw' statement.
- V3516. AUTOSAR. A switch-label should only appear at the top level of the compound statement forming the body of a 'switch' statement.
- V5002. OWASP. An empty exception handler. Silent suppression of exceptions can hide the presence of bugs in source code during testing.
- V3511. AUTOSAR. The 'if' ... 'else if' construct should be terminated with an 'else' statement.
- V3526. AUTOSAR. Expression resulting from the macro expansion should be surrounded by parentheses.
- V3510. AUTOSAR. Declaration should contain no more than two levels of pointer nesting.
- V3537. AUTOSAR. Subtraction, >, >=, <, <= should be applied only to pointers that address elements of the same array.
- V3531. AUTOSAR. Expressions with enum underlying type should have values corresponding to the enumerators of the enumeration.
- V3533. AUTOSAR. Expression containing increment (++) or decrement (--) should not have other side effects.
- V5004. OWASP. Consider inspecting the expression. Bit shifting of the 32-bit value with a subsequent expansion to the 64-bit type.
- V3538. AUTOSAR. The result of an assignment expression should not be used.
- V3545. AUTOSAR. Operands of the logical '&&' or the '||' operators, the '!' operator should have 'bool' type.
- V3508. AUTOSAR. Unbounded functions performing string operations should not be used.
- V3544. AUTOSAR. The 'operator &&', 'operator ||', 'operator ,' and the unary 'operator &' should not be overloaded.
- V3528. AUTOSAR. The address of an object with local scope should not be passed out of its scope.
- V3547. AUTOSAR. Identifiers that start with '__' or '_[A-Z]' are reserved.
- V5009. OWASP. Unchecked tainted data is used in expression.
- V3512. AUTOSAR. Literal suffixes should not contain lowercase characters.
- V3506. AUTOSAR. The function with the 'abort/exit/getenv/system' name should not be used.
- V3503. AUTOSAR. The 'goto' statement shouldn't jump to a label declared earlier.
- V3515. AUTOSAR. All integer constants of unsigned type should have 'U' suffix.
- V5006. OWASP. More than N bits are required to store the value, but the expression evaluates to the T type which can only hold K bits.
- V3517. AUTOSAR. The functions from time.h/ctime should not be used.
- V3527. AUTOSAR. The return value of non-void function should be used.
- V3522. AUTOSAR. Unreachable code should not be present in the project.
- V3540. AUTOSAR. There should be no implicit integral-floating conversion.
- V5003. OWASP. The object was created but it is not being used. The 'throw' keyword could be missing.
- V5011. OWASP. Possible overflow. Consider casting operands, not the result.
- V3514. AUTOSAR. The 'switch' statement should have 'default' as the last label.
- V3507. AUTOSAR. The macro with the 'setjmp' name and the function with the 'longjmp' name should not be used.
- V3532. AUTOSAR. Unary minus operator should not be applied to an expression of the unsigned type.
- V3521. AUTOSAR. The loop counter should not have floating-point type.
- V3502. AUTOSAR. Size of an array is not specified.
- V3542. AUTOSAR. Constant expression evaluation should not result in an unsigned integer wrap-around.
- V5305. OWASP. Storing credentials inside source code can lead to security issues.
- V3167. Parameter of 'CancellationToken' type is not used inside function's body.
- V3168. Awaiting on expression with potential null value can lead to throwing of 'NullReferenceException'.
- V6105. Consider inspecting the loop expression. It is possible that different variables are used inside initializer and iterator.
- V3169. Suspicious return of a local reference variable which always equals null.
- V5602. OWASP. The object was created but it is not being used. The 'throw' keyword could be missing.
- V5604. OWASP. Potentially unsafe double-checked locking. Use volatile variable(s) or synchronization primitives to avoid this.
- V5606. OWASP. An exception handling block does not contain any code.
- V5605. OWASP. Unsafe invocation of event, NullReferenceException is possible. Consider assigning event to a local variable before invoking it.
- V5603. OWASP. The original exception object was swallowed. Stack of original exception could be lost.
- V5607. OWASP. Exception classes should be publicly accessible.
- V1069. Do not concatenate string literals with different prefixes.
- V1068. Do not define an unnamed namespace in a header file.
- V6103. Ignored InterruptedException could lead to delayed thread shutdown.
- V6104. A pattern was detected: A || (A && ...). The expression is excessive or contains a logical error.
- V3165. The expression of the 'char' type is passed as an argument of the 'A' type whereas similar overload with the string parameter exists.
- V2574. MISRA. Functions should not be declared at block scope.
- V6102. Inconsistent synchronization of a field. Consider synchronizing the field on all usages.
- V3166. Calling the 'SingleOrDefault' method may lead to 'InvalidOperationException'.
- V5304. OWASP. Unsafe double-checked locking.
- V5303. OWASP. The object was created but it is not being used. The 'throw' keyword could be missing.
- V5302. OWASP. Exception classes should be publicly accessible.
- V6100. An object is used as an argument to its own method. Consider checking the first actual argument of the 'Foo' method.
- V6098. The method does not override another method from the base class.
- V6099. The initial value of the index in the nested loop equals 'i'. Consider using 'i + 1' instead.
- V1066. The 'SysFreeString' function should be called only for objects of the 'BSTR' type.
- V5601. OWASP. Storing credentials inside source code can lead to security issues.
- V1067. Throwing from exception constructor may lead to unexpected behavior.
- V6096. An odd precise comparison. Consider using a comparison with defined precision: Math.abs(A - B) < Epsilon or Math.abs(A - B) > Epsilon.
- V3164. Exception classes should be publicly accessible.
- V6097. Lowercase 'L' at the end of a long literal can be mistaken for '1'.
- V3163. An exception handling block does not contain any code.
- V5301. OWASP. An exception handling block does not contain any code.
- V3161. Comparing value type variables with 'ReferenceEquals' is incorrect because compared values will be boxed.
- V831. Decreased performance. Consider replacing the call to the 'at()' method with the 'operator[]'.
- V3160. Argument of incorrect type is passed to the 'Enum.HasFlag' method.
- V1065. Expression can be simplified: check similar operands.
- V3162. Suspicious return of an always empty collection.
- V6095. Thread.sleep() inside synchronized block/method may cause decreased performance.
- V6094. The expression was implicitly cast from integer type to real type. Consider utilizing an explicit type cast to avoid the loss of a fractional part.
- V830. Decreased performance. Consider replacing the use of 'std::optional::value()' with either the '*' or '->' operator.
- V1064. The left operand of integer division is less than the right one. The result will always be zero.
- V3158. Suspicious division. Absolute values of both operands are equal.
- V3159. Modified value of the operand is not used after the increment/decrement operation.
- V6093. Automatic unboxing of a variable may cause NullPointerException.
- V3156. The argument of the method is not expected to be null.
- V6092. A resource is returned from try-with-resources statement. It will be closed before the method exits.
- V829. Lifetime of the heap-allocated variable is limited to the current function's scope. Consider allocating it on the stack instead.
- V1063. The modulo by 1 operation is meaningless. The result will always be zero.
- V3155. The expression is incorrect or it can be simplified.
- V6091. Suspicious getter/setter implementation. The 'A' field should probably be returned/assigned instead.
- V828. Moving an object in a return statement may prevent copy elision.
- V012. Some warnings could have been disabled.
- V3154. The 'a % b' expression always evaluates to 0.
- V6101. compareTo()-like methods can return not only the values -1, 0 and 1, but any values.
- V1060. Passing 'BSTR ' to the 'SysAllocString' function may lead to incorrect object creation.
- V6090. Field 'A' is being used before it was initialized.
- V6089. It's possible that the line was commented out improperly, thus altering the program's operation logics.
- V1062. Class defines a custom new or delete operator. The opposite operator must also be defined.
- V1061. Extending 'std' or 'posix' namespace may result in undefined behavior.
- V1059. Macro name overrides a keyword/reserved name. This may lead to undefined behavior.
- V3157. Suspicious division. Absolute value of the left operand is less than the right operand.
- V1041. Class member is initialized with dangling reference.
- V3548. AUTOSAR. Functions should not be declared at block scope.
- V2575. MISRA. The global namespace should only contain 'main', namespace declarations and 'extern "C"' declarations.
- V3549. AUTOSAR. The global namespace should only contain 'main', namespace declarations and 'extern "C"' declarations.
- V2576. MISRA. The identifier 'main' should not be used for a function other than the global function 'main'.
- V3550. AUTOSAR. The identifier 'main' should not be used for a function other than the global function 'main'.
- V1072. Buffer needs to be securely cleared on all execution paths.
- V2581. MISRA. Single-line comments should not end with a continuation token.
- V2582. MISRA. Block of memory should only be freed if it was allocated by a Standard Library function.
- V2578. MISRA. An identifier with array type passed as a function argument should not decay to a pointer.
- V832. It's better to use '= default;' syntax instead of empty body.
- V2580. MISRA. The 'restrict' specifier should not be used.
- V2583. MISRA. Line whose first token is '#' should be a valid preprocessing directive.
- V3171. Potentially negative value is used as the size of an array.
- V5013. OWASP. Storing credentials inside source code can lead to security issues.
- V5608. OWASP. Possible SQL injection. Potentially tainted data is used to create SQL command.
- V1073. Check the following code block after the 'if' statement. Consider checking for typos.
- V1070. Signed value is converted to an unsigned one with subsequent expansion to a larger type in ternary operator.
- V1071. Return value is not always used. Consider inspecting the 'foo' function.
- V2577. MISRA. The function argument corresponding to a parameter declared to have an array type should have an appropriate number of elements.
- V2579. MISRA. Macro should not be defined with the same name as a keyword.
- V3551. AUTOSAR. An identifier with array type passed as a function argument should not decay to a pointer.
- V3170. Both operands of the '??' operator are identical.
- V2584. MISRA. Expression used in condition should have essential Boolean type.
- V2585. MISRA. Casts between a void pointer and an arithmetic type should not be performed.
- V2586. MISRA. Flexible array members should not be declared.
- V2587. MISRA. The '//' and '/*' character sequences should not appear within comments.
- V2588. MISRA. All memory or resources allocated dynamically should be explicitly released.
- V2589. MISRA. Casts between a pointer and a non-integer arithmetic type should not be performed.
- V5609. OWASP. Possible path traversal vulnerability. Potentially tainted data is used as a path.
- V5610. OWASP. Possible XSS vulnerability. Potentially tainted data might be used to execute a malicious script.
- V2016. Consider inspecting the function call. The function was annotated as dangerous.
- V5611. OWASP. Potential insecure deserialization vulnerability. Potentially tainted data is used to create an object using deserialization.
- V2590. MISRA. Conversions should not be performed between pointer to function and any other type.
- V2591. MISRA. Bit fields should only be declared with explicitly signed or unsigned integer type
- V2592. MISRA. An identifier declared in an inner scope should not hide an identifier in an outer scope.
- V2593. MISRA. Single-bit bit fields should not be declared as signed type.
- V2594. MISRA. Controlling expressions should not be invariant.
- V2595. MISRA. Array size should be specified explicitly when array declaration uses designated initialization.
- V2596. MISRA. The value of a composite expression should not be assigned to an object with wider essential type.
- V2597. MISRA. Cast should not convert pointer to function to any other pointer type.
- V3552. AUTOSAR. Cast should not convert a pointer to a function to any other pointer type, including a pointer to function type.
- V2598. MISRA. Variable length array types are not allowed.
- V2599. MISRA. The standard signal handling functions should not be used.
- V3553. AUTOSAR. The standard signal handling functions should not be used.
- V3172. The 'if/if-else/for/while/foreach' statement and code block after it are not related. Inspect the program's logic.
- V2600. MISRA. The standard input/output functions should not be used.
- V3554. AUTOSAR. The standard input/output functions should not be used.
- V2602. MISRA. Octal and hexadecimal escape sequences should be terminated.
- V2601. MISRA. Functions should be declared in prototype form with named parameters.
- V2603. MISRA. The 'static' keyword shall not be used between [] in the declaration of an array parameter.
- V1074. Boundary between numeric escape sequence and string is unclear. The escape sequence ends with a letter and the next character is also a letter. Check for typos.
- V013. Intermodular analysis may be incomplete, as it is not run on all source files.
- V3173. Possible incorrect initialization of variable. Consider verifying the initializer.
- V2604. MISRA. Features from <stdarg.h> should not be used.
- V2605. MISRA. Features from <tgmath.h> should not be used.
- V1075. The function expects the file to be opened in one mode, but it was opened in different mode.
- V2606. MISRA. There should be no attempt to write to a stream that has been opened for reading.
- V2607. MISRA. Inline functions should be declared with the static storage class.
- V2608. MISRA. The 'static' storage class specifier should be used in all declarations of object and functions that have internal linkage.
- V3555. AUTOSAR. The 'static' storage class specifier should be used in all declarations of functions that have internal linkage.
- V2609. MISRA. There should be no occurrence of undefined or critical unspecified behaviour.
- V2610. MISRA. The ', " or \ characters and the /* or // character sequences should not occur in a header file name.
- V5612. OWASP. Do not use old versions of SSL/TLS protocols as it may cause security issues.
- V5613. OWASP. Use of outdated cryptographic algorithm is not recommended.
- V2611. MISRA. Casts between a pointer to an incomplete type and any other type shouldn't be performed.
- V2612. MISRA. Array element should not be initialized more than once.
- V2613. MISRA. Operand that is a composite expression has more narrow essential type than the other operand.
- V5615. OWASP. Potential XEE vulnerability. Insecure XML parser is used to process potentially tainted data.
- V5614. OWASP. Potential XXE vulnerability. Insecure XML parser is used to process potentially tainted data.
- V2614. MISRA. External identifiers should be distinct.
- V2615. MISRA. A compatible declaration should be visible when an object or function with external linkage is defined.
- V2616. MISRA. All conditional inclusion preprocessor directives should reside in the same file as the conditional inclusion directive to which they are related.
- V2617. MISRA. Object should not be assigned or copied to an overlapping object.
- V2618. MISRA. Identifiers declared in the same scope and name space should be distinct.
- V2619. MISRA. Typedef names should be unique across all name spaces.
- V2620. MISRA. Value of a composite expression should not be cast to a different essential type category or a wider essential type.
- V2621. MISRA. Tag names should be unique across all name spaces.
- V5616. OWASP. Possible command injection. Potentially tainted data is used to create OS command.
- V2622. MISRA. External object or function should be declared once in one and only one file.
- V833. Using 'std::move' function with const object disables move semantics.
- V1076. Code contains invisible characters that may alter its logic. Consider enabling the display of invisible characters in the code editor.
- V1077. Constructor contains potentially uninitialized members.
- V3174. Suspicious subexpression in a sequence of similar comparisons.
- V1078. An empty container is iterated. The loop will not be executed.
- V014. The version of your suppress file is outdated. Appending new suppressed messages to it is not possible. Consider re-generating your suppress file to continue updating it.
- V2017. String literal is identical to variable name. It is possible that the variable should be used instead of the string literal.
- V5617. OWASP. Assigning potentially negative or large value as timeout of HTTP session can lead to excessive session expiration time.
- V5618. OWASP. Possible server-side request forgery. Potentially tainted data is used in the URL.
- V015. All analyzer messages were filtered out or marked as false positive. Use filter buttons or 'Don't Check Files' settings to enable message display.
- V1079. Parameter of 'std::stop_token' type is not used inside function's body.
- V1080. Call of 'std::is_constant_evaluated' function always returns the same value.
- V1081. Argument of abs() function is minimal negative value. Such absolute value can't be represented in two's complement. This leads to undefined behavior.
- V5620. OWASP. Possible LDAP injection. Potentially tainted data is used in a search filter.
- V5619. OWASP. Possible log injection. Potentially tainted data is written into logs.
- V1082. Function marked as 'noreturn' may return control. This will result in undefined behavior.
- V5621. OWASP. Error message contains potentially sensitive data that may be exposed.
- V3175. Locking operations must be performed on the same thread. Using 'await' in a critical section may lead to a lock being released on a different thread.
- V5622. OWASP. Possible XPath injection. Potentially tainted data is used in the XPath expression.
- V5623. OWASP. Possible open redirect vulnerability. Potentially tainted data is used in the URL.
- V1084. The expression is always true/false. The value is out of range of enum values.
- V1083. Signed integer overflow in arithmetic expression. This leads to undefined behavior.
- V1085. Negative value is implicitly converted to unsigned integer type in arithmetic expression.
- V3176. The '&=' or '|=' operator is redundant because the right operand is always true/false.
- V834. Incorrect type of a loop variable. This leads to the variable binding to a temporary object instead of a range element.
- V835. Passing cheap-to-copy argument by reference may lead to decreased performance.
- V5624. OWASP. Use of potentially tainted data in configuration may lead to security issues.
- V1086. Call of the 'Foo' function will lead to buffer underflow.
- V1088. No objects are passed to the 'std::scoped_lock' constructor. No locking will be performed. This can cause concurrency issues.
- V1087. Upper bound of case range is less than its lower bound. This case may be unreachable.
- V3177. Logical literal belongs to second operator with a higher priority. It is possible literal was intended to belong to '??' operator instead.
- V5625. OWASP. Referenced package contains vulnerability.
- V1089. Waiting on condition variable without predicate. A thread can wait indefinitely or experience a spurious wake-up.
- V3181. The result of '&' operator is '0' because one of the operands is '0'.
- V3179. Calling element access method for potentially empty collection may result in exception.
- V3178. Calling method or accessing property of potentially disposed object may result in exception.
- V1091. The pointer is cast to an integer type of a larger size. Casting pointer to a type of a larger size is an implementation-defined behavior.
- V3180. The 'HasFlag' method always returns 'true' because the value '0' is passed as its argument.
- V1090. The 'std::uncaught_exception' function is deprecated since C++17 and is removed in C++20. Consider replacing this function with 'std::uncaught_exceptions'.
- V3182. The result of '&' operator is always '0'.
- V1092. Recursive function call during the static/thread_local variable initialization might occur. This may lead to undefined behavior.
- V5626. OWASP. Possible ReDoS vulnerability. Potentially tainted data is processed by regular expression that contains an unsafe pattern.
- V5627. OWASP. Possible NoSQL injection. Potentially tainted data is used to create query.
- V3183. Code formatting implies that the statement should not be a part of the 'then' branch that belongs to the preceding 'if' statement.
- V2018. Cast should not remove 'const' qualifier from the type that is pointed to by a pointer or a reference.
- V2019. Cast should not remove 'volatile' qualifier from the type that is pointed to by a pointer or a reference.
- V5628. OWASP. Possible Zip Slip vulnerability. Potentially tainted data is used in the path to extract the file.
- V836. Expression's value is copied at the variable declaration. The variable is never modified. Consider declaring it as a reference.
- V1093. The result of the right shift operation will always be 0. The right operand is greater than or equal to the number of bits in the left operand.
- V3184. The argument's value is greater than the size of the collection. Passing the value into the 'Foo' method will result in an exception.
- V3186. The arguments violate the bounds of collection. Passing these values into the method will result in an exception.
- V3185. An argument containing a file path could be mixed up with another argument. The other function parameter expects a file path instead.
- V1094. Conditional escape sequence in literal. Its representation is implementation-defined.
- V3187. Parts of an SQL query are not delimited by any separators or whitespaces. Executing this query may lead to an error.
- V3189. The assignment to a member of the readonly field will have no effect when the field is of a value type. Consider restricting the type parameter to reference types.
- V3188. Unity Engine. The value of an expression is a potentially destroyed Unity object or null. Member invocation on this value may lead to an exception.
- V1095. Usage of potentially invalid handle. The value should be non-negative.
- V1097. Line splice results in a character sequence that matches the syntax of a universal-character-name. Using this sequence lead to undefined behavior.
- V1096. Variable with static storage duration is declared inside the inline function with external linkage. This may lead to ODR violation.
- V4001. Unity Engine. Boxing inside a frequently called method may decrease performance.
- V3190. Concurrent modification of a variable may lead to errors.
- V2020. The loop body contains the 'break;' / 'continue;' statement. This may complicate the control flow.
- V1098. The 'emplace' / 'insert' function call contains potentially dangerous move operation. Moved object can be destroyed even if there is no insertion.
- V837. The 'emplace' / 'insert' function does not guarantee that arguments will not be copied or moved if there is no insertion. Consider using the 'try_emplace' function.
- V1099. Using the function of uninitialized derived class while initializing the base class will lead to undefined behavior.
- V016. User annotation was not applied to a virtual function. To force the annotation, use the 'enable_on_virtual' flag.
- V3191. Iteration through collection makes no sense because it is always empty.
- V1100. Unreal Engine. Declaring a pointer to a type derived from 'UObject' in a class that is not derived from 'UObject' is dangerous. The pointer may start pointing to an invalid object after garbage collection.
- V1101. Changing the default argument of a virtual function parameter in a derived class may result in unexpected behavior.
- V838. Temporary object is constructed during lookup in ordered associative container. Consider using a container with heterogeneous lookup to avoid construction of temporary objects.
- V4003. Unity Engine. Avoid capturing variable in performance-sensitive context. This can lead to decreased performance.
- V4002. Unity Engine. Avoid storing consecutive concatenations inside a single string in performance-sensitive context. Consider using StringBuilder to improve performance.
- V3192. Type member is used in the 'GetHashCode' method but is missing from the 'Equals' method.
- V017. The analyzer terminated abnormally due to lack of memory.
- V2623. MISRA. Macro identifiers should be distinct.
- V4004. Unity Engine. New array object is returned from method or property. Using such member in performance-sensitive context can lead to decreased performance.
- V1102. Unreal Engine. Violation of naming conventions may cause Unreal Header Tool to work incorrectly.
- V4005. Unity Engine. The expensive operation is performed inside method or property. Using such member in performance-sensitive context can lead to decreased performance.
- V3193. Data processing results are potentially used before asynchronous output reading is complete. Consider calling 'WaitForExit' overload with no arguments before using the data.
- V2624. MISRA. The initializer for an aggregate or union should be enclosed in braces.
- V6107. The constant NN is being utilized. The resulting value could be inaccurate. Consider using the KK constant.
- V1103. The values of padding bytes are unspecified. Comparing objects with padding using 'memcmp' may lead to unexpected result.
- V3194. Calling 'OfType' for collection will return an empty collection. It is not possible to cast collection elements to the type parameter.
- V6108. Do not use real-type variables in 'for' loop counters.
- V6109. Potentially predictable seed is used in pseudo-random number generator.
- V1104. Priority of the 'M' operator is higher than that of the 'N' operator. Possible missing parentheses.
- V3195. Collection initializer implicitly calls 'Add' method. Using it on member with default value of null will result in null dereference exception.
- V839. Function returns a constant value. This may interfere with move semantics.
- V2625. MISRA. Identifiers that define objects or functions with external linkage shall be unique.
- V6110. Using an environment variable could be unsafe or unreliable. Consider using trusted system property instead
- V3196. Parameter is not utilized inside the method body, but an identifier with a similar name is used inside the same method.
- V3197. The compared value inside the 'Object.Equals' override is converted to a different type that does not contain the override.
- V3198. The variable is assigned the same value that it already holds.
- V6111. Potentially negative value is used as the size of an array.
- V6112. Calling the 'getClass' method repeatedly or on the value of the '.class' literal will always return the instance of the 'Class<Class>' type.
- V1105. Suspicious string modification using the 'operator+='. The right operand is implicitly converted to a character type.
- V1106. Qt. Class inherited from 'QObject' should contain at least one constructor that takes a pointer to 'QObject'.
- V1107. Function was declared as accepting unspecified number of parameters. Consider explicitly specifying the function parameters list.
- V018. False Alarm marks without hash codes were ignored because the 'V_HASH_ONLY' option is enabled.
- V019. Error occurred while working with the user annotation mechanism.
- V020. Error occurred while working with rules configuration files.
- V1108. Constraint specified in a custom function annotation on the parameter is violated.
- V1109. Function is deprecated. Consider switching to an equivalent newer function.
- V6113. Suspicious division. Absolute value of the left operand is less than the value of the right operand.
- V3199. The index from end operator is used with the value that is less than or equal to zero. Collection index will be out of bounds.
- V1110. Constructor of a class inherited from 'QObject' does not use a pointer to a parent object.
- V3200. Possible overflow. The expression will be evaluated before casting. Consider casting one of the operands instead.
- V6114. The 'A' class containing Closeable members does not release the resources that the field is holding.
- V6115. Not all Closeable members are released inside the 'close' method.
- V3201. Return value is not always used. Consider inspecting the 'foo' method.
- V3202. Unreachable code detected. The 'case' value is out of the range of the match expression.
- V3203. Method parameter is not used.
- V6116. The class does not implement the Closeable interface, but it contains the 'close' method that releases resources.
- V6117. Possible overflow. The expression will be evaluated before casting. Consider casting one of the operands instead.
- V2021. Using assertions may cause the abnormal program termination in undesirable contexts.
- V1111. The index was used without check after it was checked in previous lines.
- V1112. Comparing expressions with different signedness can lead to unexpected results.
- V1113. Potential resource leak. Calling the 'memset' function will change the pointer itself, not the allocated resource. Check the first and third arguments.
- V4006. Unity Engine. Multiple operations between complex and numeric values. Prioritizing operations between numeric values can optimize execution time.
- V5306. OWASP. The original exception object was swallowed. Cause of original exception could be lost.
- V6118. The original exception object was swallowed. Cause of original exception could be lost.
- V6119. The result of '&' operator is always '0'.
- V6120. The result of the '&' operator is '0' because one of the operands is '0'.
- V6121. Return value is not always used. Consider inspecting the 'foo' method.
- V6122. The 'Y' (week year) pattern is used for date formatting. Check whether the 'y' (year) pattern was intended instead.
- V5307. OWASP. Potentially predictable seed is used in pseudo-random number generator.
- V5308. OWASP. Possible overflow. The expression will be evaluated before casting. Consider casting one of the operands instead.
- V1114. Suspicious use of 'dynamic_cast' when working with COM interfaces. Consider using the 'QueryInterface' member function.
- V3204. The expression is always false due to implicit type conversion. Overflow check is incorrect.
- V3205. Unity Engine. Improper creation of 'MonoBehaviour' or 'ScriptableObject' object using the 'new' operator. Use the special object creation method instead.
- V3206. Unity Engine. A direct call to the coroutine-like method will not start it. Use the 'StartCoroutine' method instead.
- V1115. Function annotated with the 'pure' attribute has side effects.
- V6123. Modified value of the operand is not used after the increment/decrement operation.
- V6124. Converting an integer literal to the type with a smaller value range will result in overflow.
- Статический анализ и проекты на Unity: зачем и как
- Как пользоваться массовым подавлением в PVS-Studio для С#?
- Как пользоваться массовым подавлением в PVS-Studio для Java?
- Как пользоваться массовым подавлением в PVS-Studio для C++?
- Программисты в неестественной среде обитания [видеомарафон PVS-Studio]
- Как не утонуть в первом отчёте статического анализатора? [Массовое подавление]
- Pure Virtual Cast
- Как рассказать разработчикам о срабатываниях на их коде, не открывая GitHub? [Blame Notifier]
- Как внедрить PVS-Studio в TeamCity?
- Что нового в PVS-Studio 7.10? [AutoSar] [OWASP] [SARIF] [CWE в SonarQube]
- Качество кода игровых движков: неужели всё так плохо?
- Нужно ли статическому анализу машинное обучение?
- Что такое SAST и как это помогает разработчику?
- Как скрыть ложные предупреждения анализатора?
- Как исключить лишние файлы из статического анализа?
- Как можно уcкорить анализ проекта и не тратить время зря?
- DIY. Метеостанция для дома, на Базовом наборе
- Использование PVS-Studio C# под Linux и macOS
- Примеры любопытных багов, обнаруженных с помощью PVS-Studio
- Как подружить проекты на Unity и статический анализатор
- Обзор новых возможностей PVS-Studio для C#
- Типичные ошибки в коде на примере С++, С# и Java
- Примеры интересных багов, обнаруженных с помощью PVS-Studio
- Байки о Си++: С — Стандартизация
- Си++, Статический анализ и почему Rust не победит
- Как исправить сотни ошибок в legacy-коде и не умереть
- C++ для чайников
- Подкаст Generic Talks
- Применение статического анализа кода в преподавании и в разработке свободного ПО
- Песня про PVS-Studio
- Как не подавиться большим старым проектом
- PVS-Studio в 2019 году
- Статический анализ кода проектов, построенных на движке Unreal Engine
- Безопасность на максималках — как писать надежный C/C++ код для встраиваемых систем
- DevSecOps против восстания машин
- Облегчаем процесс разработки с помощью статического анализа кода: наш опыт
- Преждевременная оптимизация — зло! Да здравствует преждевременная оптимизация!
- PVS-Studio & KEIL 5 (STM32CubeMX) совместная работа.
- Лекция 12. С++20 и обозримое будущее
- Лекция 11. Неопределённое поведение, или как выстрелить себе в ногу
- Лекция 10. Сборка C/C++ проектов и её оптимизация
- Лекция 9. Метапрограммирование в С++
- Лекция 8. Стандарт кодирования PVS-Studio и приёмы при разработке эффективных С++ диагностик
- Лекция 7. Статический анализ, как неотъемлемая часть разработки при написании программ на C++
- Лекция 6. STL: функциональные объекты, алгоритмы
- Лекция 5. STL: концепция, контейнеры, итераторы
- Лекция 3. Вывод типов в C++
- Лекция 2. Нововведения стандарта C++14
- Лекция 1. Нововведения стандарта C++11
- Лекция 4. Нововведения стандарта С++17
- Улучшение качества открытого программного обеспечения с помощью инструментов анализа кода
- Как общаться по e-mail и эффективно работать с почтой?
- Статический анализ кода: Что? Как? Зачем?
- SAST и Application Security: how to fight code vulnerabilities // Sergey Khrenov
- Специфика разработки и тестирования статического анализатора
- Статический анализ как ответ на вопрос о повышении качества кода
- Комплексное использование анализаторов для повышения качества кода
- Не связывайтесь с поддержкой C++ программистов
- Статический анализ кода: вокруг Java за 60 минут
- На что нужно обратить внимание при обзоре кода разрабатываемой библиотеки
- Анализатор кода PVS-Studio (мастер-класс)
- Статический анализ и написание качественного кода на C/C++ для встраиваемых систем
- Современные технологии статического анализа кода
- Что могут статические анализаторы, чего не могут программисты и тестировщики
- CWE, CERT, MISRA, OWASP - просто модные слова или способ повысить качество программного обеспечения?
- Статический анализ кода как этап контроля качества
- Паттерны 64-битных ошибок в играх
- Паттерны C++ ошибок, проявляющихся при кроссплатформенной разработке
- Информационная безопасность и разработка ПО
- Опыт разработки статического анализатора кода
- Мастер-класс «SonarQube: от установки до анализа production-кода»
- SAST, борьба с потенциальными уязвимостями
- SAST и его место в SDLC
- Статический анализ: ищем ошибки... и уязвимости?
- Эффективный C++ (Маерс тут ни при чём :)
- Как работает анализ Data Flow в статическом анализаторе кода
- Поиск уязвимостей с использованием статического анализа кода
- Отличие статического анализатора кода от предупреждений компилятора
- Разработка новой C# диагностики. Выход за границы при битовом сдвиге
- Разработка новой C# диагностики. Как мы это делаем, от идеи до прототипа
- Как потратить 10 лет на разработку анализатора кода
- Современный статический анализ кода: что умеет он, чего не умели линтеры
- Подготовка Linux-версии PVS-Studio
- Как избежать ошибок, используя современный C++
- Что знает статический анализатор, чего не знаете вы
- Цена ошибки
- Статический анализ, как гигиена кода
- 200 open-source-проектов спустя: опыт статического анализа исходного кода
- Необычные приёмы в C++
- C++Builder и C++11
- СИ++ УМЕР. ДА ЗДРАВСТВУЕТ СИ++
- Статический анализ C++ кода
- Устаревание стандартов кодирования и статический анализ кода
- Проверяем Unreal Engine проекты с PVS-Studio?
- Как облегчить жизнь себе и разработчикам: статический анализ в деле (на примере Unreal Engine 4)
- Пробуем статический анализ онлайн [Compiler Explorer]
- Вкусные баги из игрового кода: как ошибаются коллеги-программисты / Георгий Грибков (PVS-Studio)
- Сергей Хренов - Статический анализ как дополнительный барьер на пути ошибок
- C++ Siberia 2021: Филипп Хандельянц, Юрий Минаев C++ puzzlers
- Как изменился PVS-Studio за первую половину 2021? [SAST] [AUTOSAR] [OWASP]
- Как LINQ замедляет ваше приложение?
- Топ 5 мифов о статическом анализе
- Как исправить сотни ошибок в legacy-коде и не умереть (на примере Unreal Engine 4) – Георгий Грибков
- Как совершать меньше ошибок в коде?
- Всё, что вы хотели знать о PVS-Studio
- Как taint-анализ защищает код от атак? [SQL Injection] [Path traversal]
- Недооцененный статический анализ
- Статический анализ в open-source-проектах на примере разработки ClickHouse / Георгий Грибков
- С++ для начинающих: советы по улучшению кода
- Что такое PVS-Studio?
- Главная студия: Обсуждаем вопросы безопасности
- Баги-похитители Рождества
- Как изменился PVS-Studio за вторую половину 2021?
- Работа PVS-Studio в JetBrains CLion
- Ошибки в LLVM 13.0.0: компилятор и анализаторы пропустили, PVS-Studio нашёл!
- 10 советов начинающим C# программистам
- DotNet&More #66: Статический анализ и не только
- Как сделать код надежным и безопасным? [Стандарт MISRA и PVS-Studio]
- Ошибки и подозрительные места в исходном коде [Проверка .NET 6]
- Работа PVS-Studio в JetBrains Rider
- Как создать качественный статический анализатор
- Unreal Engine 5. Lyra Game code review. Часть 3. Статический анализ кода с PVS-Studio.
- Сергей Васильев — SAST снаружи и изнутри
- Под капотом SAST: как инструменты анализа кода ищут дефекты безопасности / Сергей Васильев
- SAST и SCA: поиск дефектов безопасности в коде проекта и его зависимостях
- Обработка XML-файлов как причина появления уязвимостей
- Как устроено тестирование средства статического тестирования
- Правильно ли вы парсите XML? Разбираемся с уязвимостями
- DotNet&More #94: Инспекции кода на CI, SonarQube, Qodana и не только
- Межмодульный анализ C++ проектов
- DotNext 2022. Уязвимость регулярных выражений: теория и практика ReDoS-атак.
- Прокачиваем LLDB, или LLDB formatters
- MskDotNet Meetup #54
- Восстание машин: ChatGPT vs статический анализатор
- Анализ C# кода на Roslyn: от теории к практике
- Как анализаторы кода ищут ошибки и дефекты безопасности
- SAST как этап цикла безопасной разработки
- Как статический анализ дополняет TDD
- И16: Рыжков Е.А. | PVS-Studio, Static Code Analyzer, AI Analyzer, Legacy Code, Open Source [eng sub]
- C++ линтеры — хорошо, но недостаточно | YADRO С++ Meetup
- LTE № 27. Судьба стартапа
- Трудности при интеграции SAST, как с ними справляться
- Анализатор кода / Блажь или необходимость? / История успеха компании из глубинки
- Базовые сценарии интеграции SAST решения в legacy-проект на примере PVS-Studio
- Антипаттерны для С++ программиста
- Статический анализ и C++ - от ненависти до любви
- SAST как правая рука разработчика
- Внедрение SAST без слёз
- Что скрывают Blender и YTsaurus? Вся правда о технологии статического анализа
- Чем статический анализ кода полезен C# программисту
- C++ линтеры — хорошо, но недостаточно
- ГОСТ Р 71207–2024. Статический анализ программного обеспечения. Общее описание и актуальность
- Ошибки в коде: ожидания и реальность
- Использование статического анализатора в разработке безопасного программного обеспечения (ГОСТ Р 71207-2024) на примере PVS-Studio
- ГОСТ Р 71207–2024 - Статический анализ программного обеспечения. Терминология
- ГОСТ Р 71207–2024 — Статический анализ программного обеспечения. Критические ошибки
- Разрушители мифов: С++ уже не торт
- Как узнать, что код "с душком"? Пригласили специалиста
- ГОСТ Р 71207–2024 — Статический анализ программного обеспечения. Технологии анализа кода
- Семантика для кремниевых мозгов | Юрий Минаев, PVS-Studio
- МАСКОМ УЦ - Вебинар № 1 серии вебинаров по разработке безопасного ПО - Давайте разбираться вместе!!!
- Статический анализ кода / Виды анализа и диагностики / Поиск кадров в регионах
- ГОСТ Р 71207–2024 — Статический анализ программного обеспечения. Процессы
- Как айтишнику развить бизнес | Алиса и тестирование
- МАСКОМ УЦ - Вебинар № 7 серии вебинаров РБПО - Давайте разбираться вместе!
- PVS-Studio: безопасность кода – наша работа
- Парсим С++
- Платная разработка дополнительных диагностик в анализаторе кода PVS-Studio
- Наши представительства
- Вакансии нашей компании
- Мы закрыли проект CppCat
- Купить PVS-Studio
- Политика конфиденциальности
- Пришло время продлить лицензию на PVS-Studio!
- Команда PVS-Studio
- Скачать и попробовать PVS-Studio 7.33
- Пользовательское соглашение
- О компании
- Проекты, в которых мы нашли ошибки с помощью PVS-Studio
- Скачать PVS-Studio beta
- Классификация предупреждений PVS-Studio согласно SEI CERT Coding Standard
- Классификация предупреждений PVS-Studio согласно Common Weakness Enumeration (CWE)
- PVS-Studio как SAST-решение
- Бесплатная лицензия PVS-Studio для Open Source
- PVS-Studio ROI
- Нужна Single User лицензия?
- Почему мы просим использовать корпоративную почту при общении с нами?
- Мерчандайз
- Классификация предупреждений PVS-Studio согласно стандартам: MISRA C, MISRA C++
- Доступ к ранним версиям PVS-Studio
- Бесплатное использование PVS-Studio студентами и преподавателями
- Классификация предупреждений PVS-Studio согласно OWASP Top 10 Web Application Security Risks
- Классификация предупреждений PVS-Studio согласно OWASP Application Security Verification Standard (ASVS)
- Классификация предупреждений PVS-Studio согласно AUTOSAR C++14 Coding Guidelines
- Бесплатная лицензия PVS-Studio для специалистов Microsoft MVP
- Не получили письмо?
- Как одна маленькая ошибка стоила разработчикам 50 часов ее поиска
- Классификация предупреждений PVS-Studio согласно 2023 CWE Top 25 Most Dangerous Software Weaknesses mapping
- Установка бета-версии PVS-Studio из репозиториев на Linux и macOS
- Как посчитать количество разработчиков, на которое необходимо приобрести лицензию PVS-Studio?
- SCA (software composition analysis) с помощью PVS-Studio
- Быстрый запуск PVS-Studio С/C++ в Linux и macOS
- Быстрый запуск PVS-Studio в Windows
- ГОСТ Р 71207–2024
- Сертификация ФСТЭК
- Что нового в PVS-Studio
- Не получили письмо?
- Клиенты
- Анализатор PVS-Studio
- Online-примеры (C, C++)
- Все варианты загрузки PVS-Studio
- Частые вопросы и честные ответы
- Подпишитесь на рассылку от команды PVS-Studio
- Опросы