2012-07-11 1 views
3

FastMM 버전 4.99를 사용하려고합니다 (위에있는 설명에 따르면 FastMM4.pas). 난 followedtheinstructions 전체 디버그 모드와 스택 추적을 사용하고 IDE 디버거에서 내 .exe를 실행할 때 누출을 발견하고 있습니다. 예 : 내가, 또는 Windows 탐색기에서 더블 클릭하여 명령 프롬프트에서 실행 파일을 실행하려고 할 때FastMM/DXE2는 디버거를 사용할 때만보고합니까?

FastMM Leak Report Dialog

는하지만, 내가보고 누출을 얻을 수 없습니다. UnicodeString 누수가 가짜 일지 모르지만 TIniFile 누수가 실제로 있는지를 알고 있습니다. 디버거를 사용하지 않을 때 FastMM 보고서/로그 누출을 만들려면 어떻게합니까?

업데이트 :이 프로젝트도 madExcept 3.0n을 사용합니다. .dpr 파일의 uses 절에 FastMM4가 첫 번째 항목으로 포함되어 있습니다. 이 두 가지를 공존시키는 데 필요한 다른 것이 있습니까?

답변

12

FastMM4Options.inc을 올바르게 구성하지 않았습니다. 버전 4.97와 함께 배포되는 파일에서, 라인 (405)의 주위에이다 :

{Set this option to require the presence of the Delphi IDE to report memory 
leaks. This option has no effect if the option "EnableMemoryLeakReporting" 
is not also set.} 
{.$define RequireIDEPresenceForLeakReporting} 

.합니다 ( $define 전) 마지막 줄에 있는지 확인하고 프로젝트를 다시 빌드합니다.

@wades는 앞서 언급 한 바로 아래에 또 다른 설정이 있음을 발견했습니다. 기본값은 켜져있는 RequireDebuggerPresenceForLeakReporting입니다. 바로 여는 중괄호 후 기간을 추가하여 사용 안 함 :

{Set this option to require the program to be run inside the IDE debugger to 
report memory leaks. This option has no effect if the option 
"EnableMemoryLeakReporting" is not also set.} 
{$define RequireDebuggerPresenceForLeakReporting} 

(@wades의 요청에 의해이 답변에 추가.)

+0

가 아니,이 없습니다. RequreIDEPresenceForLeakReporting이 이미 해제되었습니다. – wades

+0

하지만 이것은 단서였습니다 ... 관심있는 옵션은 RequireDebuggerPresenceForLeakReporting으로 밝혀졌습니다. 기본값은 v4.99에서 "on"입니다. – wades

+0

@wades, 감사합니다. 답변을 게시해야합니다. 또는 원할 경우 답변을 포함하도록 답변을 업데이트하고 나중에 찾을 수있는 답변을 게시해야합니다. ('FastMM4Options.inc' 파일의 다음 항목이므로 위의 답을 게시했을 때 내가 어떻게 그것을 놓쳤는 지 확신 할 수 없습니다.) –

관련 문제