2009-02-27 345 views
6

私はVisual C++で作業する開発者ですが、私のプロジェクトにはDelphiのコンポーネントがいくつかあります。いくつかの問題を解決するためにDelphiコンポーネントをデバッグする必要があります。DelphiでDLLファイルをデバッグする方法

デバッグ時にDLLファイルを生成してから、Delphiでデバッグを開始するために必要なことは何ですか?

答えて

20

あなたはこれを行うでしょう:

プロジェクト|オプション|コンパイラ|デバッグ|デバッグ情報(チェック)

次に実行|パラメータ|ホストアプリケーション]を選択し、exeの名前を入力します。

DLLコードにいくつかのブレークポイントを追加し、[実行]をクリックします。あなたのexeがロードされ、DLL部品をDelphi IDEでデバッグすることができます。

exeが既に実行されている場合は、[実行]をクリックします。

を処理するためにアタッチ - 私はこれをテストし、私も

私が取得することができたのDelphi 7のプロジェクトオプションのリンカページの「リモートデバッグシンボルを含める」をチェックするために必要なことがわかってきました実行を使用してヒットするブレークポイント|パラメータと実行|プロセスメソッドにアタッチします。私が作成したテストDLLには、単一のstdcall関数があり、Visual C++コンソールアプリケーションによって動的にロードされました。

+0

@Chapel。 Attach to processを使用してDLLをデバッグすることはできますか? –

+0

私は同じことをしましたが、ブレークポイントは当たっていません。私は、コードとデバッガの間の一致が確立していないと思います。 PDBの概念(vc 6に存在する)はそこにはありません。 – coolcake

+1

リモートデバッグシンボルは必要ありません – dummzeuch

4

これは非常に頻繁に(Delphiを使用して)使用します。

は、必ず:

  1. すべてのプロジェクト(DLLファイル(複数可))上のすべてのデバッグオプションを有効にします。最適化を無効にします。
  2. ホストアプリケーションを正しいEXEファイルに設定してください。
  3. DLLファイルをビルドします。

dllとexeの両方にブレークポイントを設定できるようになりました。そして、IDEからDLLファイルを実行します。 EXEファイルを起動し、要求されたブレークポイントで停止します。

DLLファイルが動的にリンクされている場合(アンロードされている場合は青い点が消える)、この機能は動作します。

0

ガメカットが提案した方法は、これまで私が使ったことです。

私はDLLプロジェクトを持っていますが、私も "テストベンチ"プロジェクトを作成します。 "テストベンチ"プロジェクトには、DLLで通常使用されるコードを直接実行できる形式があります。

関連する問題