IDiaSession::findLinesByAddr

Mengambil baris dalam kompilasi tertentu yang berisi alamat tertentu.

Sintaks

HRESULT findLinesByAddr (
    DWORD                 seg,
    DWORD                 offset,
    DWORD                 length,
    IDiaEnumLineNumbers** ppResult
);

Parameter

seg

[in] Menentukan komponen bagian dari alamat tertentu.

offset

[in] Menentukan komponen offset dari alamat tertentu.

length

[in] Menentukan jumlah byte rentang alamat yang akan dicakup dengan kueri ini.

ppResult

[out] Mengembalikan IDiaEnumLineNumbers objek yang berisi daftar semua nomor baris yang mencakup rentang alamat yang ditentukan.

Tampilkan Nilai

Jika berhasil, mengembalikan S_OK; jika tidak, mengembalikan kode galat.

Contoh

Contoh ini menunjukkan fungsi yang memperoleh semua nomor baris yang terdapat dalam fungsi menggunakan alamat dan panjang fungsi.

IDiaEnumLineNumbers* GetLineNumbersByAddr(IDiaSymbol *pFunc,
                                          IDiaSession *pSession)
{
    IDiaEnumLineNumbers* pEnum = NULL;
    DWORD                seg;
    DWORD                offset;
    ULONGLONG            length;

    if (pFunc->get_addressSection ( &seg ) == S_OK &&
        pFunc->get_addressOffset ( &offset ) == S_OK)
    {
        pFunc->get_length ( &length );
        pSession->findLinesByAddr( seg, offset, static_cast<DWORD>( length ), &pEnum );
    }
    return(pEnum);
}

Lihat juga