2009-12-01 5 views
1

FastMM을 JCL 디버그 정보와 함께 사용하여 응용 프로그램에서 메모리 누수를 추적합니다. 그러나 나는 델파이에서 컴파일 된 DLL 인 dll과 메인 애플리케이션 모두 공통 런타임 패키지를 사용하는 플러그인을 가지고있다. 이제 응용 프로그램을 종료 할 때 텍스트 파일에 메모리 누수 보고서가 생성되지만 기본 응용 프로그램 인에 대해서만 스택 추적 이 포함되어 있습니다. plugin dll에서 메모리 누수가 발생하면 Stack Trace가 LoadPlugins로 연결됩니다. 주요 응용 프로그램에서 절차! 물론 내 플러그인에는 .dll 바이너리에 삽입 된 JCL 디버그 데이터가 들어 있습니다.런타임 패키지로 컴파일 된 동적으로로드 된 DLL의 누수에 대한 FastMM 스택 추적 메모리

어디에 문제가 있습니까? 런타임 패키지 사용 때문입니까? 일부 스위치 (정의)를 사용/사용 중지하는 것을 잊었습니까? 미리 감사드립니다.

답변

0

Pierre, FastMM의 저자가 저의 질문에 대답했습니다. 누구나 관심이있는 경우 스택 추적 & 객체 유형에 액세스 할 수 있도록 종료시 플러그인을 언로드하지 않는 것이 해결책입니다. 이것은 그러나 (FastMM이 2 번 정도 언로드 된 이후로) 종료시에 많은 버그를 발생 시켰고, 결국에는 FastMM을 공유 패키지로 옮겨야했습니다 ...

+0

패키지와 함께 FastMM을 사용할 때 항상 borlandmm.dll 옵션을 사용하는 것이 좋습니다. –

2

FastMM4Options.inc에서 FullDebugMode 옵션과 메모리 관리자 공유 옵션 (ShareMM 및 이후)을 설정 했습니까? 또한 디버그 정보로 컴파일 했습니까?

+0

했습니다. 그것은 디버그 정보로 컴파일되며, 메시지 콘솔에는 그에 관한 정보가 있습니다. – migajek

관련 문제