Udostępnij za pośrednictwem


IDiaFrameData::get_program

Pobiera ciąg programu, która jest używana do obliczania rejestru ustawiona przed wywołaniem funkcji bieżącego.

HRESULT get_program ( 
   BSTR* pRetVal
);

Parametry

  • pRetVal
    [out] Zwraca ciąg programu.

Wartość zwracana

Jeśli się powiedzie, zwraca S_OK.Zwraca S_FALSE , jeśli ta właściwość nie jest obsługiwana.W przeciwnym razie zwraca kod błędu.

Uwagi

Ciąg program jest sekwencja makra jest interpretowana w celu ustalenia prologu.Na przykład, ramka typowe stosu może użyć ciągu program "$T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =".Format jest Polski odwrotnej notacji, gdy podmioty gospodarcze wykonaj operandy.T0reprezentuje zmiennej tymczasowej na stosie.W tym przykładzie wykonuje następujące kroki:

  1. Przenieść zawartość rejestru ebp do T0.

  2. Dodaj 4 do wartości w T0 do produkcji adresu, Pobierz wartość z tego adresu i przechowywania wartości rejestru eip.

  3. Pobierz wartość z adresu, przechowywane w T0 i przechowywanie tej wartości rejestru ebp.

  4. Dodaj 8 do wartości w T0 i przechowywanie tej wartości rejestru esp.

Zauważ, że ciąg programu określonego Procesora i Konwencja wywoływania dla funkcji, reprezentowane przez bieżącą ramką stosu.

Zobacz też

Informacje

IDiaFrameData