2009-07-15 22 views
16

tôi đã nhận thấy trong các bài sau đây mà bạn có thể có được một stack trace ra khỏi FastMM để hiển thị những gì dường như là nơi một đối tượng được phân bổ:Làm thế nào để có được một stack trace từ FastMM

How to track down tricky memory leak with fastMM?

Tôi không thể tìm thấy bất kỳ thông tin về làm thế nào để kích hoạt tính năng này trong Delphi 2009, mặc dù.

Tôi đã đặt ReportMemoryLeaksOnShutdown thành true để tôi nhận báo cáo cơ bản, nhưng làm cách nào để nhận báo cáo theo dõi ngăn xếp?

Trả lời

39

Phiên bản Delphi nội bộ của FastMM không hỗ trợ dấu vết ngăn xếp.

Nếu bạn muốn ghi lại những dấu vết rò rỉ bộ nhớ stack, bạn phải:

  • tải về phiên bản đầy đủ của FastMM library

  • bao gồm nó như là đơn vị đầu tiên trong dự án của bạn:

    program YourProject; 
    
    uses 
        FastMM4, // <-- 
        SysUtils, 
        Forms, 
        ... 
    
  • bật tùy chọn FullDebugMode trong FastMM4Options.inc

  • thiết Bản đồ tập tin-Chi tiết trong các tùy chọn dự án liên kết (các FastMM_FullDebugMode.dll quá trình tập tin .map)

  • thêm FastMM_FullDebugMode.dll trong nhị phân của bạn (hoặc Windows System32) thư mục

+1

FastMM_FullDebugMode.dll cũng có thể được lưu trữ trong thư mục hệ thống của Windows. – gabr

+2

trên cửa sổ 64 bit của tôi mà tôi đã sao chép vào: 'C: \ Windows \ SysWOW64' –

5

Bạn cũng có thể muốn kiểm tra chương trình thiết lập Tùy chọn Jeremy Bắc của FastMM4. Nó chỉ là một chút dễ dàng hơn so với chỉnh sửa các tập tin inc FastMM4Options.inc trực tiếp. Đây là liên kết:

FastMM4 Options Interface Blog Post

5

Bên cạnh đó, Francois Gaillard trình bày trên CodeRage II phiên gọi Fighting Rò rỉ bộ nhớ cho Dummies và những giao dịch đặc biệt với FastMM. Nó được liệt kê dưới các replay CodeRage II vào thứ năm, ngày 29 tháng 11 năm 2007, 9 giờ 45 sáng - 10:45 sáng.

http://edn.embarcadero.com/article/37498

Kính trọng, Erwin