DLLのデバッグ方法

解決


エイト  2004-10-08 03:39:14  No: 54662  IP: [192.*.*.*]

はじめて投稿させて頂きます。
メインのEXEからDLLの中の処理している部分をデバッグしたいのですが可能でしょうか?
DLLのデバッグ方法を教えて下さい。
よろしくお願い致します。

編集    削除
YuO  2004-10-08 04:49:01  No: 54663  IP: [192.*.*.*]

可能ですが……。
単純に,pdbをコピーし忘れたとか,
Releaseモードでコンパイルしたとか,そういう問題では?

編集    削除
KING・王  2004-10-08 16:53:45  No: 54664  IP: [192.*.*.*]

次のような方法で、私はDLLのデバッグを行っています。

(1)ワークスペースを作成する。
(2)作成したワークスペースにEXEのプロジェクトとDLLのプロジェクトを挿入する。
(3)ワークスペースに出力ファイル用フォルダ(例."dbg")を作成する。
(4)EXEとDLLのそれぞれのプロジェクトの設定で、リンクタブの出力ファイル名を変更し、
先の(3)で作成したフォルダにそれぞれのEXE及びDLLが出力されるようにする。
(5)EXEとDLLのそれぞれをdebugモードでビルドする。
(6)EXE側のプロジェクトをアクティブにし、デバッグを行うと、普通にDLL内もデバッグ(ステップ実行等)行えます。

DLLとEXEのリンクに、libをインポートするなら、ワークスペース内にlib用のフォルダ(例."lib")を作成して、
DLL側のプロジェクトオプションに「 /implib:"xxx.lib" 」(xxx.libは出力するlib名)
と加え、EXE側で相対パスを用いて、そのlibを指定すると便利だと思います。
#あと、共通ヘッダファイルなどが有る場合も、"include"というようなフォルダを作成し、
#そこにファイルをまとめるようにすると、両者で別のファイルを参照することがなく、よいかもしれません。

編集    削除
エイト  2004-10-08 19:01:42  No: 54665  IP: [192.*.*.*]

皆様ありがとうございます。
DLLとEXEは同じフォルダで同じワークスペースにあるのですが、F11を押してもDLLの処理の中に入って行きません・・・
設定の問題でしょうか?

編集    削除
シャノン  2004-10-08 21:08:10  No: 54666  IP: [192.*.*.*]

プロジェクトの設定でデバッグコマンドに指定されている EXE と、デバッグ対象の DLL と、その DLL の PDB が同じフォルダにあることを確認してください。
同じワークスペースにあるかどうかはこの際重要ではありませんが、同じワークスペースにあっても同じフォルダにあるとは限りませんから。

編集    削除
けいし  2005-04-13 02:40:48  No: 54667  IP: [192.*.*.*]

この件、申し訳ありませんが、もう少し詳しく教えてください。

2004/10/08(金) 10:01:42より
私もEXEからステップ実行を行い、DLLの部分のソースに処理が移りませんでした。

2004/10/08(金) 12:08:10より
プロジェクトの設定で、PDBを同じフォルダにする場合、プロジェクト>設定で、ダイアログがでます。
どの辺を操作すればいいでしょうか?

編集    削除
KING・王  2005-04-13 02:57:47  No: 54668  IP: [192.*.*.*]

>プロジェクトの設定で、PDBを同じフォルダにする場合、プロジェクト>設定で、ダイアログがでます。
>どの辺を操作すればいいでしょうか?

プロジェクトの設定などは関係なく、単純に同じフォルダ内にあればよかったと思います。
(間違っていたらすみません。)

と、いうわけで、エクスプローラーなどでコピー(移動)して下さい。

編集    削除
けいし  2005-04-15 23:24:44  No: 54669  IP: [192.*.*.*]

解決

編集    削除