응용 프로그램이 서비스로 실행되는 경우 델파이의 FastMM4과 동일한 기술로 자세한 파일 작업에 대한 메모리 누수를보고합니까? 물론 가장 좋은 방법은 단위 테스트와 간단한 독립 실행 형 응용 프로그램을 작성하여 서비스 환경 외부에서 누출을 찾아내는 것입니다. 편집 : 및 예, 로그 파일을 작성하기에 충분한 권한을 가진 서비스를 실행하는 데 사용되는 계정을
내가 선언하면 PSomeStruct = ^TSomeStruct;
TSomeStruct = record
s1 : string;
end;
내가 다음 코드를 실행합니다 var
p: PSomeStruct;
begin
new(p);
p^.s1:= 'something bla bla bla';
dispose(p);
FastMM이 메모리 누수를 기록하면 스택 추적으로 9 회까지 호출됩니다. 문제는 stacktrace가 너무 일반적이어서 문제를 쉽게 찾을 수 없다는 것입니다. 추적에서 마지막 함수 호출은 최소 50 번 호출되며 유출 된 객체는 매우 일반적인 것입니다. 스택 트레이스를 길게 만들려면 어떻게해야합니까? 누설 위치를 쉽게 찾는 방법은 물론 환영합니다. 누출 된
과거에 사라진이 끔찍한 버그가 있었지만 이제는 꽤 오래되었습니다. 나는 (TObjectList에서 파생 된) TAsmJob 객체로 생성되고로드 된 두 개의 TSam 객체 (TPersistent에서 파생 됨)가 있습니다. 런타임시 양식에서 TStringGrid를 만든 다음 AsmJob을 만들어 두 개의 SAM 개체를 만들고 각 개체에 디스크에서 데이터를로드합