Méthode IDebugControl ::SetInterrupt (dbgeng.h)

La méthode SetInterrupt inscrit une interruption d’utilisateur ou s’interrompt dans le débogueur.

Syntaxe

HRESULT SetInterrupt(
  [in] ULONG Flags
);

Paramètres

[in] Flags

Spécifie le type d’interruption à inscrire. Les indicateurs peuvent prendre l’une des valeurs répertoriées dans le tableau suivant.

Valeur Description
DEBUG_INTERRUPT_ACTIVE Si la cible est en cours d’exécution, le moteur demande une pause dans le débogueur. Cette demande peut expirer. Pour plus d’informations, consultez la section « Remarques ».

Sinon, lorsque la cible est suspendue, le moteur enregistre une interruption utilisateur.

DEBUG_INTERRUPT_PASSIVE Le moteur inscrit une interruption utilisateur.
DEBUG_INTERRUPT_EXIT Si un appel WaitForEvent est en cours d’exécution, le moteur le force à retourner. S’il existe des commandes de débogueur à l’origine de l’exécution dans la cible (par exemple, g (Go) et p (Étape) - le moteur les force à se terminer. Cela ne force pas une rupture dans le débogueur, de sorte que la cible peut ne pas être suspendue. Dans ce cas, l’appel WaitForEvent retourne E_PENDING.

Sinon, lorsque la cible est suspendue, inscrivez une interruption utilisateur.

Valeur retournée

Cette méthode peut également retourner des valeurs d’erreur. Pour plus d’informations, consultez Valeurs de retour.

Code de retour Description
S_OK
La méthode a réussi.

Remarques

Cette méthode peut être appelée à tout moment et à partir de n’importe quel thread. Une fois l’interruption enregistrée, cette méthode retourne immédiatement.

Si indicateurs est DEBUG_INTERRUPT_ACTIVE et que l’interruption expire, le moteur génère un événement d’exception synthétique. Cet événement sera envoyé à la méthode IDebugEventCallbacks ::Exception du rappel d’événement. La durée avant l’expiration de l’interruption peut être définie à l’aide de SetInterruptTimeout.

Configuration requise

Condition requise Valeur
Plateforme cible Desktop (Expérience utilisateur)
En-tête dbgeng.h (inclure Dbgeng.h)

Voir aussi

GetInterrupt

GetInterruptTimeout

IDebugControl

IDebugControl2

IDebugControl3

SetInterruptTimeout