Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tej sekcji opisano sposób rozwiązywania problemów ze śladami podróży w czasie.
Problemy podczas próby zarejestrowania procesu
Otrzymuję komunikat o błędzie z komunikatem "WinDbg należy uruchomić podwyższony poziom uprawnień, aby obsługiwać debugowanie podróży w czasie"
Jak wskazuje komunikat, uruchomienie debugera z podwyższonym poziomem uprawnień jest wymagane. Aby uruchomić debuger z podwyższonym poziomem uprawnień, kliknij prawym przyciskiem myszy ikonę WinDbg w menu Start, a następnie wybierz pozycję Więcej>uruchom jako administrator.
Zainstalowano usługę WinDbg z kontem, które nie ma uprawnień administratora i otrzymuję komunikat o błędzie z komunikatem "WinDbg musi być uruchomiony z podwyższonym poziomem uprawnień, aby obsługiwać debugowanie podróży w czasie"
Zainstaluj ponownie usługę WinDbg przy użyciu konta z uprawnieniami administratora i użyj tego konta podczas rejestrowania w debugerze.
Nie mogę uruchomić i zarejestrować aplikacji platformy UWP
Nie jest to obecnie obsługiwane, ale możesz dołączyć do już uruchomionej aplikacji platformy UWP i ją zarejestrować.
Nie mogę zarejestrować nietypowego typu procesu — działa w innej sesji, kontekście zabezpieczeń, poświadczeniach...
W tej chwili TTD rejestruje tylko regularne procesy, które można normalnie uruchamiać z konsoli poleceń lub klikając plik wykonywalny lub skrót w Eksploratorze Windows.
Nie mogę pomyślnie zarejestrować mojej aplikacji na moim komputerze
Jeśli rejestrowanie aplikacji zakończy się niepowodzeniem, sprawdź, czy można zarejestrować prosty proces systemu Windows. Na przykład "ping.exe" lub "cmd.exe" to proste procesy, które mogą być zwykle rejestrowane.
Nie mogę pomyślnie zarejestrować niczego na moim komputerze
Rejestrowanie TTD to inwazyjna technologia, która może zakłócać inne inwazyjne technologie, takie jak struktury wirtualizacji aplikacji, produkty do zarządzania informacjami, oprogramowanie zabezpieczające lub produkty antywirusowe.
Aby uzyskać informacje na temat znanych niezgodności TTD, zobacz "Na co zwrócić uwagę" w sekcji Debugowanie podróży w czasie — omówienie.
Śledzę aplikację i uruchamiam narzędzie AppVerifier w tym samym czasie, a wydajność podczas ponownego odtwarzania śladu jest niska.
Ze względu na sposób, w jaki narzędzie AppVerifier używa pamięci do sprawdzania aplikacji, doświadczenie podczas późniejszego odtwarzania śladu może być zauważalnie gorsze niż bez AppVerifier. Aby zwiększyć wydajność, wyłącz program AppVerifier podczas rejestrowania aplikacji. Jeśli nie jest to możliwe, może być konieczne zamknięcie okna stosu wywołań w systemie WinDbg w celu zwiększenia wydajności.
Problemy z plikami indeksu .IDX
Debugowanie pliku śledzenia bez pliku indeksu lub z uszkodzonym lub niekompletnym plikiem indeksu jest możliwe, ale nie jest zalecane. Plik indeksu jest potrzebny, aby zapewnić, że wartości pamięci odczytane z debugowanego procesu są najbardziej dokładne i zwiększyć wydajność wszystkich innych operacji debugowania.
Użyj polecenia !index -status, aby sprawdzić stan pliku indeksu .IDX skojarzonego z plikiem śledzenia .RUN.
Jeśli możesz spróbować ponownie utworzyć plik indeksu, uruchamiając polecenie !index -force.
Ponowne utworzenie pliku indeksowego .IDX
Jeśli podejrzewasz problem z plikiem indeksu lub !index -status mówi coś innego niż "Załadowany plik indeksu", odtwórz go.
W tym celu możesz uruchomić polecenie !index -force. Jeśli to się nie powiedzie:
- Zamknij debuger.
- Usuń istniejący plik IDX, będzie miał taką samą nazwę jak plik śledzenia .RUN i będzie znajdował się w tym samym katalogu co plik .RUN.
- Otwórz ślad . URUCHOM plik w usłudze WinDbg. Spowoduje to uruchomienie polecenia w
!indexcelu ponownego utworzenia indeksu. -
!index -statusUżyj polecenia , aby potwierdzić, że indeks śledzenia działa.
Upewnij się, że plik indeksu jest wystarczająco dużo miejsca w tej samej lokalizacji, w której znajduje się plik śledzenia. W zależności od zawartości nagrania plik indeksu może być znacznie większy niż plik śledzenia, zwykle około dwukrotnie większy.
Problemy ze śledzeniem plików .RUN
Jeśli występują problemy z plikiem śladu .RUN, mogą pojawić się komunikaty o błędach, takie jak te.
Replay and log are out of sync at fallback data. Packet type is incorrect "Packet Type"
Replay and log are out of sync at opaque data. Log had already reached the end
Replay exit thread event does not match up with logged event
Logged debug write values are out of sync with replay
W większości przypadków wszystkie komunikaty o błędach wskazują, że plik śledzenia .RUN nie może być używany i musi być ponownie zarejestrowany.
Ponowne rejestrowanie aplikacji trybu użytkownika
Jeśli występuje konkretny problem z rejestrowaniem aplikacji w trybie użytkownika, możesz spróbować nagrać inną aplikację na tym samym komputerze lub wypróbować tę samą aplikację na innym komputerze. Możesz spróbować zarejestrować inne użycie aplikacji, aby sprawdzić, czy wystąpił konkretny problem z rejestrowaniem niektórych części aplikacji.
Podczas debugowania lub tworzenia indeksu widzę komunikaty dotyczące „zdarzeń wykolejenia”.
Możliwe, że mogą być wyświetlane komunikaty podobne do następujących:
Derailment event MissingDataDerailment(7) on UTID 2, position 2A550B:108 with PC 0x7FFE5EEB4448 Request address: 0x600020, size: 32
Funkcja TTD działa przez uruchomienie emulatora wewnątrz debugera, który wykonuje instrukcje debugowanego procesu w celu replikowania stanu tego procesu w każdej pozycji na nagraniu. Wykolejenia występują, gdy ten emulator obserwuje pewną rozbieżność między stanem wynikowym a informacjami znalezionymi w pliku śledzenia. Powyższy błąd odnosi się na przykład do instrukcji znalezionej w adresie 0x7FFE5EEB4448 na pozycji 2A550B:108 w śledzeniu, która próbowała odczytać fragment pamięci wokół lokalizacji 0x600020, którego nie ma w nagraniu.
Wykolejenia są często spowodowane przez błąd w rejestratorze, a czasami w emulatorze, w niektórych zarejestrowanych instrukcjach dalej w ślad.
W większości przypadków ten komunikat o błędzie wskazuje, że plik śledzenia .RUN będzie miał lukę w wątku, który się wykoleił, począwszy od momentu wykolejenia, przez nieokreśloną liczbę instrukcji. Jeśli interesujące cię zdarzenie, które próbujesz debugować, nie miało miejsca podczas tej przerwy, ślad może być użyteczny. Jeśli zdarzenie zainteresowania miało miejsce podczas tej przerwy, należy ponownie zarejestrować ślad.
Zobacz też
Debugowanie podróży w czasie — omówienie