Delphi 6 DirectShow DLL でブレークポイントがヒットしないという大きな問題がありました。IDE に DLL (AX) をロードし、Graph Edit をホスト プログラムとして実行すると、ブレークポイントがトリガーされません。FastMM4 DLL をプロジェクト ディレクトリに移動し、FastMM4 を完全に削除し、Debug DCU のオンとオフを切り替え、プロジェクト ディレクトリを消去し、DLL の登録解除と再登録を行いました。何も機能しませんでした。ホスト プログラムを実行するたびに、DLL がロードされ、イベント ビューアーに「デバッグ情報がありません」というメッセージが表示されました。次に、必死の Google 検索で、「リモート デバッグ シンボル」リンカー オプションを試すことを推奨する C++ Builder の投稿を見つけました。
Project -> Options -> Linker (Tab) -> Exe and DLL options (group box) -> "Include Remote Debug Symbols" (チェックあり)
突然、ブレークポイントがヒットし始めました。ここに私の質問があります:
1) なぜこれが機能したのですか? それはオプションのためですか、それともこのオプションが問題を修正する他のコンパイラ/リンカー操作をトリガーしたためですか? 将来この問題が再発したときに確実に修正できるように、知りたいです。
2) リモート デバッグ シンボルは、悪意のあるプログラマーが私のプログラムを詳細にトレースするために使用できるものですか? 言い換えれば、放置するとセキュリティリスクになるのでしょうか?