1

あいまいな主題で申し訳ありませんが、私はこの分野に不慣れで、より具体的なものを思いつくことができませんでした.

COM プラグインをロードするサードパーティ アプリケーション (VC++ 2005 で記述) をデバッグしています。私のプラグインは 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 をスローすると、アプリケーションはそのエラーを適切に報告します。

さらなるデバッグ戦略を推奨できる人はいますか?

4

0 に答える 0