2011-10-26 41 views
8

Tôi muốn tạo Biểu đồ phụ thuộc chương trình (PDG) từ mã nguồn C. Tôi tìm thấy các giấy tờ giải thích cách thực hiện, nhưng tất cả đều sử dụng công cụ CodeSurfer thương mại.Làm thế nào để tạo biểu đồ phụ thuộc chương trình cho chương trình C?

Có công cụ miễn phí nào thực hiện việc này không?

+0

Nếu bạn muốn tính toán PDG cho chương trình C, tại sao bạn gắn thẻ câu hỏi 'C++'? Nó là khó khăn hơn nhiều để phân tích các chương trình C++ cho cùng một chương trình C sâu có thể được phân tích. –

+0

Xin chào, bạn đã quản lý để tìm một "máy phát điện" phong nha PDG? PDG được tạo ra bởi Frama-c tạo ra một biểu đồ rất strage ... – JohnTortugo

Trả lời

0

Doxygen có thể tạo chức năng người gọi và biểu đồ callee, cũng như tất cả các chức năng được sử dụng trong chương trình của bạn. Đây có thể không chính xác những gì bạn đang tìm kiếm, nhưng nó có thể cung cấp một số dữ liệu hữu ích.

SourceMonitor là công cụ số liệu có thể hiển thị hàm phức tạp của chương trình và chức năng cũng như biểu đồ phức tạp.

Cả hai công cụ đều miễn phí.

+1

"Biểu đồ phụ thuộc chương trình" là biểu đồ có các nút là các câu lệnh và các cạnh của nó biểu diễn các phụ thuộc. Nó không phải là biểu đồ cuộc gọi (có các nút là các hàm). Bạn có thể thấy một ví dụ về PDG ở đây, nhưng khi giao dịch với một ngôn ngữ lập trình thực sự, đặc biệt là C, ma quỷ ở trong các chi tiết, và nó thể hiện trong biểu diễn. http://lists.gforge.inria.fr/pipermail/frama-c-discuss/attachments/20100210/87fe9543/attachment-0001.png –

7

Frama-C là khung phân tích tĩnh nguồn mở có thể tính toán âm thanh Biểu đồ phụ thuộc chương trình cho chương trình C. slicing plug-in của nó sử dụng PDG kết quả. Việc tính toán cắt và PDG đã được thảo luận trong February 2010 trên danh sách gửi thư (tin nhắn từ jung, myung-jin và câu trả lời của họ).

Bạn cũng có thể xem số Unravel của NIST hoặc Aristotle của Georgia Tech. Cả hai Valsoft tại Đại học Karlsruhe, và Surgeon's Assistant của Loyola, cũng có thể đáng để xem xét.

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