Отладка сборки.NET, загруженной из приложения VC++ с использованием CCW
Я прошу прощения за смутный предмет, но я неопытный в этой области, и не мог придумать что-то более конкретное.
Я отлаживаю стороннее приложение (написанное на VC++ 2005), которое загружает плагины COM. Мой плагин был написан на C# 4.0. Когда вызывается определенный метод в моем плагине, приложение вылетает, но дает мне довольно бесполезный стек вызовов:
151f0d2d()
clr.dll!_COMToCLRDispatchHelper@28() + 0x28 bytes
clr.dll!BaseWrapper<Stub *,FunctionBase<Stub *,&DoNothing<Stub *>,&StubRelease<Stub>,2>,0,&CompareDefault<Stub *>,2>::~BaseWrapper<Stub *,FunctionBase<Stub *,&DoNothing<Stub *>,&StubRelease<Stub>,2>,0,&CompareDefault<Stub *>,2>() + 0x175b8b bytes
clr.dll!COMToCLRWorkerBody() + 0x80 bytes
clr.dll!COMToCLRWorkerDebuggerWrapper() + 0x34 bytes
clr.dll!_COMToCLRWorker@8() + 0x12b bytes
Все, что я думаю, это говорит мне о том, что есть проблема, связанная с CCW. Метод, который приложение должно вызывать в моем плагине в момент сбоя, также фактически не вызывается. Я изменил свой плагин, чтобы немедленно выдать NotImplementedException, и он не выброшен. Однако если я изменю другой метод в том же интерфейсе, чтобы вызвать исключение NotImplementedException, приложение действительно сообщит об этой ошибке должным образом.
Кто-нибудь может порекомендовать дальнейшие стратегии отладки?