2009-07-16 72 views
9

Tôi đang nghiên cứu về một số chức năng rất dài trong hạt nhân Linux (link, link).Tôi có thể tìm phần mềm trực quan hóa mã nguồn mở tốt ở đâu?

Đối với nghiên cứu đó, tôi muốn sử dụng một số công cụ trực quan hóa dòng mã, có thể vẽ đồ thị trong đó mỗi đỉnh là điểm quyết định và mỗi cạnh là một đoạn mã chạy theo cách có hậu quả.

Bạn có biết về bất kỳ dự án nguồn mở tốt nào có thể trực quan hóa mã C không?

Trả lời

9

Có lẽ một công cụ như KCacheGrind sẽ giúp ích. Nó tạo ra đồ thị cuộc gọi dựa trên các cuộc gọi thực tế và không thể tạo trước một biểu đồ cuộc gọi mà không thực sự chạy chương trình, có thể không phù hợp với nhu cầu của bạn, nhưng sau đó nó lại có thể.

KCacheGrind Call Graph http://kcachegrind.sourceforge.net/html/pics/KcgShot3Large.gif

+0

Thực sự rất hay. Tôi sẽ thử nó. Hình ảnh –

+0

bị hỏng. – mrgloom

0

DOxygen thực hiện một số lượng 'trực quan hóa',
nhưng bạn cần phải làm việc trên mã một chút để có thể sử dụng được.


Một điều thú vị để kiểm tra sẽ lxr

Linux Cross Referencer là một bộ công cụ phần mềm cho lập chỉ mục và trình bày kho mã nguồn. LXR ban đầu được nhắm mục tiêu vào mã nguồn Linux, nhưng đã chứng tỏ có thể sử dụng được cho một loạt các dự án phần mềm. lxr.linux.no hiện đang chạy một nhánh thử nghiệm của phần mềm LXR.

1

History flow's rất gọn gàng cho các thay đổi/khác nhau trên nhiều phiên bản.

Codeplex có một dự án, Dependency Visualizer cũng hỗ trợ C.

Gprof2Dot có thể hiển thị nội dung mở, điều này cũng sẽ giúp bạn có được thông tin động.

CodeViz cũng (công cụ tĩnh) sẽ hoạt động.

Nếu bạn sử dụng gcc, gcc-xml có số introspector plugin cũng cần thực hiện việc này.

1

Bạn dường như muốn có được sơ đồ mã nguồn C ("quyết định", "khối mã").
Một cái gì đó như thế này C flowchart?

Để làm điều này một cách chính xác, đặc biệt. cho mã kernal Linux, tôi hy vọng bạn phải xử lý trước mã trước để loại bỏ các macro và điều kiện. Tôi cho rằng GCC sẽ xây dựng một biểu đồ như vậy trong nội bộ và bạn nên có khả năng để có được bàn tay của bạn trên biểu đồ đó.

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