Delen via


Client-objecten

Bijna alle interactie met de foutopsporingsprogramma-engine vindt plaats via clientobjecten, ook wel clients genoemd. Elke client levert een implementatie van de bovenliggende engine-interfaces. Elke interface biedt een andere set methoden, die kunnen worden gebruikt om te communiceren met de engine en, via de engine, de doelen. Een exemplaar van de engine kan veel clients hebben, elk met een eigen status.

Primaire clients

Een primaire client is een client die lid is geworden van de huidige foutopsporingssessie. Wanneer een nieuw clientobject wordt gemaakt, is het in eerste instantie geen primaire client. Een client wordt een primaire client wanneer deze wordt gebruikt om een doel te verkrijgen (bijvoorbeeld door CreateProcess2 aan te roepen) of is verbonden met de foutopsporingssessie met behulp van ConnectSession. De foutopsporingsprogrammaopdracht .clients geeft alleen de primaire clients weer.

Callback-objecten

Callback-objecten kunnen worden geregistreerd bij elke client. Er zijn drie soorten callback-objecten:

  1. Callback-objecten voor invoer (of invoer-callbacks): de engine roept invoer-callbacks aan om invoer te verkrijgen. Een debugger met een consolevenster kan bijvoorbeeld een invoer-callback registreren om de engine invoer van de gebruiker te geven, of een debugger kan een invoer-callback registreren om de engine invoer uit een bestand te geven.

  2. Output Callback-objecten (of callbacks voor uitvoer): de engine roept callbacks voor uitvoer aan om uitvoer weer te geven. Een foutopsporingsprogramma met een consolevenster kan bijvoorbeeld een callback voor uitvoer registreren om de uitvoer van het foutopsporingsprogramma aan de gebruiker te presenteren, of een foutopsporingsprogramma kan een callback voor uitvoer registreren om de uitvoer naar een logboekbestand te verzenden.

  3. Gebeurtenis-callback-objecten (of gebeurtenis-callbacks): de engine roept gebeurtenis-callbacks aan wanneer een gebeurtenis plaatsvindt in een doel (of wanneer er een verandering optreedt in de status van de engine). Een extensiebibliotheek voor foutopsporingsprogramma's kan bijvoorbeeld een gebeurtenisaanroep registreren om bepaalde gebeurtenissen te bewaken of geautomatiseerde acties uit te voeren wanneer een bepaalde gebeurtenis plaatsvindt.

Externe foutopsporing

Clientobjecten faciliteren communicatie met externe exemplaren van de hostengine. De functie DebugConnect maakt een clientobject dat is verbonden met een extern engine-exemplaar; methoden die op deze client worden aangeroepen, worden uitgevoerd door de externe engine en callback-objecten die lokaal zijn geregistreerd bij de client, worden aangeroepen wanneer de externe engine callback-aanroepen uitvoert.

aanvullende informatie

Zie Callback-objecten gebruiken voor meer informatie over het maken en gebruiken van clientobjecten. Zie Callback-objecten gebruiken voor meer informatie over het registreren van callback-objecten.