QA@IT
この質問・回答は、@ITの旧掲示板からインポートされたものです。

VS2005でdllのデバッグ方法について

はじめまして。.NET 2.0開発初心者です。

Binフォルダにて参照しているdllファイルのデバッグ方法がわかりません。

やりたいのは、dll内のソースをステップ実行することです。

環境は次のとおりです。

・Visual Studio Web Developer 2005 Express Edition
・ASP.NET 2.0
・.NET Framework 2.0

なお、dllそのものがReleaseモードなのかどうかも不明です。
その調べ方が分かっていません。

どうかよろしくお願いします。

質問者:INU

回答

INUさんの書き込み (2006-06-06 16:39) より:

Binフォルダにて参照しているdllファイルのデバッグ方法がわかりません。

DLL のままとなると、アタッチするしかないと思います。
そのアセンブリのプロジェクトがあるのであれば、プロジェクト参照を用いてデバッグします。

なお、dllそのものがReleaseモードなのかどうかも不明です。

その調べ方が分かっていません。

プログラム データベース (.pdb) ファイルがあるかどうかですね。

_________________C# と VB.NET の入門サイト
じゃんぬねっと日誌

投稿者:じゃんぬねっと

編集 履歴 (0)

やりたいのは、dll内のソースをステップ実行することです。

通常、.dll 内にソースファイルは含まれていません。

なお、dllそのものがReleaseモードなのかどうかも不明です。

ということは、.dll だけが手元にあって、.dll のソースファイルは持ってないってことですよね?

であれば、.dll のソースファイルにステップインすることはできません。

投稿者:渋木宏明(ひどり)

編集 履歴 (0)

ご返信ありがとうございます。

「dllへのアタッチ」の方法はずいぶん試行錯誤したことがあるのですが
結局分かっていません。
もしよろしければご教授いただけますでしょうか。

プロジェクト参照は、Express Editionではできない、と
いうのをMSDNでみたことがあります。
方法があるなら恐れ入りますが、教えていただけますか。

dllのソースファイルはございます。
しかし、それを自分のソリューションに含めたくないと思っています。

私がイメージしているのはEclipseで可能な、jarとソースを関連付ける「ソースへのアタッチ」と同等のことなのですが、これをVisual Studioで行うことはできないでしょうか?

以上です。
長々と返信を書きましてすみませんが、よろしくお願いします。

投稿者:INU

編集 履歴 (0)

素人の意見ですが。

プロジェクト参照は、Express Editionではできない、と
いうのをMSDNでみたことがあります。
それが本当ならばステップ実行は無理ではないかなと。

dllのソースファイルはございます。
そのソースにデバッグ用のConsole.WriteLine(スペルあってますか?)を
入れたり、もしくはログを出力させるとかでデバックできませんか?

投稿者:kernel

編集 履歴 (0)

Binフォルダにて参照しているdllファイルのデバッグ方法がわかりません。

やりたいのは、dll内のソースをステップ実行することです。

「デバッグをしたい」ではなくて、「ソースをステップ実行したい」という事ならば、ソースが必要です。

プロジェクト参照は、Express Editionではできない、と

いうのをMSDNでみたことがあります。

出来ますよ。
Visual Web Developer 2005 Express Edition の事ですか?それならば確かに出来ませんね。
他の Express Edition を使って、テストプログラムを書いて、そのソリューションに DLL のプロジェクトを追加すれば、ステップ実行できると思います。

_________________囚人のジレンマな日々

投稿者:囚人

編集 履歴 (0)

囚人さんの書き込み (2006-06-06 20:50) より:

Visual Web Developer 2005 Express Edition の事ですか?それならば確かに出来ませんね。

dllとpdbとソースがそろってればできますよ。
※プロジェクト参照はできませんが。

投稿者:なちゃ

編集 履歴 (0)

みなさん、ご返信ありがとうございます。

私の表現があいまいだったり情報が抜け落ちていたりしまして、
みなさんにストレスを与えてしまいました、申し訳ございません。

なちゃさんより教えていただいた件、
pdbに関する知識がないためさしあたってはこれを調べさせていただきたいと思います。

投稿者:INU

編集 履歴 (0)

INUさんの書き込み (2006-06-07 09:06) より:

pdbに関する知識がないためさしあたってはこれを調べさせていただきたいと思います。

pdb に関する知識など 'なくても' 良いです。
ただ、ファイルが 'ある' かどうかですよね。

# 私も、最初に明確に書いておけば良かったですね。

_________________C# と VB.NET の入門サイト
じゃんぬねっと日誌

投稿者:じゃんぬねっと

編集 履歴 (0)

ソースがある。
デバッグかリリースかはわからない。
プロジェクトには含めたくない。

ということですね。

 では、DLL を作るだけのプロジェクトを、別に作ります。それでデバッグモードでコンパイルすれば、必ず DLL と PDB が出来ます。
 出来た DLL と PDB を、対象のプロジェクトのディレクトリにコピーします。
 呼び出す方のプロジェクトを読み込みます。
 DLL を呼び出す箇所に、ブレーク ポイントを置き、実行します。
 ステップ実行します。

 これで、DLL 内に潜りませんか?
#####
というか、普通は DLL のプロジェクトに、それをテストするためのプロジェクトをくっつけて、ソリューションを構築します。

投稿者:Jitta

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。