2017-12-21 9 views
-1

저는 FastMM을 사용했으며 누수 및 메모리 문제를 감지하는 훌륭한 도구입니다. 하지만 이제 델파이로 만든 COM 서버를 검사하려고하는데 보고서가 일관성이 없습니다. ShearMM 및 다른 DLL과 함께 FastMM을 구성하려고 시도했지만이 경우가 아니어야합니다 (COM 서버는이를 사용하는 이진 파일로부터 격리 된 블랙 박스 여야하며 MM을 공유하지 않아야 함을 알고 있습니다.)). 그럼 ... 어떻게 구성해야합니까? FastMM이 COM 서버에서 누수를보고하도록 서버 프로젝트에서 어떻게 정의해야합니까? COM 객체에서 FastMM4 사용 (Delphi)


내가 예로서 델파이 프로젝트를 추가

을 편집했다. 누수가있는 COM in-proc 개체와 누수가있는 EXE 프로젝트로 구성됩니다. 클라이언트를 실행할 때 FastMM4 만 클라이언트 누출로 인한 보고서를 표시합니다. 서버 누출 감지 (여부를보고)되지 않습니다

Delphi Sample

호기심 : 대신 FASTMM의, 내가 사용하는 경우 서버에서, 델파이 보고서 (ReportMemoryLeaksOnShutdown를) 누수, 서버 누출은 델파이에 의해 발견된다!

또 다른 설명 : 그것은 FastMM4가 소스로 제공 나의 FastMM4Options.inc은 그대로입니다

답변

0

당신이 out-of-process 서버 프로세스에서 실행하는 COM 개체를 구성하는 경우 있도록 COM 객체의 생성 EXE 파일을 시작하면 설명대로 호출 프로세스에서 격리 된 FastMM을 자유롭게 사용할 수 있습니다.

COM에서 이벤트 (ComServer가 System.Win.ComServ.pas 장치에 선언되어 있음)로이 동작을 재정의하지 않는 한, EXE 파일은 이러한 방식으로 COM에 의해 시작되고 기본적으로 마지막 개체가 해제 될 때 종료됩니다.

+0

감사합니다 Stijn,하지만 CreateComObject 함수 또는 CoCreateInstance C++를 통해 실행합니다. – Angel

+0

내 질문을 더 정확하게 만들기 위해 예제를 추가했습니다 (원래 질문을 편집했습니다) – Angel