2011-12-12 20 views
8

Tôi đang sử dụng Trình tạo Qt để phát triển ứng dụng C++ và tôi đang cố gắng theo dõi một số rò rỉ bộ nhớ.Sử dụng công cụ 'Phân tích bộ nhớ' trong Qt Creator

Tôi đã theo dõi these instructions * và có Valgrind không được gắn trên máy tính Ubuntu của tôi.

Tôi bắt đầu ứng dụng của mình từ phần Phân tích bộ nhớ và sau khi nhấp vào nút dừng, tôi được thông báo rằng Tool Analyze Memory finished, 928 issues found. Tuy nhiên, không có kết quả nào xuất hiện trong phần phân tích, vẫn còn trống.

Tôi có làm gì sai không? Tôi có thể tìm thấy kết quả phân tích bộ nhớ ở đâu?


* Các hướng dẫn yêu cầu cấu hình xây dựng 'phát hành' nhưng chọn cảnh báo trong Qt rằng công cụ phân tích bộ nhớ yêu cầu cấu hình gỡ lỗi. Tôi đã thử cả hai cách.

Trả lời

11

Tôi đã kiểm tra nó trong Trình tạo Qt của tôi và nó hoạt động. Tôi đang sử dụng phiên bản 2.3.1 với Qt 4.7.4 và Valgrind 3.7.0. Tôi đã thử nghiệm nó trên dropsite example với cấu hình xây dựng Gỡ lỗi. Tôi cũng đã thử nghiệm nó với dự án dựa trên CMake của tôi (compiled với cờ -g và -O0) và nó cũng hoạt động. Hãy chắc chắn rằng, bên cạnh nút bắt đầu Valgrind Memory Analyzer được chọn. Trên cùng một thanh bạn sẽ tìm thấy các biểu tượng mũi tên. Bên cạnh chúng là biểu tượng của kênh (tôi nghĩ). Nhấp vào nó và đảm bảo rằng các loại lỗi mà bạn quan tâm được chọn.

Nếu nó không hoạt động, và bạn không muốn sử dụng công cụ Valgrind từ bảng điều khiển, có Valgrind GUIs khác như Valkyrie.

EDIT: Tôi đã cập nhật Qt Creator thành phiên bản 2.4.0rc1 và đã chọn nó với dự án CMake của tôi. Nó cũng cho thấy không có kết quả, trong khi báo cáo vài trăm vấn đề. Giải pháp cho điều này là kiểm tra External errors sau khi nhấp vào biểu tượng kênh.

EDIT2: Trong sự cố 2.4.0 cuối cùng đã được khắc phục.

+2

Sự cố đã xảy ra với Trình tạo Qt mới nhất 3.2.1. +1 cho 'Lỗi bên ngoài'. Nó làm việc cho tôi! Cảm ơn! – mchiasson

+0

Và vẫn còn hiện diện trong 3.6.0. Sửa lỗi bên ngoài. Cảm ơn! – marmistrz

1

Bạn không làm gì sai. Trong menu Valgrind, nhấn biểu tượng Bộ lọc và chọn External Errors. Bạn sẽ thấy tất cả các vấn đề xuất hiện. Những người có nhiều khả năng không phải từ ứng dụng của bạn, nhưng có liên quan đến Qt- hoặc người khác, vì vậy bạn thường có thể bỏ qua chúng.

X issues found đề cập đến tổng số vấn đề; khi External Errors không được chọn, chỉ những người có liên quan đến ứng dụng của bạn mới hiển thị. Nếu không xuất hiện, Valgrind đã không phát hiện bất kỳ rò rỉ bộ nhớ nào trong ứng dụng của bạn.

+0

Điều này có nghĩa là rò rỉ bộ nhớ xảy ra mỗi lần ở bên ngoài? – CaptainDaVinci

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