英語版
このページの英語版を見る

dmd.tocvdebug

CV4 デバッグ形式でデバッグ情報を生成する。
Authors:

ソース tocvdebug.d

pure nothrow @nogc @safe uint visibilityToCVAttr(Visibility.Kind vis);
CV4 25ページ D visibility属性をcv属性に変換する。
uint cv_align(ubyte* p, uint n);
整列とパッド。
Returns:
整列カウント
void cv_udt(const char* id, uint typidx);
オブジェクトファイルにUDTレコードを書き込む。
Parameters:
char* id ユーザー定義型の名前
uint typidx 型インデックス
void toDebug(EnumDeclaration ed);
シンボリックデバッグ情報をCV形式で出力する。
struct CvFieldList;
フィールドリストレコード用ヘルパー構造体 LF_FIELDLIST/LF_FIELDLIST_V2
サイズがレコードの最大長を超える場合、最後のエントリはLF_INDEXエントリとなる。 は次のフィールドリストレコードを指す型インデックスを持つ LF_INDEX エントリである。
処理は2段階で行われる:
フェーズ1:フィールドリストのサイズを計算し、それを複数のレコードに分配する。
  • 事前に計算されたフィールド数/長さで CvFieldList を構成する。
  • 各フィールドに対して, count(length of field) を呼び出す。
フェーズ 2: 実際のデータを書き込む
  • alloc()をコールしてdebtypを割り当てる。
  • を割り当てる、
    • writePtr()をコールして、現在のdebtypへのポインタを取得する。
    • フィールド・データでメモリを埋める
    • written(フィールドの長さ)をコールする。
  • debtyp()をコールして型レコードを作成し、最初のレコードのインデックスを返す。
int cvMember(Dsymbol s, ubyte* p);
CV情報を*pに挿入する。
Returns:
書き込まれたバイト数、またはp==nullの場合に書き込まれるバイト数