Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Il metodo EvaluateExtendedExpression è simile al metodo EvaluateExpression, ad eccezione del fatto che riattiva funzionalità aggiuntive non in linguaggio che un determinato host di debug sceglie di aggiungere al relativo analizzatore di espressioni. Per Gli strumenti di debug per Windows, ad esempio, abilita tipi anonimi, query LINQ, qualificatori di modulo, identificatori di formato e altre funzionalità non C/C++.
È importante notare che non esiste alcuna garanzia che un'espressione che valuta rispetto a un host tramite EvaluateExtendedExpression valuterà correttamente rispetto a un altro host che esegue il debug dello stesso linguaggio. Le estensioni nell'analizzatore di espressioni sono la visualizzazione di un determinato host. È consigliabile che i client usino il metodo EvaluateExpression anziché il metodo EvaluateExtendedExpression per questo motivo esatto. L'uso di questo metodo riduce la portabilità del chiamante.
Sintassi
HRESULT EvaluateExtendedExpression(
IDebugHostContext *context,
PCWSTR expression,
IModelObject *bindingContext,
_COM_Errorptr_ IModelObject **result,
IKeyStore **metadata
);
Parametri
context
Contesto host in cui viene eseguita la valutazione dell'espressione. Se sono presenti, ad esempio, letture di memoria della destinazione a causa di dereferenziazioni del puntatore, lo spazio degli indirizzi in cui vengono eseguite tali letture di memoria viene fornito da questo argomento.
expression
Espressione da valutare. Ciò può usare estensioni private host per la sintassi del linguaggio.
bindingContext
Contesto di associazione in cui verranno cercati i nomi di simbolo (variabile). Per C++, questo valore è semanticamente equivalente al valore del puntatore.
result
Il valore risultante della valutazione dell'espressione verrà restituito qui.
metadata
Tutti i metadati associati all'espressione o al risultato vengono restituiti qui.
Valore restituito
Questo metodo restituisce HRESULT che indica l'esito positivo o negativo.
Osservazioni
esempio di codice
ComPtr<IDebugHost> spHost; /* get the host */
ComPtr<IDebugHostEvaluator> spEval;
if (SUCCEEDED(spHost.As(&spEval)))
{
ComPtr<IModelObject> spNotepadProcesses;
// We can use any syntax that's private to the host (not only
// language syntax). This is not necessarily portable from host to host
if (SUCCEEDED(spEval->EvaluateExtendedExpression(
USE_CURRENT_HOST_CONTEXT,
L"@$cursession->Processes.Where(p => p.Name == \"notepad.exe\")",
nullptr,
&spNotepadProcesses,
nullptr)))
{
// spNotepadProcesses will contain a collection of every process
// named (exactly) "notepad.exe". Such can be iterated with IIterableConcept.
}
}
Fabbisogno
Requisito | Valore |
---|---|
intestazione | dbgmodel.h |