私はgdbを使っていくつかの作業をしており、ドキュメントの参照が「シンボル」になっています。外部からの(エクスポートされた)可視変数の別の言葉ですか?デバッグやリンク時に、「シンボル」という言葉は何を指していますか?
おかげで、
スコット
私はgdbを使っていくつかの作業をしており、ドキュメントの参照が「シンボル」になっています。外部からの(エクスポートされた)可視変数の別の言葉ですか?デバッグやリンク時に、「シンボル」という言葉は何を指していますか?
おかげで、
スコット
'シンボル' 関数と変数名を含むシンボリック識別子です。
コンパイラ/リンカはビルド時にシンボルテーブルを作成し、デバッガがプレーンアドレスではなくソースレベルのシンボリック名をこれらのエンティティに提供するために使用します(したがって、あなたが来るかもしれない "シンボリックデバッガ"向こう側)。
記号は変数、関数、クラスの人間の名前です...記号なしでは、すべてがアドレスのデータであることがわかります。
例:シンボルと
:記号無し
call printf
call dword ptr 0x804480
アセンブラサンプル出力をありがとう。 –
デバッギングシンボル(おそらく "STABS"のようにシンボルテーブルに格納されているため)は、&を超えるデータを参照しています。たとえば、行番号/アドレスマッピング、タイプ情報、ローカル変数を使用し、 "静的"シンボル(リンカーは明らかに必要ではないが、明らかにデバッグにとって非常に重要である)を忘れることはありません。
もちろん、PEイメージは、とにかくインポート/エクスポートテーブルだけで、 "シンボルテーブル"を必要としません(通常は所有しています)。したがって、Windowsの文脈では、 "シンボル"と "デバッグシンボル"は、交換後に残されたシンボルをと参照するために互換的に使用される傾向があります。 MSのツールチェーンでは、これらは(ほとんど?)常に "pdb"ファイルに入ります。 (pdb-msを参照してください)
ありがとうクリフォード - 物事をクリア! –