Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
En översikt över in- och utdataströmmarna i felsökningsmotorn finns i Indata och utdata.
Inmatning
Motorn frågar efter indata från alla sina klienter om indatametoden anropas på en klient. Indata returneras till anroparen för Indata.
Återanrop för indata
När motorn ber om indata från en klient använder den IDebugInputCallbacks-objektet som registrerats med den klienten. Ett IDebugInputCallbacks-objekt kan registreras med en klient med SetInputCallbacks. Varje klient kan ha högst ett IDebugInputCallbacks-objekt registrerat med det.
Begäran om indata börjar med att motorn anropar metoden IDebugInputCallbacks::StartInput . Detta informerar IDebugInputCallbacks-objektet om att motorn nu väntar på indata.
Om objektet IDebugInputCallbacks har vissa indata för motorn kan det anropa metoden ReturnInput för alla klienter. När metoden ReturnInput har anropats tar motorn inte fler indata. Efterföljande anropare av den här metoden informeras om att indata inte har tagits emot.
Motorn anropar sedan IDebugInputCallbacks::EndInput för att indikera att den har slutat vänta på indata.
Slutligen kommer motorn att upprepa dessa indata till det registrerade IDebugOutputCallbacks-objektet för varje klient (förutom den som används för att ange indata) med hjälp av IDebugOutputCallbacks::Output med bitmasken inställd på DEBUG_OUTPUT_PROMPT.
Utdata
Utdata kan skickas till motorn med flera klientmetoder, till exempel Utdata och OutputVaList. När du tar emot utdata skickar motorn den till vissa klienter.
Klienter använder en utdatamask för att ange vilka typer av utdata de är intresserade av. När utdata genereras av motorn åtföljs den av en mask som anger dess utdatatyp. Om typen av utdata matchar klientens utdatamask får klienten utdata. Utdatamasken kan anges genom att anropa SetOutputMask och efterfrågas med GetOutputMask. Mer information om utdatamaskvärdena finns i DEBUG_OUTPUT_XXX .
Listan över klienter som motorn skickar utdata till styrs av utdatakontrollen. Normalt är utdatakontrollen inställd på att skicka utdata till alla klienter. Det kan dock ändras tillfälligt med ControlledOutput och ControlledOutputVaList. Mer information om utdatakontrollvärden finns i DEBUG_OUTCTL_XXX .
Utdata kan bufferas av motorn. Om flera delar av utdata skickas till motorn kan den samla in dem och skicka dem till klienterna i en enda stor del. Om du vill tömma bufferten använder du FlushCallbacks.
Varje klientobjekt har en utdatabredd, vilket är bredden på utdatavisningen för klientobjektet. Den här bredden används bara som tips, men vissa kommandon och tilläggsfunktioner formaterar sina utdata baserat på den här bredden. Bredden returneras av metoden GetOutputWidth och kan anges med metoden SetOutputWidth.
Utdata-återanrop
När motorn skickar utdata till en klient använder den IDebugOutputCallbacks-objektet som registrerats med klienten. Ett IDebugOutputCallbacks-objekt kan registreras med en klient med SetOutputCallbacks. Varje klient kan ha högst ett IDebugInputCallbacks-objekt registrerat med det.
För att skicka utdata anropar motorn IDebugOutputCallbacks::Output-metoden .
Utdataradsprefix
Varje klientobjekt har ett utdataradsprefix som förbereds för varje rad med utdata som skickas till utdataåteranropet som är associerat med klientobjektet. Detta kan användas för indrag eller för att placera identifieringsmarkeringar på varje rad med utdata.
Utdataradsprefixet returneras av GetOutputLinePrefix och kan anges med SetOutputLinePrefix. Om du tillfälligt vill ändra utdataradsprefixet och senare ändra tillbaka det igen använder du PushOutputLinePrefix och PopOutputLinePrefix.
Loggfiler
Felsökningsmotorn har stöd för att öppna en loggfil för att registrera en felsökningssession. Som mest kan en loggfil vara öppen i taget. Utdata som skickas till utdataåteranrop skickas också till den här loggfilen, om det inte har markerats att det inte ska loggas.
Om du vill öppna en loggfil använder du OpenLogFile2 (eller OpenLogFile). Metoden GetLogFile2 (eller GetLogFile) returnerar den öppna loggfilen. Om du vill stänga loggfilen använder du CloseLogFile.
Metoden SetLogMask kan användas för att filtrera utdata som skickas till loggfilen, så returnerar GetLogMask det aktuella loggfilfiltret.
Snabb
I en interaktiv felsökningssession kan en uppmaning användas för att ange för användaren att felsökaren väntar på användarindata. Uppmaningen skickas till återanropen för utdata med hjälp av metoderna OutputPrompt och OutputPromptVaList . Innehållet i standardprompten returneras av GetPromptText.