Freigeben über


IDiaFrameData::get_program

Ruft die Programmzeichenfolge ab, die zum Berechnen des Registersatzes vor dem Aufruf der aktuellen Funktion verwendet wird.

Syntax

HRESULT get_program ( 
   BSTR* pRetVal
);

Parameter

pRetVal

[out] Gibt die Programmzeichenfolge zurück.

Rückgabewert

Gibt bei Erfolg S_OK zurück. Gibt S_FALSE zurück, wenn die Eigenschaft nicht unterstützt wird. Andernfalls wird ein Fehlercode zurückgegeben.

Bemerkungen

Die Programmzeichenfolge ist eine Sequenz von Makros, die interpretiert wird, um den Prolog zu erstellen. Beispielsweise kann ein typischer Stapelrahmen die Programmzeichenfolge "$T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =" verwenden. Das Format ist die umgekehrte polnische Notation, bei der die Operatoren auf die Operanden folgen. T0 stellt eine temporäre Variable im Stapel dar. In diesem Beispiel werden die folgenden Schritte ausgeführt:

  1. Verschieben Sie den Inhalt des Registers ebp in T0.

  2. Fügen Sie 4 dem Wert in T0 hinzu, um eine Adresse zu erzeugen, rufen Sie den Wert von dieser Adresse ab, und speichern Sie den Wert im Register eip.

  3. Rufen Sie den Wert von der in T0 gespeicherten Adresse ab, und speichern Sie diesen Wert im Register ebp.

  4. Fügen Sie 8 dem Wert in T0 hinzu, und speichern Sie diesen Wert im Register esp.

    Beachten Sie, dass die Programmzeichenfolge spezifisch für die CPU und die Aufrufkonvention ist, die für die Funktion eingerichtet ist, die durch den aktuellen Stapelrahmen dargestellt wird.

Weitere Informationen