Отладка сборки.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, приложение действительно сообщит об этой ошибке должным образом.

Кто-нибудь может порекомендовать дальнейшие стратегии отладки?

0 ответов

Другие вопросы по тегам