Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Agent debugera to asystent debugowania opartego na sztucznej inteligencji, który działa za pośrednictwem usługi GitHub Copilot Chat, aby ułatwić odtwarzanie, izolowanie i naprawianie usterek przez kontrolowanie wykonywania i weryfikowanie pracy względem stanu środowiska uruchomieniowego na żywo. Agent działa najskuteczniej, gdy wyznaczysz mu jasny cel i pozwolisz mu zarządzać całym procesem debugowania od początku do końca.
Agent debugowania świetnie sprawdza się w sytuacjach, gdy trzeba udowodnić istnienie błędu, zweryfikować, że poprawka działa, instrumentować kod za pomocą punktów przerwania i punktów śledzenia oraz analizować złożone stosy wywołań. Łącząc polecenia w języku naturalnym ze sterowaniem debugerem, możesz sprawniej przechodzić przez etapy odtworzenia problemu, instrumentacji, izolowania i naprawy niż przy samym ręcznym debugowaniu.
Jak uzyskać dostęp do agenta debugera
Otwórz okno Copilot Chat (Wyświetl>Copilot Chat GitHub).
Wybierz Debugger z menu rozwijanego trybów w lewym dolnym rogu okna czatu lub wpisz
@debuggerw polu wprowadzania czatu w trybie Agent.Wprowadź monit opisujący zadanie debugowania, zastępując tekst zastępczy specyfiką scenariusza.
Odtwarzanie błędów i diagnostyka
Agent debugera może odtworzyć błędy z opisów problemów i potwierdzić, że istnieją w środowisku uruchomieniowym. Zacznij od skierowania agenta do opisu błędu, linku do zgłoszenia w serwisie GitHub lub zgłoszenia błędu w usłudze Azure DevOps i pozwól mu przeprowadzić cały proces.
Przykładowe polecenia:
Investigate/fix/debug the bug described in <issue link>. Reproduce the failure, find the root cause with the debugger, and propose a fix.
When I <do these steps>, I expect <expected result> but instead I see <actual result>. Debug the problem, find where the code goes wrong, and suggest a fix.
Create a minimal repro for the following issue, then run it under the debugger to confirm the failure and show me the runtime state that causes it: <bug description>.
Napraw weryfikację i walidację
Gdy masz już poprawkę, niezależnie od tego, czy została utworzona przez agenta, czy przez Ciebie, użyj Debugger Agent, aby sprawdzić, czy poprawka rozwiązuje problem i czy wszystkie istotne ścieżki kodu zostały przetestowane.
Przykładowe polecenia:
Nadaj agentowi samodzielny sposób udowodnienia, że poprawka działa w ramach testu jednostkowego lub małego odtworzenia konsoli, a następnie sprawdź określone zachowanie środowiska uruchomieniowego.
Set breakpoints at <specific locations>, debug, and verify that <variable> has the value <expected value> and that <behavior> happens as expected.
I'm working on a change to make my code handle <new feature>. As part of that, I broke the following scenario: <repro steps>. Debug the problem and find where my code went wrong. Here are my changes: <paste diff here>
Instrumentacja i inspekcja środowiska uruchomieniowego
Agent debugera może ustawić warunkowe punkty przerwania i punkty śledzenia dokładnie tam, gdzie są potrzebne, a następnie uruchomić projekt w celu zebrania potrzebnych danych. Takie podejście zapewnia większą widoczność bez ręcznego edytowania kodu.
Przykładowe polecenia:
Set a breakpoint at the start of ProcessFile that breaks only when the file name starts with "data12345", then launch my project.
I need more visibility into <area of code>. Add tracepoints that log <the values you care about> at the key points in this flow, then run my project and show me the trace output.
Analiza stosu wywołań i przepływ sterowania
Po wstrzymaniu w punkcie przerwania lub wyjątku i konieczności zrozumienia ścieżki wykonywania agent debugera może przeanalizować stos wywołań i wyjaśnić, co robi bieżący wątek, w tym przepływ asynchroniczny.
Przykładowe polecenia:
Analyze the current call stack and explain what this thread is doing and how it got here, including the async flow. Point out the frame most likely responsible for <the problem>.
Why is my code taking the wrong branch and not reaching <this line>? Set a breakpoint there and run the app. If it isn't hit, set breakpoints at the upstream decision points and inspect the actual condition values to find where control flow diverges.
Wskazówka
Możesz również uzyskać analizę stosu wywołań jednym kliknięciem: w oknie Stos wywołań wybierz pozycję Analizuj za pomocą Copilot lub użyj funkcji Analizuj za pomocą Copilot w widoku Stosy równoległe / Wątki w scenariuszach wielowątkowych.
Debugowanie testu jednostkowego
Agent debugera może debugować testy zakończone niepowodzeniem bezpośrednio z czatu bez konieczności wcześniejszego uruchamiania debugera.
Przykładowy monit:
The test <TestName> is failing. Debug it, find the root cause of the failure, and suggest a fix.
Wskazówka
Możesz również rozpocząć debugowanie testu, który zakończył się niepowodzeniem, z poziomu Eksploratora testów lub wskaźnika CodeLens nad testem w edytorze, a następnie kontynuować rozmowę z agentem debugowania. Jest to łatwy sposób przekazywania kontekstu testu zakończonego niepowodzeniem do Copilot.
Najlepsze rozwiązania dotyczące agenta debugera
Podaj dane, a nie polecenia. Agent debugowania nie ma dostępu do powłoki ani programu PowerShell, więc nie może uruchamiać za Ciebie narzędzi takich jak
git.exe. Zamiast tego wklej rzeczywiste dane wyjściowe. Na przykład wklej wynik polecenia diff, zamiast mówić agentowi, żeby uruchomił polecenie diff.Pozwól agentowi sterować wykonywaniem podczas instrumentowania kodu. Copilot może poprawiać błędy w warunkowych punktach przerwania i punktach śledzenia tylko wtedy, gdy steruje uruchomieniem. Preferuj "ustaw warunkowy punkt przerwania ... i uruchomić mój projekt" na "ustawić warunkowy punkt przerwania" na własną rękę.
Pozwól agentowi zakończyć działanie po przejściu w stan przerwy. Jeśli agent steruje wykonywaniem, a na czacie nadal widać, że Copilot pracuje, nie musisz nic robić. Aby odzyskać kontrolę, wybierz przycisk Zatrzymaj w czacie.