Udostępnij za pośrednictwem


WinDbg: ustawienia, obszary robocze i zapisane sesje debugowania

logo WinDbg z lupą inspekcjonującą bity.

W tym artykule opisano sposób ustawienia i konfigurowania usługi WinDbg.

WinDbg używa dwóch typów plików konfiguracji:

  • Obszary robocze przechowują ustawienia windbg, takie jak motyw, układ okna, ścieżki symboli, ścieżki źródłowe i inne opcje konfiguracji. Pliki obszaru roboczego używają rozszerzenia .xml i są domyślnie przechowywane w lokalizacji %LOCALAPPDATA%\DBG\Workspaces. Ustawienia są automatycznie zapisywane w domyślnym pliku obszaru roboczego (%LOCALAPPDATA%\DBG\DbgX.xml) po zamknięciu usługi WinDbg.

  • Zapisane sesje debugowania przechowują informacje o połączeniu docelowym (takie jak plik zrzutu do otwarcia lub który proces do dołączenia) wraz z opcjami silnika ustawionymi na sesję. Pliki sesji debugowania używają rozszerzenia .debugtarget i są domyślnie przechowywane w %LOCALAPPDATA%\DBG\Targets. Te pliki są wyświetlane na liście Ostatnio używane elementy docelowe na stronie Rozpocznij debugowanie .

Ustawienia

Użyj menu Ustawienia , aby ustawić elementy, takie jak ścieżka źródła i symbolu. Możesz również wybrać motyw WinDbg. Dostępne tryby motywu to:

  • System — jest zgodny z ustawieniem motywu systemowego systemu Windows (ustawienie domyślne).
  • Light — używa motywu jasnego.
  • Ciemny — używa motywu ciemnego.

Zrzut ekranu przedstawiający menu ustawień WinDbg, wyświetlające kartę Ogólne.

Obecnie istnieją sześć okien dialogowych Ustawień :

  • Ogólne
  • Okno polecenia
  • Ustawienia debugowania
  • Okna dezasemblacji
  • Zdarzenia i wyjątki
  • Okno źródła

Aby uzyskać więcej informacji na temat ustawiania ścieżek, zobacz Ścieżka symboli debugera systemu Windows i debugowania kodu źródłowego w systemie WinDbg (wersja klasyczna).

Przestrzenie robocze

Obszary robocze zapisują ustawienia windbg, takie jak motyw, układ okna, ścieżki symboli, ścieżki źródłowe i inne opcje konfiguracji, do pliku.

Zapisywanie i wczytywanie obszarów roboczych

Obszary robocze można zarządzać za pomocą menu Plik :

  • Zapisz obszar roboczy — zapisuje bieżące ustawienia w aktywnym pliku obszaru roboczego.
  • Zapisz obszar roboczy jako — zapisuje bieżące ustawienia w nowym pliku obszaru roboczego.
  • Otwórz obszar roboczy — ładuje ustawienia z wcześniej zapisanego pliku obszaru roboczego.

Ustawienia są również zapisywane automatycznie po zamknięciu debugera, chyba że automatyczne zapisywanie zostało wyłączone z opcją -Q wiersza polecenia.

Opcje wiersza polecenia obszaru roboczego

Aby kontrolować zachowanie obszaru roboczego, możesz użyć następujących opcji wiersza polecenia:

  • -Q - Wyłącza automatyczne zapisywanie ustawień. Zmiany ustawień są utrwalane tylko wtedy, gdy jawnie wybierzesz pozycję Zapisz obszar roboczy lub Zapisz obszar roboczy jako z menu Plik .
  • -WF SettingsFile — Ładuje ustawienia z określonego pliku obszaru roboczego podczas uruchamiania.

Zapisane sesje debugowania

Zapisane sesje debugowania przechowują informacje o docelowym połączeniu wraz z opcjami silnika sesji. Pliki sesji debugowania mają rozszerzenie .debugtarget i są domyślnie przechowywane w %LOCALAPPDATA%\DBG\Targets.

Zapisywanie i ładowanie sesji debugowania

Sesje debugowania można zarządzać za pomocą menu Plik i wiersza polecenia:

  • Zapisz sesję debugowania — zapisuje bieżące informacje o połączeniu docelowym w .debugtarget pliku. Ta opcja jest dostępna tylko wtedy, gdy element docelowy debugowania jest aktywny.
  • Ostatnie miejsca docelowe — na stronie Rozpocznij debugowanie wybierz wcześniej zapisaną sesję debugowania z listy Ostatnie miejsca docelowe, aby je ponownie załadować.
  • -loadSession — Ładuje zapisany plik konfiguracji sesji debugowania z wiersza polecenia.

Ustawienia sesji debugowania

Oprócz informacji o połączeniu docelowym następujące ustawienia są przechowywane w zapisanym pliku sesji debugowania (.debugtarget rozszerzenie pliku).

Ustawienia ogólne

Uwaga / Notatka

Ta lista i format nie są ostateczne i mogą ulec zmianie.

Ustawienia Wartość domyślna Opis
FinalBreak true Jeśli true, program ignoruje końcowy punkt przerwania (opcja wiersza polecenia -g).
SourceDebugging true Przełącza tryby między trybem źródłowym albo trybem montażu.
DebugChildProcesses false (Tylko tryb użytkownika). Jeśli true program debuguje procesy podrzędne uruchomione przez aplikację docelową (opcja -o wiersza polecenia).
Noninvasive false Określa dołączanie nieinwazyjne (-pv opcja wiersza polecenia).
NoDebugHeap false Specyfikuje, że sterta debugowania nie powinna być używana (opcja wiersza polecenia -hd).
Verbose false Po włączeniu trybu szczegółowego generuje bardziej szczegółowe dane wyjściowe (-v opcja wiersza polecenia) dla niektórych poleceń wyświetlania, takich jak zrzucanie rejestru.
Elevate - Używane wewnętrznie przez WinDbg. Nie modyfikuj.
Restartable - Używane wewnętrznie przez WinDbg. Nie modyfikuj.
UseImplicitCommandLine false Używa niejawnego wiersza polecenia (-cimp opcja wiersza polecenia). To ustawienie uruchamia debuger z niejawnym wierszem polecenia zamiast jawnego procesu do uruchomienia.

Aby uzyskać więcej informacji na temat opcji wiersza polecenia, zobacz Opcje wiersza polecenia WinDbg.

Ustawienia symboli

Ustawienia Wartość domyślna Opis
SymbolOptionsOverride 0 Ta maska opcji symboli w formie jawnej jest przedstawiona jako pojedyncza liczba szesnastkowa.
ShouldOverrideSymbolOptions false Jeśli ustawiono wartość true, zastępuje wszystkie opcje symboli wymienione w tej tabeli za pomocą maski opcji symboli, która została opisana w poprzedniej tabeli.
SymOptExactSymbols false Ta opcja powoduje, że debuger wykonuje ścisłą ocenę wszystkich plików symboli.
SymOptFailCriticalErrors false Ta opcja symbolu powoduje pomijanie okien dialogowych błędu dostępu do pliku.
SymOptIgnoreCvRec false Ta opcja powoduje, że program obsługi symboli ignoruje rekord CV w załadowanym nagłówku obrazu podczas wyszukiwania symboli.
SymOptIgnoreNtSympath false Ta opcja powoduje, że debuger ignoruje ustawienia zmiennej środowiskowej dla ścieżki symboli i ścieżki obrazu wykonywalnego.
SymOptNoCpp false Ta opcja symboli wyłącza tłumaczenie języka C++. Po ustawieniu tej opcji symbolu, __ zastępuje :: we wszystkich symbolach.
SymOptNoUnqualifiedLoads false Ta opcja symboli wyłącza automatyczne ładowanie modułów przez program obsługi symboli. Po ustawieniu tej opcji debuger próbuje dopasować symbol. Wyszukuje tylko moduły, które zostały już załadowane.
SymOptAutoPublics false Ta opcja symbolu powoduje, że narzędzie DbgHelp wyszukuje publiczną tabelę symboli w pliku .pdb tylko w ostateczności. Jeśli podczas wyszukiwania prywatnych danych symboli zostaną znalezione dopasowania, publiczne symbole nie są przeszukiwane. To ustawienie poprawia szybkość wyszukiwania symboli.
SymOptDebug false Ta opcja symboli włącza hałaśliwe ładowanie symboli. To ustawienie powoduje, że debuger wyświetli informacje o wyszukiwaniu symboli.

Aby uzyskać więcej informacji na temat opcji symboli, zobacz Opcje symboli.

Debugowanie pliku XML sesji

Informacje o połączeniu docelowym sesji debugowania są przechowywane w formacie XML z .debugtarget rozszerzeniem pliku.

Poniższy plik przedstawia przykładowy plik konfiguracji sesji debugowania.

<?xml version="1.0" encoding="utf-8"?>
<TargetConfig Name="C:\paint.dmp" LastUsed="2017-08-03T21:34:20.1013837Z">
  <EngineConfig />
  <EngineOptions>
    <Property name="FinalBreak" value="true" />
    <Property name="SourceDebugging" value="true" />
    <Property name="DebugChildProcesses" value="false" />
    <Property name="Noninvasive" value="false" />
    <Property name="NoDebugHeap" value="false" />
    <Property name="Verbose" value="false" />
    <Property name="SymbolOptionsOverride" value="0" />
    <Property name="ShouldOverrideSymbolOptions" value="false" />
    <Property name="SymOptExactSymbols" value="false" />
    <Property name="SymOptFailCriticalErrors" value="false" />
    <Property name="SymOptIgnoreCvRec" value="false" />
    <Property name="SymOptIgnoreNtSympath" value="false" />
    <Property name="SymOptNoCpp" value="false" />
    <Property name="SymOptNoUnqualifiedLoads" value="false" />
    <Property name="SymOptAutoPublics" value="false" />
    <Property name="SymOptDebug" value="false" />
    <Property name="Elevate" value="false" />
    <Property name="Restartable" value="true" />
    <Property name="UseImplicitCommandLine" value="false" />
  </EngineOptions>
  <TargetOptions>
    <Option name="OpenDump">
      <Property name="DumpPath" value="C:\paint.dmp" />
    </Option>
  </TargetOptions>
</TargetConfig>

Ten format pliku nadal ewoluuje wraz z dodaniu większej liczby funkcji do usługi WinDbg.