Jak wyświetlić stos wywołań uruchomionego procesu / wątku?

14

Ktoś poprosił mnie o uzyskanie stosu wywołań lub śledzenia stosu uruchomionego procesu, aby mógł go dla mnie przeanalizować.

Jak mogę uzyskać te informacje?

Der Hochstapler
źródło

Odpowiedzi:

35
  1. Uzyskaj Process Explorer .

  2. Włącz opcję Pokaż szczegóły dla wszystkich procesów z menu Plik :

    wprowadź opis zdjęcia tutaj

  3. W głównym okienku wybierz proces, który Cię interesuje:

    wprowadź opis zdjęcia tutaj

  4. Otwórz menu kontekstowe (kliknij prawym przyciskiem myszy) dla wybranego procesu i kliknij Właściwości :

    wprowadź opis zdjęcia tutaj

  5. Na karcie Wątki zobaczysz listę działających wątków w tym procesie:

    wprowadź opis zdjęcia tutaj

  6. Wybierz interesujący Cię wątek i kliknij przycisk Stos :

    wprowadź opis zdjęcia tutaj

  7. Process Explorer wyświetli teraz bieżący stos wywołań dla wybranego wątku:

    wprowadź opis zdjęcia tutaj

Symbolika

Jeśli rozwiązywanie problemów wymaga uzyskania bardziej szczegółowych informacji, często bardzo pomocne jest załadowanie symboli debugowania do Process Explorer. Oto jak:

  1. Jeśli nie masz jeszcze zainstalowanego debugera systemu Windows, musisz najpierw zainstalować Narzędzia debugowania dla systemu Windows .

  2. W Process Explorer otwórz Konfiguruj symbole ... z menu Opcje :

    wprowadź opis zdjęcia tutaj

  3. Jeśli masz zainstalowane narzędzia do debugowania (lub inny debuger systemu Windows), Process Explorer automatycznie znajdzie dbghelp.dllplik. W przeciwnym razie ustaw tutaj prawidłową ścieżkę.

    wprowadź opis zdjęcia tutaj

    Ścieżka symboli powinna wyglądać mniej więcej tak:

    SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols
    

    Jedyną częścią, którą chcesz dostosować, jest C:\Symbols. To miejsce, w którym będą buforowane symbole debugowania.

Der Hochstapler
źródło
czy istnieje sposób na zrzucenie wszystkich stosów wywołań wątków do pliku?
bgura