シンボル

シンボル とは、モジュールに現れる、ソース ファイルからのデータまたはコードの名前付き単位のことです。 シンボルに関する情報には、名前、タイプ (該当する場合)、シンボルが保存されているアドレスまたはレジスタ、および親シンボルまたは子シンボルが含まれます。 シンボルの例としては、変数 (ローカルおよびグローバル)、関数、モジュールへのエントリ ポイントなどがあります。

シンボル情報は、ターゲット内のデータとコードを解釈するためにエンジンによって使用されます。 この情報を使用して、エンジンはメモリ内の名前または場所でシンボルを検索し、シンボルの説明を提供できます。

エンジンは、ローカル ファイル システム上にあるシンボル ファイル、またはシンボル サーバーから読み込まれたシンボル ファイルからシンボルに関する情報を取得します。 シンボル サーバーを使用する場合、エンジンはターゲット内のモジュールと一致するように、シンボル ファイルの正しいバージョンを自動的に使用します。 シンボル ファイルは、対応するモジュールが読み込まれるたびに読み込むことができます。または、必要に応じて読み込むことができます。

注: 多くの場合、コンパイラを最適化すると、シンボル ファイルに正確な情報が含まれません。 これにより、変数の場所または有効期間が正しく記述されていない可能性があるため、エンジンが変数の値を誤って解釈し、エンジンが間違ったメモリを見つけたり、変数の値が死んでいるとき (またはその逆の場合) に生きていると考えたりする可能性があります。 最適化コンパイラで実行順序を変更したり、関数を複数の部分に分割したりすることもできます。 最適な結果は、通常、最適化されていないコードをデバッグするときに取得されます。

追加情報

シンボルの使用の詳細については、「シンボルの使用 」を参照してください。 シンボル ファイルとシンボル サーバーの使用の概要については、このドキュメントの「デバッガー」セクションの「シンボル 」を参照 してください。