Pascal miễn phí có tính năng tương tự. Vào cuối chương trình, hãy gọi DumpHeap
hoặc bật tùy chọn heaptrc trong cài đặt dự án Lazarus. Tập tin đầu ra có thể được thiết lập với phương thức SetHeapTraceOutput
. Cả hai phương thức đều nằm trong đơn vị heaptrc
, đây phải là phương thức đầu tiên trong dự án (để nắm bắt phân bổ từ đầu).
Thông tin thêm:
rò rỉ hình dung: gói Lazarus "LeakView" trình bày các nội dung của một tập tin đầu ra đống dấu vết trong một hình cây . Nó được bao gồm trong cài đặt mặc định và có sẵn sau khi xây dựng lại IDE. (Chưa thử nghiệm của tôi)
// By default information is written to standard output,
// this function allows you to redirect the information to a file
SetHeapTraceOutput('heaptrace.log');
// normally the heap dump will be written automatically at the end,
// but can also be written on demand any time
DumpHeap;
Kết quả trông giống như:
C:\path\to\Demo.exe
Heap dump by heaptrc unit
244 memory blocks allocated : 8305/9080
241 memory blocks freed : 8237/9000
3 unfreed memory blocks : 68
True heap size : 458752
True free heap : 458288
Should be : 458480
Call trace for block $0010CE58 size 28
$0044ACCB TIDTHREADSAFE__CREATE, line 226 of C:/path/to/indy-10.5.8.tiburon/Lib/Core/IdThreadSafe.pas
$00444245 IDTHREAD_init, line 641 of C:/path/to/indy-10.5.8.tiburon/Lib/Core/IdThread.pas
$00409D74
$0040E1A1
...
(thử nghiệm với Free Pascal 2.6.0)
Có một nỗ lực liên tục để chuyển FastMM4 vào FPC. Có lẽ bạn có thể là một phần. Sau đó, bạn có thể chạy mã của bạn chưa sửa đổi nếu FastMM4/FPC sẽ ổn định. http://lists.freepascal.org/lists/fpc-pascal/2005-December/009721.html http://lists.freepascal.org/lists/fpc-pascal/2009-June/021448.html –