Systematyczne debugowanie na różnych powierzchniach
Jest 3 w nocy i twój pager się odzywa. Serwis płatności zwraca błędy 500. Log błędów pokazuje stack trace wskazujący na zależność, którą zaktualizowałeś wczoraj. Musisz zdiagnozować problem, zidentyfikować przyczynę źródłową i wdrożyć poprawkę — zanim klienci się obudzą. To właśnie tutaj wielopowierzchniowa architektura Codex zamienia stresujący incydent w metodyczną sesję debugowania.
Czego się nauczysz
Dział zatytułowany „Czego się nauczysz”- Ustrukturyzowany przepływ pracy debugowania działający na wszystkich powierzchniach Codex
- Techniki debugowania specyficzne dla powierzchni: aplikacja do wizualnego przeglądu diff-ów, CLI do skryptowalnej diagnostyki, chmura do izolowanej reprodukcji, IDE do edycji w czasie rzeczywistym
- Gotowe do skopiowania prompty dla najczęstszych scenariuszy debugowania
- Strategie debugowania wyścigów, sporadycznych awarii i bugów występujących tylko na produkcji
Framework debugowania
Dział zatytułowany „Framework debugowania”- Odtwórz: Potwierdź, że bug istnieje i zidentyfikuj minimalne kroki reprodukcji.
- Izoluj: Zawęź, który komponent, moduł lub zmiana wprowadziła buga.
- Zdiagnozuj: Znajdź przyczynę źródłową w kodzie.
- Napraw: Zaimplementuj minimalną zmianę, która rozwiązuje problem.
- Zweryfikuj: Uruchom zestaw testów, dodaj test regresji i potwierdź poprawkę.
Debugowanie specyficzne dla powierzchni
Dział zatytułowany „Debugowanie specyficzne dla powierzchni”Najlepsze do: Szybkiej diagnostyki, skryptowalnego debugowania i awarii CI.
# Diagnose a test failurecodex exec --full-auto \ "Run npm test, capture the output, identify why the payments test is failing, find the root cause in the source code, and fix it. Run the test again to verify."
# Analyze a production errorcodex "Here is a production stack trace from our payments service:[paste stack trace]Find the root cause in the codebase. The service was working untilwe upgraded stripe-node from 14.x to 15.x yesterday."Najlepsze do: Wizualnego przeglądu diff-ów, równoległych wątków dochodzeniowych i izolacji worktree.
Otwórz wątek Worktree, aby debugowanie nie wpływało na twoją bieżącą pracę:
- Wybierz tryb “Worktree”, opierając go na branchu produkcyjnym
- Wrzuć zrzut ekranu lub wklej komunikat błędu do kompozytora
- Pozwól Codex badać problem, podczas gdy kontynuujesz inną pracę
- Przejrzyj diff w wizualnym panelu diff-ów aplikacji
- Zsynchronizuj poprawkę do lokalnego checkout, gdy będziesz zadowolony
Najlepsze do: Odtwarzania problemów specyficznych dla środowiska, ciężkiej analizy i diagnostyki best-of-N.
# Submit a cloud debugging taskcodex cloud exec --env production-mirror \ "The /api/payments endpoint returns 500 with the error 'TypeError: Cannot read property of undefined'. Reproduce the issue, find the root cause, implement a fix, and add a regression test."Typowe scenariusze debugowania
Dział zatytułowany „Typowe scenariusze debugowania”Awaria CI po aktualizacji zależności
Dział zatytułowany „Awaria CI po aktualizacji zależności”Our CI started failing after upgrading typescript from 5.3 to 5.5.The errors are in src/types/. Read the TypeScript 5.5 migration guideand fix the type errors. Do not downgrade TypeScript. Run the typechecker after each change.Błąd produkcyjny ze stack trace
Dział zatytułowany „Błąd produkcyjny ze stack trace”Here is a production error from Sentry:[paste full error with stack trace]
Find the exact code path that leads to this error. The error startedappearing after commit abc1234. Use git diff abc1234~1..abc1234 toidentify what changed. Implement a fix and add a regression test.Badanie wycieku pamięci
Dział zatytułowany „Badanie wycieku pamięci”Our Node.js service's heap grows by 50MB/hour under load. The leakwas introduced sometime in the last 2 weeks. Analyze recent commitsto src/services/ for common leak patterns: event listeners not removed,closures capturing large objects, growing arrays or maps without eviction.Identify the likely cause and propose a fix.Debugowanie oparte na obrazach
Dział zatytułowany „Debugowanie oparte na obrazach”Aplikacja Codex i CLI obsługują wejście obrazów. Dla bugów UI wrzuć zrzut ekranu do kompozytora:
# CLI with screenshotcodex -i screenshot-broken-layout.png \ "This screenshot shows a broken layout in the dashboard header. The navigation items should be horizontally aligned but they are stacking vertically. Find the CSS issue and fix it."W aplikacji przytrzymaj Shift podczas upuszczania obrazu, aby dodać go jako kontekst.
Kiedy to nie działa
Dział zatytułowany „Kiedy to nie działa”- Agent nie może odtworzyć buga: Bug może zależeć od stanu środowiska (baza danych, cache, zewnętrzna usługa). Podaj jak najwięcej kontekstu: komunikaty błędów, stack trace, ostatnie zmiany i szczegóły środowiska.
- Poprawka działa, ale wprowadza regresję: Agent skupił się zbyt wąsko. Poproś go o uruchomienie pełnego zestawu testów, nie tylko testu, który zawodził.
- Sporadyczny bug znika podczas debugowania: Dodaj jawne logowanie lub asercje. Poproś Codex o dodanie tymczasowej instrumentacji debugowej, która przechwytuje stan w momencie wystąpienia błędu.
- Agent obwinia zły commit: Podaj dokładny przedział czasowy, kiedy bug się pojawił i git log. Poproś agenta o analizę każdego podejrzanego commita indywidualnie.
Co dalej
Dział zatytułowany „Co dalej”- Strategie przeglądu — Przeglądaj poprawki debugowania z odpowiednią rygorem
- Wzorce kontekstu — Utrzymuj kontekst debugowania w formie podczas długich sesji dochodzeniowych
- Inżynieria promptów — Pisz lepsze prompty do debugowania