Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Macht die Eigenschaften eines Stapelrahmens verfügbar.
Syntax
IDiaStackFrame : IUnknown
Methoden in Vtable-Reihenfolge
Die folgenden Methoden werden von dieser Schnittstelle unterstützt:
Methode | BESCHREIBUNG |
---|---|
IDiaStackFrame::get_allocatesBasePointer | Ruft ein Flag ab, das angibt, dass der Basiszeiger Code in diesem Adressbereich zugeordnet ist. Diese Methode ist als veraltet markiert. |
IDiaStackFrame::get_base | Ruft die Adressbasis des Rahmens ab. |
IDiaStackFrame::get_cplusplusExceptionHandling | Ruft ein Flag ab, das angibt, dass die C++-Ausnahmebehandlung aktiv ist. |
IDiaStackFrame::get_functionStart | Ruft ein Flag ab, das angibt, dass der Block den Einstiegspunkt einer Funktion enthält. |
IDiaStackFrame::get_lengthLocals | Ruft die Anzahl der Bytes der lokalen Variablen ab, die in den Stapel gepusht werden. |
IDiaStackFrame::get_lengthParams | Ruft die Anzahl der Bytes der Parameter ab, die in den Stapel gepusht werden. |
IDiaStackFrame::get_lengthProlog | Ruft die Anzahl von Bytes des Prologcodes im Block ab |
IDiaStackFrame::get_lengthSavedRegisters | Ruft die Anzahl der Bytes der gespeicherten Register ab, die in den Stapel gepusht werden. |
IDiaStackFrame::get_localsBase | Ruft die Adressbasis der lokalen Variablen ab. |
IDiaStackFrame::get_maxStack | Ruft die maximale Anzahl von Bytes ab, die in den Stapel im Rahmen gepusht werden. |
IDiaStackFrame::get_rawLVarInstanceValue | Ruft den Wert der angegebenen lokalen Variable als unformatierte Bytes ab. |
IDiaStackFrame::get_registerValue | Ruft den Wert des angegebenen Registers ab. |
IDiaStackFrame::get_returnAddress | Ruft die Rückgabeadresse des Rahmens ab. |
IDiaStackFrame::get_size | Ruft die Größe des Rahmens in Byte ab. |
IDiaStackFrame::get_systemExceptionHandling | Ruft ein Flag ab, das angibt, dass die Systemausnahmebehandlung aktiv ist. |
IDiaStackFrame::get_type | Ruft den Rahmentyp ab. |
Hinweise
Ein Stapelrahmen ist eine Abstraktion eines Funktionsaufrufs während seiner Ausführung.
Hinweise für Aufrufer
Sie rufen diese Schnittstelle ab, indem Sie die IDiaEnumStackFrames::Next-Methode aufrufen. Ein Beispiel zum Abrufen der IDiaStackFrame
-Schnittstelle finden Sie unter der IDiaEnumStackFrames-Schnittstelle.
Beispiel
In diesem Beispiel werden verschiedene Attribute eines Stapelrahmens angezeigt.
void PrintStackFrame(IDiaStackFrame* pFrame)
{
if (pFrame != NULL)
{
ULONGLONG bottom = 0;
ULONGLONG top = 0;
if (pFrame->get_base(&bottom) == S_OK &&
pFrame->get_registerValue( CV_REG_ESP, &top ) == S_OK )
{
printf("range = 0x%08I64x - 0x%08I64x\n", bottom, top);
}
ULONGLONG returnAddress = 0;
if (pFrame->get_returnAddress(&returnAddress) == S_OK)
{
printf("return address = 0x%08I64x\n", returnAddress);
}
DWORD lengthFrame = 0;
DWORD lengthLocals = 0;
DWORD lengthParams = 0;
DWORD lengthProlog = 0;
DWORD lengthSavedRegs = 0;
if (pFrame->get_size(&lengthFrame) == S_OK &&
pFrame->get_lengthLocals(&lengthLocals) == S_OK &&
pFrame->get_lengthParams(&lengthParams) == S_OK &&
pFrame->get_lengthProlog(&lengthProlog) == S_OK &&
pFrame->get_lengthSavedRegisters(&lengthSavedRegs) == S_OK)
{
printf("stack frame size = 0x%08lx bytes\n", lengthFrame);
printf("length of locals = 0x%08lx bytes\n", lengthLocals);
printf("length of parameters = 0x%08lx bytes\n", lengthParams);
printf("length of prolog = 0x%08lx bytes\n", lengthProlog);
printf("length of saved registers = 0x%08lx bytes\n", lengthSavedRegs);
}
}
}
Requirements (Anforderungen)
Header: Dia2.h
Bibliothek: diaguids.lib
DLL: msdia80.dll