Memory Leak: .NET -> COM

Apr 30, 2005
81
0
66
Hi,

I need some help with a memory leak between a C++ COM exe and a C# .NET dll. The .NET dll uses hand-crafted interface definitions ( see below ) to match those of the IDL in the COM exe ( uncertain if that is relevant but would be difficult to change at this point ).

Both Foo() and Bar() work in so far as the data gets marshaled between the two binaries but they both result leaks. The .NET dll invokes Bar() using Marshal.AllocCoTaskMem(), Marshal.Copy(), and Marshal.FreeCoTaskMem() to provide the IntPtr.

Additional testing has shown that the leak still occurs even if 0 bytes of data ( empty array, IntPtr.Zero ) are provided as parameters. Any ideas?


Sample interface defined in COM exe:

[ object
, uuid( xxx )
, pointer_default( unique )
]
interface ITest : IUnknown
{
HRESULT Foo( [ in ] ULONG size, [ in, size_is( size ) ] BYTE *pData );
HRESULT Bar( [ in ] ULONG size, [ in, size_is( size ) ] BYTE *pData );
};


Sample interface defined in .NET dll:


[ ComVisible( true ) ]
[ Guid( "xxx" ) ]
[ InterfaceType( ComInterfaceType.InterfaceIsIUnknown ) ]
public interface ITest
{
void Foo( UInt32 size, [ MarshalAs( UnmanagedType.LPArray, SizeParamIndex=0 ) ] Byte[] data );
void Bar( UInt32 size, IntPtr pData );
}


Cheers!
 

SearchMaster

Diamond Member
Jun 6, 2002
7,791
114
106
Are you sure the leak isn't in the COM object itself? Can you invoke it with VBScript or something simple like that and test the memory impact?
 
Apr 30, 2005
81
0
66
Quite certain it isn't in the COM object as a mock COM dll can be used in place of the .NET dll without any memory leak. I've tried using a trial version of .Net Memory Profiler 3.1 and it shows the unmanaged memory increasing but doesn't provide any specific details ( as far as I can tell ).

 
sale-70-410-exam    | Exam-200-125-pdf    | we-sale-70-410-exam    | hot-sale-70-410-exam    | Latest-exam-700-603-Dumps    | Dumps-98-363-exams-date    | Certs-200-125-date    | Dumps-300-075-exams-date    | hot-sale-book-C8010-726-book    | Hot-Sale-200-310-Exam    | Exam-Description-200-310-dumps?    | hot-sale-book-200-125-book    | Latest-Updated-300-209-Exam    | Dumps-210-260-exams-date    | Download-200-125-Exam-PDF    | Exam-Description-300-101-dumps    | Certs-300-101-date    | Hot-Sale-300-075-Exam    | Latest-exam-200-125-Dumps    | Exam-Description-200-125-dumps    | Latest-Updated-300-075-Exam    | hot-sale-book-210-260-book    | Dumps-200-901-exams-date    | Certs-200-901-date    | Latest-exam-1Z0-062-Dumps    | Hot-Sale-1Z0-062-Exam    | Certs-CSSLP-date    | 100%-Pass-70-383-Exams    | Latest-JN0-360-real-exam-questions    | 100%-Pass-4A0-100-Real-Exam-Questions    | Dumps-300-135-exams-date    | Passed-200-105-Tech-Exams    | Latest-Updated-200-310-Exam    | Download-300-070-Exam-PDF    | Hot-Sale-JN0-360-Exam    | 100%-Pass-JN0-360-Exams    | 100%-Pass-JN0-360-Real-Exam-Questions    | Dumps-JN0-360-exams-date    | Exam-Description-1Z0-876-dumps    | Latest-exam-1Z0-876-Dumps    | Dumps-HPE0-Y53-exams-date    | 2017-Latest-HPE0-Y53-Exam    | 100%-Pass-HPE0-Y53-Real-Exam-Questions    | Pass-4A0-100-Exam    | Latest-4A0-100-Questions    | Dumps-98-365-exams-date    | 2017-Latest-98-365-Exam    | 100%-Pass-VCS-254-Exams    | 2017-Latest-VCS-273-Exam    | Dumps-200-355-exams-date    | 2017-Latest-300-320-Exam    | Pass-300-101-Exam    | 100%-Pass-300-115-Exams    |
http://www.portvapes.co.uk/    | http://www.portvapes.co.uk/    |