2010-12-27 13 views
4

私のプロジェクトをDLLファイルにバインドするのが遅れており、DLLのメソッド呼び出しで例外がスローされています。このメソッドは別のプロジェクトでも使用されています(つまり、DLLへの初期バインドです)。これは美しく機能します。.NETでの外部DLLのデバッグ

この新しいプロジェクトのメソッド内でコードをデバッグして何が問題なのかを確認する方法はありますか?

私はこのDLLを作成し、明らかにすべてのソースコードを持っています。

両方のDLLファイルは、Visual Basic 2003および.NET 1.1を使用してコード化されています。

答えて

4

あなたのネイティブDLLはC++で書かれていると思いますが、.NETホストはC#で書かれていて、情報を提供していないのでVisual Studioを使用しました。

この場合、Visual StudioでDLLプロジェクトを開き、デバッグメニューのAttach to Processアクションを使用して、実行中のホストアプリケーションのインスタンスをデバッグすることができます。または、DLLプロジェクト内から実行するときにプロジェクトをstart the appに設定することもできます。

.NETホストアプリケーションからデバッグを開始した場合は、ブレークポイントを突き破って上陸することもできると思いますが、これを実行したことはありません。

+0

その情報が不足していると申し訳ありませんが、すでに質問が更新されています。言語はDLLと.NET 1.1を使用しています。 – PedroC88

+0

@ PedroC88あなたはあなたの答えが3倍以上あると思います! –

+0

はい、私はあなたのために明確化していました。ありがとうございました:) – PedroC88

2

F5を押すと、DLLをデバッグできます。EXEファイルを要求されます。実行可能ファイルを参照してデバッグを開始できます。

DLLファイルに他のライブラリまたはDLLファイルが使用されている場合は、すべての依存関係が見つかるパス内にある必要があります。たぶん、すべての依存関係をDLLファイルとともにコピーしていない可能性があります。

1

使用可能なロード済みDLLのデバッグシンボル(.pdbファイル)が実行中のプロセスにある場合、問題のDLLのプロジェクトを開き、実行中のプロセス(デバッグ - >プロセスにアタッチ)にアタッチできます。

+0

私はこのプロセスについてもっと教えていただけますか? – PedroC88

+0

@ PedroC88:あなたのプロジェクトがどのように整理され、構築されているかは、大きく異なります。この外部DLLは、実行中のアプリケーションを含むソリューションに含まれるプロジェクトですか?またはDLLが参照されているだけですか?後者の場合は、コード内のブレークポイントにヒットするために、アプリケーションの参照にDLLの「デバッグビルド」(PDBファイルをインクルードする)が必要です。 – David

+0

今、私は遅くバインディングしているDLLをデバッグしようとしています...(私はオブジェクトのインスタンスを作成するためにリフレクションを使用しています)。オブジェクト内のパラメータのないメソッドが私に例外を投げていますが、別のexeから呼び出されたこのメソッドは投げません。私はこのexternall DLLをexeからデバッグして、何がうまくいかないかを見たいと思っています。私はDLLのソースコードを持っており、両方ともVBと.NET 1.1で書かれています。 – PedroC88

関連する問題