2008-09-18 38 views
124

Công cụ phân tích mã tĩnh nào của C++ mà bạn biết về sự phát triển của Microsoft Windows và những tính năng chính nào mà nó cung cấp?Công cụ phân tích mã tĩnh C++ trên Windows

Vui lòng nêu rõ liệu một công cụ cụ thể có dựa trên Cygwin hay không và liệu FOSS của nó, miễn phí hay yêu cầu mua hàng.

Câu hỏi tương tự:What open source C++ static analysis tools are available?

Dưới đây là tóm tắt của nhà nước hiện hành:

  1. PreFAST tìm thấy trong Windows Driver Kit
  2. Cppcheck
  3. Coverity
  4. PVS-Studio
  5. Oink
  6. Klocwork Insight
  7. PC-Lint
  8. CppDepend
  9. Goanna
  10. Sentry
  11. Visual Studio Team System
  12. Understand
  13. cccc
  14. Cqual++
  15. Flawfinder
  16. DMS Software Reengineering Toolkit
  17. Vera ++
  18. Source Monitor
  19. Stack (mã nguồn tại github)
+0

CppCat - công cụ tìm kiếm lỗi trong chương trình C/C++ có sẵn dưới dạng plugin cho Microsoft Visual Studio 2010, 2012, 2013. http: //www.cppcat.com –

+3

Tại sao điều này đóng cửa? Đây là một câu hỏi cực kỳ hữu ích và quan trọng. – Owl

+0

Ai đó cần kiểm duyệt người kiểm duyệt. – johnwbyrd

Trả lời

2
+2

Bạn có thể thêm một số thông tin cơ bản khác về nó trong bài viết của bạn, như là KTC requets không? – jfs

+0

tôi đã sử dụng công việc này, nó đã bắt gặp một số lỗi nghiêm trọng. – sailfish009

4

Visual Studio Team System hiện có các công cụ phân tích mã (mặc dù VSTT khá đắt).

10

PC-Lint có một chút phân tích tĩnh hợp lý.

17

Chúng tôi sử dụng Coverity. Nó không phải là miễn phí bởi một longshot, nhưng Windows là một plaform được hỗ trợ.

22

Nếu bạn chạy VC2008 (Phiên bản Express là miễn phí) và sau đó cài đặt Windows SDK mới nhất, bạn có thể nhận được các công cụ phân tích mã PREFAST tương tự thường chỉ có trong VSTT. Nếu bạn đã sử dụng Visual Studio thì đây là một cách tuyệt vời để đi, nếu bạn đang sử dụng GCC hoặc một số trình biên dịch khác cho Win32, bạn sẽ cần phải tìm ở nơi khác.

+3

Prefast đi kèm với Bộ điều khiển Windows (WDK), không phải SDK. – KTC

+1

Nếu Prefast hoạt động cho dự án phần mềm lớn nhất hành tinh (và nó), nó có thể sẽ hoạt động cho bạn quá –

+0

Bạn có thể tìm thấy chức năng Phân tích (sử dụng PREFAST hoặc tương tự, thực sự) trong cộng đồng Visual Studio 2013/2015 mới nhất Phiên bản. Chi phí: ZERO. Tôi thực sự thích xu hướng này của Microsoft. – alcor

13

Tôi cũng nghe nói rằng Oink là tốt.

2

Tôi đã sử dụng giám sát nguồn trong nhiều năm. một số điều tuyệt vời. Phần tốt nhất là nó là miễn phí.

Kiểm tra các Trang chủ của cho màn nguồn ở đây: Source Monitor

2

Hai năm trước, tôi đã sử dụng Scitools' Understand. Nó là di động (ít nhất là kết hợp Windows-Linux mà chúng tôi sử dụng) và có hỗ trợ cho nhiều ngôn ngữ. Có thể rất tốt rằng đó không phải là những gì bạn đang mặc dù ...

Điều gì sẽ thú vị là nó là khá phải chăng, và sự hỗ trợ là ấn tượng, vấn đề và câu hỏi thường xuyên hơn không giải quyết cùng ngày.

2

Tôi sử dụng PC-Lint để xem xét mã tĩnh!

41

Cppcheck là nguồn mở và nền tảng chéo.

8

Klocwork "Thông tin chi tiết" khác, nhưng không miễn phí. Tôi cũng đã sử dụng Coverity "Ngăn chặn". Cả hai đều là sản phẩm rất tốt nếu bạn không nhớ chi phí.

8

Tôi nghĩ rằng những phân tích tĩnh 3 opensource là ấn tượng:

  • Cppcheck - Dễ dàng với giao diện gui. Kiểm tra các tiêu chuẩn mã hóa và các vấn đề quan trọng khác.

  • cccc - kết quả đầu ra các số liệu mã hóa, như không có dòng mã, mã chỉ số phức tạp, bình luận đếm, vv

  • Cqual++ - Mục tiêu của Cqual ++ là để tìm lỗi dataflow dòng chảy-insensitive . (Bạn phải xây dựng công cụ này từ nguồn)

Câu hỏi của tôi là: tôi có thể thêm tiêu chuẩn mã hóa tùy chỉnh không? Có bất kỳ công cụ mở nào hỗ trợ việc bổ sung các tiêu chuẩn mã hóa tùy chỉnh không?

+0

Xin hãy nhìn vào câu trả lời tương tự của Basile Starynkevitch (http://stackoverflow.com/a/8063049). Ông đề nghị rằng việc kiểm tra các quy tắc mã hóa tùy chỉnh có thể được thực hiện bằng cách sử dụng [GCC] (http://gcc.gnu.org/) (> = 4.6) thông qua các plugin hoặc [phần mở rộng MELT] (http://gcc-melt.org/) . – User3419

1

Vera ++ cũng cho phép để kiểm tra tiêu chuẩn mã hóa tùy chỉnh thông qua các kịch bản ...

4

Tôi là một trong các nhà phát triển cho một Visual Studio C/C++ công cụ phân tích tĩnh gọi Goanna. Cái này tốn tiền (có bản dùng thử miễn phí), nhưng tôi muốn nghĩ nó tốt.

7

Bạn có thể kiểm tra công cụ CppDepend, phiên bản Pro không miễn phí nhưng phiên bản dùng thử có thể đủ cho nhiều nhu cầu.

Các vấn đề liên quan