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:
Przenieść zawartość rejestru ebp do T0.
Dodaj 4 do wartości w T0 do produkcji adresu, Pobierz wartość z tego adresu i przechowywania wartości rejestru eip.
Pobierz wartość z adresu, przechowywane w T0 i przechowywanie tej wartości rejestru ebp.
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.