Dela via


Interagera med motorn

Kommandon och uttryck

API:et för felsökningsmotorn innehåller metoder för att köra kommandon och utvärdera uttryck, som de som anges i WinDbgs kommandofönster för felsökningsprogrammet. Om du vill köra ett felsökningskommando använder du Kör. Om du vill köra alla kommandon i en fil använder du ExecuteCommandFile.

Metoden Evaluate utvärderar uttryck med hjälp av syntaxen C++ eller MASM. Syntaxen som används av felsökningsmotorn för att utvärdera uttryck – till exempel i metoden Utvärdera – ges av GetExpressionSyntax och kan ändras med SetExpressionSyntaxByName och SetExpressionSyntax. Antalet olika syntaxer som identifieras av felsökningsprogrammet returneras av GetNumberExpressionSyntaxes och deras namn returneras av GetExpressionSyntaxNames.

Vilken typ av värde som returneras av Utvärdera bestäms av de symboler och konstanter som används i strängen som utvärderades. Värdet finns i en DEBUG_VALUE struktur och kan omvandlas till olika typer med hjälp av CoerceValue och CoerceValues.

Aliasnamn

Alias är teckensträngar som automatiskt ersätts med andra teckensträngar när de används i felsökningskommandon och uttryck. En översikt över alias finns i Använda alias. Felsökningsmotorn har flera klasser av alias.

Alias med fast namn indexeras efter nummer och har namnen $u 0, $u 1, ..., $u 9. Värdena för dessa alias kan anges med metoden SetTextMacro och kan hämtas med metoden GetTextMacro .

De automatiska aliasen och användarnamnsaliasen kan ha valfritt namn. De automatiska aliasen definieras av felsökningsmotorn och de användarnamnsalias som definieras av användaren via felsökningskommandon eller API:et för felsökningsmotorn. Om du vill definiera eller ta bort ett användarnamnsalias använder du metoden SetTextReplacement . Metoden GetTextReplacement returnerar namnet och värdet för ett automatiskt alias eller ett användarnamnsalias. Alla användarnamnsalias kan tas bort med metoden RemoveTextReplacements . Metoden GetNumberTextReplacements returnerar antalet användarnamn och automatiska alias. Detta kan användas med GetTextReplacement för att iterera över alla dessa alias. Metoden OutputTextReplacements skriver ut en lista över alla användarnamnsalias, inklusive deras namn och värden.

Observera att om ett användarnamnsalias får samma namn som ett automatiskt alias döljer det användarnamnsalias det automatiska aliaset så att det använda aliaset används när du hämtar värdet för aliaset efter namn.

>Motoralternativ

Motorn har ett antal alternativ som styr dess beteende. De här alternativen visas i DEBUG_ENGOPT_XXX. De returneras av GetEngineOptions och kan anges med SetEngineOptions. Enskilda alternativ kan anges med AddEngineOptions och tas bort med RemoveEngineOptions.

Avbrott

Ett avbrott är ett sätt att tvinga fram en inbrytning i felsökningsprogrammet eller att uppmana motorn att sluta bearbeta det aktuella kommandot, till exempel genom att trycka på Ctrl+Break i WinDbg.

Om du vill begära en inbrytning i felsökningsprogrammet eller avbryta felsökningsprogrammets aktuella uppgift använder du SetInterrupt. Om du vill kontrollera om det har uppstått ett avbrott använder du GetInterrupt.

Not När du utför en lång uppgift från ett tillägg för felsökningsprogrammet rekommenderar vi att tillägget kontrollerar GetInterrupt regelbundet och slutar bearbeta om ett avbrott har begärts.

När du begär ett avbrott i felsökningsprogrammet kan motorn överskrida tidsgränsen om det tar för lång tid för målet att genomföra avbrytningen. Detta kan inträffa om målet är i ett icke-dynamiskt tillstånd eller om inbrytningsbegäran blockeras eller fördröjs av resurskonkurrens. Hur lång tid motorn väntar returneras av GetInterruptTimeout och kan ställas in med SetInterruptTimeout.