2010-02-10 25 views

Trả lời

6

Để gửi một tín hiệu đến valgrind, pkill -USR1 valgrind không muốn làm việc cho tôi.

pkill -USR1 memcheck

làm các trick.

3

Không có tín hiệu báo cho valgrind kiểm tra trạng thái sử dụng bộ nhớ của nó. Nếu bạn quan tâm đến lượng bộ nhớ được chương trình của bạn sử dụng theo thời gian và nơi bộ nhớ được cấp phát, công cụ massif của valgrind có thể ghi lại thông tin đó, sau đó có thể được hiển thị bằng tiện ích ms_print của nó. Massif ghi lại các ảnh chụp nhanh việc sử dụng bộ nhớ của chương trình một cách tự động trong suốt quá trình thực hiện chương trình, bao gồm ảnh chụp nhanh đỉnh đại diện cho điểm sử dụng bộ nhớ ở mức cao nhất (trong vòng 1% sử dụng các tùy chọn mặc định).

Để chạy chương trình của bạn dưới công cụ khối núi valgrind của:

valgrind --tool=massif yourprogram 

Một tập tin nhị phân massif.out.pid sẽ được tạo ra. Sử dụng ms_print để định dạng thông tin dưới dạng văn bản:

ms_print massif.out.12345 
+0

Ah, cảm ơn bạn. Chương trình của tôi cần chấp nhận tín hiệu số 40 để thoát. Nó là một daemon máy chủ, do đó, cách duy nhất tôi làm cho nó thoát là gửi một tín hiệu 40, và xử lý sig sẽ làm cho chương trình thoát. Vì vậy, khi tôi kiểm tra việc sử dụng bộ nhớ của nó trong valgrind, tôi không thể tìm thấy một cách để gửi một tín hiệu cho nó, bởi vì, không có quá trình của chương trình đó cả. Có anyway tôi có thể gửi một tín hiệu cho chương trình của tôi? Cảm ơn! –

+1

Nếu bạn gửi tín hiệu đến quá trình valgrind đang chạy chương trình của bạn thì valgrind sẽ chuyển nó vào bộ xử lý tín hiệu của chương trình của bạn. – mark4o

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