Về cơ bản tôi muốn các công cụ mà tạo ra mã nguồn trực quan như:Hiển thị mã nguồn C/C++?
- chức năng gọi đồ thị
- phụ thuộc đồ thị
- ...
Về cơ bản tôi muốn các công cụ mà tạo ra mã nguồn trực quan như:Hiển thị mã nguồn C/C++?
Có thể là một bản sao, nhưng hãy kiểm tra ollydbg, IDA Pro và this website có một loạt các tài nguyên với một số hình ảnh rất gợi cảm.
Doxygen thực sự tuyệt vời cho điều này, mặc dù bạn sẽ cần phải cài đặt GraphViz để có được các đồ thị để vẽ.
Khi bạn đã cài đặt mọi thứ, việc vẽ đồ thị thực sự khá đơn giản. Đảm bảo bạn đặt EXTRACT_ALL và CALL_GRAPH thành true và bạn nên làm tốt.
Tài liệu đầy đủ về chức năng này cho Doxygen là here.
Ngọt ngào. Rất đơn giản để sử dụng. GraphViz sửa đổi đường dẫn hệ thống của bạn, và doxygen sử dụng nó. – bobobobo
+1 Tôi đồng ý. Doxygen là một công cụ rất hữu ích khi khám phá mã hiện có. Kiểm tra tùy chọn tạo mã nguồn và bạn dễ dàng điều hướng qua mã nguồn của mình mà không cần mở trình soạn thảo mã của bạn ... – neuro
Đảm bảo cũng HAVE_DOT = YES – polypus74
Bạn có thể nhìn vào các công cụ khác nhau cho phần mềm thiết kế và mô hình hóa (Rational Rose, Sparx Enterprise Architect, Umbrello, vv). Phần lớn trong số họ có một số chức năng để đảo ngược mô hình bằng mã nguồn, và nhận được sơ đồ lớp UML, và đôi khi ngay cả biểu đồ trình tự (và điều này rất gần với biểu đồ gọi hàm).
Nhưng sau khi bạn nhận được một số hình ảnh về cơ sở mã dự án thực sự lớn, bạn có thể nhận ra rằng các đồ thị như vậy khá khó đọc và dễ hiểu. Khả năng hiển thị không mong muốn của độ phức tạp rất hạn chế.
Đối với tôi, sử dụng thành ngữ "phân chia và cai trị" là cách tiếp cận thuận tiện hơn. Bạn có thể trích xuất các khối chức năng hoặc lớp khác nhau từ một số cơ sở mã của bạn (chỉ cần phân loại các tệp cpp bằng các thư mục khác nhau đôi khi đủ). Một cách khác là sử dụng một số script (bash, python) để tạo các bảng csv đơn giản với các tham số quan tâm của các tệp, các lớp hoặc các hàm như "số phụ thuộc", v.v.).
+1 nhận xét tốt. – neuro
Tôi đặc biệt khuyên bạn nên BOUML. Đó là một mô hình ứng dụng UML miễn phí, trong đó:
Vì vậy: nhập mã của bạn vào BOUML và xem ở đó hoặc xuất sang SVG và xem trong Firefox.
Đối với phiên bản miễn phí:
+1 cho một công cụ UML miễn phí đáng được thử. – neuro
Trình cài đặt Windows cho 4.23.7 có thể được tìm thấy trên cùng trang sourceforge dưới dạng Douml trong phần "Tệp". – Zeks
http://launchpad.net/~pasgui/+archive/ppa/ anh chàng này đang tạo dựng thường xuyên cho douml debian/ubuntu Như @Zeks đề xuất trong chủ đề khác. – kikeenrique
Có một công cụ cũ gọi CDOC mà chúng ta vẫn sử dụng để tạo cuộc gọi cây.
Nếu bạn sử dụng Visual Studio, bản phát hành Cuối cùng năm 2010 cho phép bạn tạo biểu đồ trình tự và biểu đồ phụ thuộc. Tuy nhiên, bản phát hành hiện chỉ hỗ trợ các dự án ứng dụng .NET.
Nhóm đã nhận được rất nhiều sự quan tâm hỗ trợ C++ trong bản phát hành trong tương lai, vì vậy bạn có thể muốn tiếp tục theo dõi. Trong thời gian chờ đợi, bạn có thể đăng trong Kiến thức Kiến trúc VS 2010 & Công cụ tạo mô hình diễn đàn tại http://social.msdn.microsoft.com/Forums/en-US/vsarch/threads để yêu cầu cập nhật. Tôi biết nhóm sản phẩm rất thích nghe phản hồi của khách hàng về các công cụ.
Trong khi đó, bạn có thể tìm hiểu thêm về việc tạo sơ đồ trình tự và biểu đồ phụ thuộc từ mã NET trong các chủ đề sau:
Làm thế nào để: Tìm Mã Sử dụng Kiến trúc Explorer: http://msdn.microsoft.com/en-us/library/dd409431%28VS.100%29.aspx
thế nào để: Tạo tài liệu đồ thị từ mã: http://msdn.microsoft.com/en-us/library/dd409453%28VS.100%29.aspx#SeeSpecificSource
Cách: Khám phá mã với sơ đồ tuần tự: http://msdn.microsoft.com/en-us/library/ee317485%28VS.100%29.aspx
Để try các RC release và provide feedback, download nó at http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=457bab91-5eb2-4b36-b0f4-d6f34683c62a
Trong addition để written tools above, bạn may try understand. Nhưng, nó không phải là miễn phí.
Họ có một phiên bản dùng thử có thể khá tiện dụng. – karlphillip
bạn có nghĩa là phụ thuộc trong giao diện (ví dụ: biểu đồ thừa kế) hay phụ thuộc trong triển khai (biểu đồ cuộc gọi, ví dụ: có cạnh từ hàm A đến B nếu A gọi B trong thân của nó)? – Krystian
Bạn có thể thử CppDepend (http://www.cppdepend.com), nơi bạn có thể tạo ra biểu đồ gọi hàm/đồ thị phụ thuộc và lọc các phần tử trong biểu đồ bằng cách sử dụng CQLinq.CppDepend là miễn phí cho các cộng tác viên nguồn mở. –