IDiaFrameData::get_program
Recupera a cadeia de caracteres do programa usada para calcular o conjunto de registros antes da chamada para a função atual.
Sintaxe
HRESULT get_program (
BSTR* pRetVal
);
Parâmetros
pRetVal
[out] Retorna a cadeia de caracteres do programa.
Valor Retornado
Se for bem-sucedido, retornará S_OK
. Retornará S_FALSE
se não houver suporte para essa propriedade. Caso contrário, retornará um código de erro.
Comentários
A cadeia de caracteres do programa é uma sequência de macros que é interpretada para estabelecer o prólogo. Por exemplo, um quadro de pilha típico pode usar a cadeia de caracteres do programa "$T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + ="
. O formato é notação polonesa reversa, em que os operadores seguem os operandos. T0
representa uma variável temporária na pilha. Este exemplo executa as seguintes etapas:
Mova o conteúdo do registro
ebp
paraT0
.Adicione
4
ao valor emT0
para produzir um endereço, obter o valor desse endereço e armazenar o valor no registroeip
.Obtenha o valor do endereço armazenado em
T0
e armazene esse valor no registroebp
.Adicione
8
ao valor emT0
e armazene esse valor no registroesp
.Observe que a cadeia de caracteres do programa é específica para a CPU e para a convenção de chamada configurada para a função representada pelo quadro de pilha atual.