Výpis souborů v ladicím programu sady Visual Studio

Soubor s výpisem paměti je snímek, který ukazuje proces, který se spouštěl, a moduly načtené pro aplikaci v určitém okamžiku. Výpis paměti s informacemi haldy také obsahuje snímek paměti aplikace v tomto okamžiku.

Otevření souboru s výpisem paměti s haldou v sadě Visual Studio je něco jako zastavení zarážky v ladicí relaci. I když nemůžete pokračovat ve spouštění, můžete prozkoumat zásobníky, vlákna a proměnné hodnoty aplikace v době výpisu paměti.

Výpisy paměti se většinou používají k ladění problémů z počítačů, ke kterým nemají vývojáři přístup. Soubor s výpisem paměti z počítače zákazníka můžete použít, když nemůžete reprodukovat chybové ukončení nebo nereagující program na vlastním počítači. Testeři také vytvářejí výpisy paměti pro ukládání chybových ukončení nebo nereagujících programových dat, která se použijí k dalšímu testování.

Ladicí program Visual Studio může uložit soubory s výpisem paměti pro spravovaný nebo nativní kód. Může ladit soubory výpisu paměti vytvořené sadou Visual Studio nebo jinými aplikacemi, které ukládají soubory ve formátu minidump .

Požadavky a omezení

  • Aby bylo možné ladit soubory výpisu paměti z 64bitových počítačů, musí sada Visual Studio běžet na 64bitovém počítači.
  • Visual Studio může ladit soubory výpisu paměti spravovaných aplikací z operačního systému Linux.
  • Visual Studio můžete ladit soubory s výpisem paměti nativních aplikaci ze zařízení ARM. Může také ladit výpisy spravovaných aplikací ze zařízení ARM, ale pouze v nativním ladicím programu.
  • Pokud chcete ladit soubory s výpisem paměti v režimu jádra nebo použít rozšíření ladění SOS.dll v sadě Visual Studio, stáhněte si nástroje pro ladění pro Windows v sadě Windows Driver Kit (WDK).
  • Visual Studio nemůže ladit soubory výpisu paměti uložené ve starším, úplném formátu výpisu stavu systému v uživatelském režimu. Úplný výpis stavu režimu uživatele není stejný jako výpis paměti s haldou.
  • Ladění souborů s výpisem paměti pro optimalizaci kódu může být matoucí. Například vkládání kompilátoru funkcí může vést k neočekávaným zásobníkům volání a další optimalizace můžou změnit dobu života proměnných.

Výpis souborů s haldami nebo bez nich

Soubory s výpisem paměti mohou nebo nemusí obsahovat informace o haldě.

  • Soubory výpisu paměti s haldami obsahují snímek paměti aplikace, včetně hodnot proměnných v době výpisu paměti. Visual Studio také ukládá binární soubory načtených nativních modulů do souboru s výpisem paměti s haldou, což může usnadnit ladění. Visual Studio může načíst symboly ze souboru s výpisem paměti s haldou, i když nemůže najít binární soubor aplikace.

  • Soubory s výpisem paměti bez haldy jsou mnohem menší než výpisy paměti s haldami, ale ladicí program musí načíst binární soubory aplikace a najít informace o symbolech. Načtené binární soubory musí přesně odpovídat těm spuštěným při vytváření výpisu paměti. Soubory s výpisem paměti bez haldy ukládají pouze hodnoty proměnných zásobníku.

Vytvoření souboru s výpisem paměti

Při ladění procesu v sadě Visual Studio můžete uložit soubor s výpisem paměti, když se ladicí program zastavil na výjimce nebo zarážce.

S povoleným laděním za běhu můžete připojit ladicí program sady Visual Studio k chybovému procesu mimo Visual Studio a pak uložit soubor s výpisem paměti z ladicího programu. Viz Připojení ke spuštěným procesům.

Uložení souboru s výpisem paměti:

  1. Při zastavení chyby nebo zarážky během ladění vyberte Ladit>výpis výpisu paměti jako.

  2. V dialogovém okně Uložit výpis paměti jako v části Uložit jako typ vyberte Minidump nebo Minidump s haldou (výchozí nastavení).

  3. Přejděte k cestě a vyberte název souboru s výpisem paměti a pak vyberte Uložit.

Poznámka:

Soubory s výpisem paměti můžete vytvořit pomocí libovolného programu, který podporuje formát Minidump systému Windows. Například nástroj příkazového řádku Procdump z Windows Sysinternals může vytvářet soubory výpisu stavu systému zpracování na základě triggerů nebo na vyžádání. Informace o používání jiných nástrojů k vytváření souborů s výpisem paměti najdete v tématu Požadavky a omezení .

Otevření souboru s výpisem paměti

  1. V sadě Visual Studio vyberte Soubor>otevřít.>

  2. V dialogovém okně Otevřít soubor vyhledejte a vyberte soubor s výpisem paměti. Obvykle má rozšíření .dmp . Vyberte OK.

    V okně Souhrn souborů Minidump se zobrazují souhrnné informace a informace o modulu pro soubor s výpisem paměti a akce, které můžete provést.

    Snímek obrazovky se stránkou souhrnu Minidump

    Snímek obrazovky se stránkou souhrnu Minidump

  3. V části Akce:

    • Pokud chcete nastavit umístění načítání symbolů, vyberte Nastavit cesty symbolů.
    • Pokud chcete spustit ladění, vyberte Možnost Ladit pouze se spravovanými funkcemi, Ladění se smíšenými, Pouze nativními laděními nebo Ladit spravovanou paměť. Pokud chcete analyzovat spravovanou paměť, podívejte se na sestavy spravovaného typu.
    • Pokud chcete získat analýzu paměti na výpisu paměti, vyberte Spustit diagnostickou analýzu a podívejte se na ladění výpisu spravované paměti pomocí diagnostických analyzátorů .NET.

Vyhledání .exe, .pdb a zdrojových souborů

K použití funkcí úplného ladění v souboru s výpisem paměti sada Visual Studio potřebuje:

  • Soubor .exe , pro který byl vytvořen výpis paměti, a další binární soubory (například knihovny DLL), které použil proces výpisu.
  • Soubory symbolů (.pdb) pro .exe a další binární soubory.
  • Soubory .exe a .pdb , které přesně odpovídají verzi a sestavení souborů při vytváření výpisu.
  • Zdrojové soubory pro příslušné moduly. Pokud nemůžete najít zdrojové soubory, můžete použít demontáž modulů.

Pokud výpis obsahuje data haldy, visual Studio se může vypořádat s chybějícími binárními soubory pro některé moduly, ale musí mít binární soubory pro dostatek modulů k vygenerování platných zásobníků volání.

Cesty hledání pro soubory .exe

Visual Studio automaticky vyhledá v těchto umístěních soubory .exe , které nejsou zahrnuté v souboru s výpisem paměti:

  1. Složka, která obsahuje soubor s výpisem paměti.
  2. Cesta modulu, kterou soubor výpisu paměti určuje, což je cesta modulu na počítači, který shromáždí výpis paměti.
  3. Cesty symbolů zadané v nástrojích (nebo ladění) >Možnosti>ladění>symbolů. Stránku Symboly můžete otevřít také na panelu Akce v okně Souhrn souborů výpisu. Na této stránce můžete přidat další umístění pro vyhledávání.

Použití stránek Žádné binární soubory, Žádné symboly nebo Žádné nalezené zdroje

Pokud Visual Studio nemůže najít soubory, které potřebuje k ladění modulu v výpisu paměti, zobrazí se stránka Nenašly se žádné binární soubory, Žádné nalezené symboly nebo Žádná nalezená zdrojová stránka. Tyto stránky obsahují podrobné informace o příčině problému a poskytují odkazy na akce, které vám můžou pomoct najít soubory. Viz Zadání symbolu (.pdb) a zdrojových souborů.