2009-09-05 33 views
19

Đá Kcachegrind và nó là công cụ yêu thích của tôi, tuy nhiên đôi khi tôi thiếu khả năng chạy nó trong thiết bị đầu cuối (ví dụ: sử dụng ssh) trên máy chủ từ xa.Bàn điều khiển thay thế kcachegrind?

Tôi biết có thể thiết lập chuyển tiếp VNC hoặc X-server nhưng nó khá vụng về trong khi tôi cần một cái gì đó đơn giản.

Có bất kỳ bàn điều khiển kcachegrind nào thay thế (ví dụ: ncurses dựa) không?

Trả lời

-5

kcachegrind nêu rõ rằng đó là giao diện người dùng cho cachegrind và callgrind.

cachegrind và callgrind là một phần của phiên bản mới nhất (3.5) của valgrind. Vì vậy, tải valgrind từ http://valgrind.org/downloads/current.html#current và xây dựng nó. Chạy valgrind --help, nó cho bạn thấy cách sử dụng chức năng callgrind.

Để biết thêm thông tin, tôi cần biết bạn muốn làm gì.

+3

Tôi nghĩ rằng bạn không thực sự đọc câu hỏi. Những gì tôi cần là một lối vào dựa trên ncurses cho callgrind/cachegrind. – pachanga

+0

Câu trả lời là valgrind. Để được hướng dẫn cách sử dụng valgrind, hãy chạy valgrind --help. –

+2

bạn sai, câu trả lời không phải là valgrind.Valgrind chỉ thực hiện một bước 'chạy và thu thập thông tin', nhưng không phải là một' xem kết quả' cho các tập tin callgrind & cachegrind – osgx

0

Chạy Valgrind/Callgrind tại máy chủ từ xa có vẻ là một lựa chọn tốt. Hoặc, bạn có thể scp đầu ra từ Valgrind hoặc Callgrind vào PC của bạn và chạy KCachegrind trên nó.

Nếu bạn sử dụng Emacs, bạn có thể kích hoạt nó trên máy chủ từ xa và thực hiện như được hiển thị here, sẽ cung cấp cho bạn giao diện người dùng Emacs'ish cho công cụ valgrind.

5

Sử dụng SSHFS để gắn thư mục từ xa mà bạn đang làm việc (xem ví dụ: SSHFS installation instructions for Ubuntu).

Sau đó, chỉ cần ssh và chạy valgrind --tool=callgrind với bất kỳ tùy chọn nào bạn muốn trong thư mục từ xa. Vì bạn có thư mục được gắn cục bộ, thật dễ dàng để mở các tệp dữ liệu với KCacheGrind như thể bạn đang gỡ lỗi cục bộ.

+0

Cachegrind có thể phát triển rất lớn, tối đa vài trăm MB. Làm điều này trên các tập tin lớn thực sự không được khuyến khích như kcachegrind đọc toàn bộ tập tin cùng một lúc, mà sẽ yêu cầu vài phút ngay cả trên một kết nối nhanh. –

3

webgrind là lối vào web được viết bằng PHP phân tích đầu ra của XDebug (sử dụng cùng định dạng như callgrind), vì vậy nó sẽ hoạt động với đầu ra của callgrind (mặc dù tôi chưa thử nghiệm).

+0

"Nó thực hiện một tập con của các tính năng của kcachegrind". Vì vậy, ví dụ: sản lượng lắp ráp sẽ không thể truy cập thông qua webgrind – osgx

9

Bạn có thể nhận thông tin cơ bản và chú thích từ tệp đầu ra callgrind (được tạo bởi valgrind --tool=callgrind) với tiện ích dòng lệnh callgrind_annotate. (manual pagesection in docs). Đối với các tệp được tạo bởi cachegrind (valgrind --tool=cachegrind), bạn có thể sử dụng cg_annotate (section in docs). Những tiện ích này được xây dựng theo mặc định với chính valgrind.

Cách khác là sao chép các tệp đầu ra của chương trình và bộ nhớ cache/callgrind vào máy của bạn và sau đó phân tích chúng bằng kcachegrind cục bộ như bình thường. Nhưng theo cách này nó có thể khó khăn nếu máy của bạn không có unix nhưng cửa sổ hoặc bạn chạy trên vòm không tương thích (kcachegrind có thể gọi địa phương objdump để có được thông tin về chương trình).

Tôi cũng muốn giới thiệu tùy chọn dòng lệnh để Valgrind:

valgrind --tool=cachegrind --branch-sim=yes 
valgrind --tool=callgrind --dump-instr=yes --trace-jump=yes 

Bạn cũng có thể xác định kích thước bộ nhớ cache cho cachegrind với --I1=32768,8,64 --D1=32768,8,64 --L2=3145728,12,64

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