2011-01-25 23 views
14

Trong Linux, tôi đã sử dụng valgrind để kiểm tra xem có rò rỉ bộ nhớ trong ứng dụng hay không. Tương đương với Windows là gì? Điều này có thể được thực hiện với Visual Studio 2010?Tìm rò rỉ bộ nhớ trong ứng dụng C++ với Visual Studio

+0

bản sao có thể có của [Có thay thế Valgrind tốt cho Windows không?] (Http://stackoverflow.com/questions/413477/là-có-một-tốt-valgrind-thay thế-cho-windows) – Patrick

Trả lời

20

Visual Studio hỗ trợ bạn trong việc tìm kiếm rò rỉ bộ nhớ. Điều này link sẽ hữu ích.

+1

1, nhưng nó đáng chú ý rằng công cụ này chỉ hoạt động trong xây dựng gỡ lỗi. – sharptooth

+1

và bạn phải thay đổi mã nguồn và yêu cầu bạn phải thay đổi mã nguồn ... vì vậy nếu bạn sử dụng bất kỳ thư viện của bên thứ ba nào, bạn không thể thay đổi mã nguồn, ví dụ: bạn sẽ không tìm thấy rò rỉ bộ nhớ do bạn không gọi 'ThirdPartyLibFree (p3rdpartyhandle)'. – smerlin

+0

Ngoài ra, Thư viện CRT không cho bạn biết, khi bộ nhớ bị rò rỉ (ví dụ: con trỏ bị xóa hoặc ghi đè). – Sascha

1

Bạn có thể sử dụng công cụ DevPartner để tìm rò rỉ bộ nhớ trong các ứng dụng C++ sử dụng studio trực quan.

+0

Nếu bạn thích lỗ khoan trong đầu của bạn cho vui, chắc chắn. –

+0

Và tại sao lại là – ckv

7

Làm thế nào về Visual Leak Detector? Nó không phải là inbuild, nhưng tôi nghĩ nó là một trong những phổ biến nhất.

+0

Dường như url mới của nó là http://vld.codeplex.com/ – rogerdpack

2

C++ Memory Validator tìm bộ nhớ và xử lý rò rỉ trong các chương trình Windows gốc được tạo bằng Visual Studio, Delphi và các trình biên dịch khác. Nhanh chóng và có thể xử lý khối lượng công việc lớn (một số người dùng theo dõi vài tỷ phân bổ và deallocations trong một lần chạy).

Tiết lộ: Tôi là nhà thiết kế của Trình kiểm tra bộ nhớ C++. Chúng tôi xây dựng nó bởi vì các công cụ khác không thể xử lý khối lượng công việc khi chúng tôi làm việc với SolidWorks R & D Ltd.