2011-08-19 11 views
1

外部COM dll(C++で書かれています)で動作するASP.NET WebApplication(.NET 4.0/C#)があります。VS2010でCOM DLLをデバッグします。

古いASPプロジェクトと完全に機能する関数呼び出しでは、DLLコードにAccessViolationExceptionが発生します。

これをデバッグするには、私が書いた同僚のDLLのデバッグ版を要求しました。私は直接DLLプロジェクトやソースコードにアクセスすることはありません。

このデバッグDLLを使用して、エラーの発生場所を調べるにはどうすればよいですか?私は呼んでいる方法にステップする方法を見つけることができませんでした。出来ますか?

EDIT:私は.pdbファイルも持っています。なんらかの理由で、COMのdllがデバッグ - > Windows - >モジュールの概要に表示されません。私は本当に立ち往生しています。

+0

あなたの同僚に戻してください。ヒープの破損をデバッグすることは、心配するものではなく、.pdbは実際には役に立ちません。 –

答えて

4

アンマネージドコードのデバッグが有効になっている必要があります。 MSDNから

プロジェクトデザイナーのデバッグページで利用可能なプロパティをデバッグアンマネージコードは、ネイティブコードのデバッグがサポートされているかどうかを決定します。 COMオブジェクトを呼び出す場合、またはプロジェクトを呼び出すネイティブコードで記述されたカスタムプログラムを起動し、ネイティブコードをデバッグする必要がある場合は、このオプションを選択します。

ASPの場合、[Web]タブの[デバッガ]セクションで[ネイティブコード]をオンにする必要があります。

また、デバッグオプションでが無効になっているだけのマイコードデバッグが必要です。

+0

ASP.NET WebApplicationプロジェクトのプロジェクト設定に「デバッグ」タブはありません。または私は盲目です。 :) – magnattic

+0

updatet私の答え – sloth

0

おそらく、Ildasm.exeを使用してdllをリッピングして、欠落しているものを確認することができます。違反については、この問題と同様に聞こえます。このように静的なインポートを試してください。 MsCorlib.dllがサードパーティのDLLに問題がある可能性があります。

Unmanaged DLL causing AccessViolationException

依存関係を認識し、あなたには、いくつかのマーシャリングの問題を有することができることが必要です。コンソールアプリケーションでDllImportを使用して解決できるかどうかを確認することをお勧めします。 lucKのベスト!

関連する問題