Phiên bản mới của cppcheck 2.6 đã được phát hành và đây là những tin tức về nó

Việc phát hành phiên bản của trình phân tích mã tĩnh cppcheck 2.6Đó cho phép phát hiện các loại lỗi khác nhau trong mã C và C ++ngay cả khi sử dụng cú pháp không chuẩn điển hình của hệ thống nhúng.

Một bộ sưu tập các plugin được cung cấp thông qua đó tích hợp cppcheck với các hệ thống phát triển, tích hợp liên tục và thử nghiệm khác nhau được cung cấp, cũng như các tính năng như kiểm tra sự tuân thủ của mã với kiểu mã hóa.

Để phân tích mã, bạn có thể sử dụng cả trình phân tích cú pháp của riêng mình và trình phân tích cú pháp Clang bên ngoài. Nó cũng bao gồm một script donate-cpu.py để cung cấp các tài nguyên cục bộ cho công việc cộng tác xem xét mã cho các gói Debian.

Sự phát triển của cppcheck tập trung vào việc xác định các vấn đề liên quan đến hành vi không xác định và việc sử dụng các cấu trúc nguy hiểm theo quan điểm an toàn.

Mục đích cũng là để giảm thiểu dương tính giả. Trong số các vấn đề được xác định: con trỏ đến các đối tượng không tồn tại, chia cho XNUMX, tràn số nguyên, hoạt động dịch chuyển bit không chính xác, chuyển đổi không chính xác, sự cố bộ nhớ, sử dụng STL không chính xác, tham chiếu con trỏ rỗng, áp dụng kiểm tra sau khi truy cập thực vào bộ đệm, làm tràn giới hạn bộ đệm, sử dụng các biến chưa được khởi tạo.

Các tính năng mới chính của cppcheck 2.6

Trong phiên bản mới này se đã thêm các kiểm tra khác nhau vào hạt nhân của trình phân tích cú pháp, trong đó nổi bật là xác minh về việc không có khai báo trả về trong nội dung của hàm, cũng như về các bản ghi dữ liệu chồng chéo, định nghĩa hành vi không xác định và cả xác minh cho giá trị đang được so sánh nằm ngoài phạm vi của biểu diễn của giá trị của kiểu.

Một tính năng mới nổi bật khác là tối ưu hóa sao chép không áp dụng để trả về std :: move (local);, cộng với hỗ trợ đã được thêm vào để hiển thị thông báo chẩn đoán bằng các màu khác nhau cho các nền tảng Unix và thẻ thư viện bây giờ có thể chứa một thẻ cho các con trỏ thông minh có thuộc tính duy nhất. Cảnh báo liên kết nguy hiểm hiện đã được ban hành cho các loại con trỏ thông minh này.

Bên cạnh đó, Các kiểm soát của Misra C 2012 đã được thực hiện đầy đủ, bao gồm Tu chính án 1 và Tu chính án 2, ngoại trừ các quy tắc 1.1, 1.2 và 17.3. Trình biên dịch nên thực hiện kiểm tra 1.1 và 1.2. Một trình biên dịch như GCC có thể kiểm tra 17.3.

Trong số các thay đổi khác nổi bật của phiên bản mới này:

  • Không thể mở tệp đồng thời để đọc và ghi trong các luồng khác nhau;
  • Đã thêm phân tích biểu tượng cho ValueFlow. Một delta đơn giản được sử dụng khi tính toán sự khác biệt giữa hai biến chưa biết;
  • Các quy tắc được sử dụng cho danh sách mã thông báo "xác định" cũng có thể khớp với #include;
  • Thẻ thư viện bây giờ có thể chứa một thẻ và do đó các hàm miễn phí có thể chấp nhận các vùng chứa như std :: size, std :: blank, std :: begin, std :: end, v.v. bạn có thể chỉ định yeld hoặc hành động cho các vùng chứa;
  • Đã khắc phục sự cố với việc xử lý tham số –cppcheck-build-dir;
    htmlreport bây giờ có thể in thông tin về tác giả (sử dụng git blu);
  • Mở rộng cảnh báo về các biến không phải là hằng số, nhưng có thể trở nên không đổi;
  • Các lỗi và thiếu sót tích lũy của máy phân tích đã được khắc phục.

Cuối cùng nếu bạn quan tâm muốn biết thêm về phiên bản mới này thì có thể tham khảo các chi tiết trong liên kết sau đây.

Làm thế nào để cài đặt cppcheck trên Linux?

Đối với những ai quan tâm đến việc có thể cài đặt cppcheck trên bản phân phối Linux của mình thì có thể làm theo hướng dẫn mà chúng tôi chia sẻ dưới đây.

Nếu bạn là người dùng Debian hoặc bất kỳ bản phân phối nào khác dựa trên hoặc có nguồn gốc từ nó, chẳng hạn như Deepin hoặc Ubuntu, bạn có thể cài đặt trực tiếp từ thiết bị đầu cuối bằng cách gõ lệnh sau:

sudo apt-get install cppcheck

Giờ đây, đối với những ai là người dùng Fedora và các dẫn xuất của nó, họ có thể thực hiện cài đặt bằng cách gõ lệnh sau:

sudo yum instalar cppcheck

Hoặc đối với những người dùng Arch Linux hoặc bất kỳ dẫn xuất nào khác của nó, họ có thể cài đặt bằng lệnh sau:

sudo pacman -S cppcheck


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.