Freigeben über


IDebugHostEvaluator3::EvaluateExtendedExpression-Methode (dbgmodel.h)

Die EvaluateExtendedExpression-Methode ähnelt der EvaluateExpression-Methode, mit der Ausnahme, dass sie zusätzliche nichtsprachliche Funktionen aktiviert, die ein bestimmter Debughost dem Ausdrucksauswerter hinzufügen möchte. Für Debuggingtools für Windows ermöglicht dies beispielsweise anonyme Typen, LINQ-Abfragen, Modulqualifizierer, Formatbezeichner und andere Nicht-C/C++-Funktionen.For Debugging Tools for Windows, for example, this enables anonym types, LINQ queries, module qualifizierer, format specifiers, and other non-C/C++functionality.

Es ist wichtig zu beachten, dass es keine Garantie dafür gibt, dass ein Ausdruck, der mit einem Host über EvaluateExtendedExpression ausgewertet wird, korrekt für einen anderen Host ausgewertet wird, der dieselbe Sprache debugt. Erweiterungen im Ausdrucksauswertung sind die Purview eines bestimmten Hosts. Es wird dringend empfohlen, dass Clients die EvaluateExpression-Methode anstelle der EvaluateExtendedExpression-Methode aus diesem genauen Grund verwenden. Die Verwendung dieser Methode reduziert die Portabilität des Aufrufers.

Syntax

HRESULT EvaluateExtendedExpression(
  IDebugHostContext           *context,
  PCWSTR                      expression,
  IModelObject                *bindingContext,
  _COM_Errorptr_ IModelObject **result,
  IKeyStore                   **metadata
);

Parameter

context

Der Hostkontext, in dem die Ausdrucksauswertung auftritt. Wenn es z. B. Speicherlesevorgänge des Ziels aufgrund von Zeigerentleitungen gibt, wird der Adressraum, in dem diese Speicherlesevorgänge vorgenommen werden, durch dieses Argument angegeben.

expression

Der auszuwertende Ausdruck. Dies kann private Hosterweiterungen für die Sprachsyntax verwenden.

bindingContext

Der Bindungskontext, in dem Symbolnamen (Variable) nachschlagen werden. Bei C++ entspricht dies semantisch dem Zeigerwert.

result

Der resultierende Wert der Ausdrucksauswertung wird hier zurückgegeben.

metadata

Alle metadaten, die dem Ausdruck oder ergebnis zugeordnet sind, werden hier zurückgegeben.

Rückgabewert

Diese Methode gibt HRESULT zurück, das Erfolg oder Fehler angibt.

Bemerkungen

Codebeispiel

ComPtr<IDebugHost> spHost; /* get the host */

ComPtr<IDebugHostEvaluator2> 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.
    }
}

Anforderungen

Anforderung Wert
Header- dbgmodel.h

Siehe auch

IDebugHostEvaluator3-Schnittstelle