Debug / Narrative
Breakpointy i współpracująca pauza
Breakpoint semantyczny wskazuje zdarzenie lub granicę przepływu, które chcesz obejrzeć. Jego trafienie jest zapisywane w sesji Collectora.
Co jest dziś dopasowywane?
| Rodzaj | Reguła w obecnym matcherze |
|---|---|
| Source | Zgodność pliku i numeru linii zdarzenia z punktem źródłowym |
| Communication | Zdarzenie COMM_SEND lub COMM_RECV; opcjonalne dopasowanie nazwy kanału |
| Channel | Zgodność etykiety z atrybutem channel zdarzenia |
| Narrative | Zgodność etykiety z narrative_id zdarzenia |
| State i Causality | Obecne w modelu danych; bez wykonanej reguły trafienia |
Co następuje po trafieniu?
Collector zapisuje trafienie i snapshot modelu stanu oraz ustawia sesję jako Paused. Instrumentowane wykonanie może następnie czekać w swojej bramce, dopóki stan sesji wskazuje pauzę. Wygenerowana bramka Go odpytuje sesję okresowo; błąd odczytu może zakończyć oczekiwanie.
Nie jest atomowym zamrożeniem wszystkich węzłów. Działa w punktach instrumentacji uczestniczącego wykonania. Snapshot modelu Collectora nie stanowi pełnego obrazu pamięci wszystkich procesów.
Warunek a typ breakpointu
Pole Condition jest przechowywane w modelu breakpointu semantycznego, lecz przejrzany matcher nie ocenia tego wyrażenia. Nie traktuj go jako działającego warunkowego zatrzymania. Warunki i hit count natywnego DAP to osobna funkcja adaptera.
Jak odczytać wynik?
- Sprawdź, który punkt i które zdarzenie zostały skojarzone.
- Otwórz zapisany snapshot i ustal, które stany rzeczywiście dotarły.
- Przejdź do źródła lub wyjaśnienia zdarzenia.
- Wznów sesję dopiero po przejrzeniu obserwacji.