Sdílet prostřednictvím


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 o haldě také obsahuje jeden snímek paměti aplikace v tomto okamžiku.

Otevření výpisu paměti s haldou ve Visual Studio je něco jako zastavení na zarážce během ladicí relace. 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čů, k nimž 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 pád nebo zamrznutí programu na vlastním počítači. Testeři také vytvářejí výpisy pro uložení dat z havarovaných nebo nereagujících programů, která se využijí k dalšímu testování.

Ladicí program sady Visual Studio může ukládat soubory výpisu paměti pro spravovaný nebo nativní kód. Může ladit výpisy 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ůže ladit soubory výpisu paměti nativních aplikací 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 dump soubory 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 ze sady 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 režimu uživatele není totéž jako výpis s haldou paměti.
  • Ladění souborů výpisu optimalizovaného kódu může být matoucí. Například inlinování funkcí kompilátorem může vést k neočekávaným volacím zásobníkům a další optimalizace mohou změnit životnost 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 s haldami obsahují snímek paměti aplikace, včetně hodnot proměnných v době výpisu. 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 obsahujícím haldu, 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 povolenou funkcí Just-In-Time Ladění 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í na chybě nebo zarážce během ladění vyberte Ladit>Uložit výpis paměti jako.

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

  3. Přejděte na cestu a vyberte název souboru výpisu 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 výpisy stavu při selhání procesu na základě spouštěčů 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řít soubor s výpisem

  1. Ve Visual Studiu vyberte Soubor>Otevřít>Soubor.

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

    V okně Souhrn souborů Minidump se zobrazují souhrnné a modulové informace o souboru výpisu paměti a akce, které můžete provádět.

    Snímek obrazovky zobrazující stránku souhrnu Minidumpu

    Snímek obrazovky zobrazující stránku souhrnu Minidumpu

  3. V části Akce:

Najděte .exe, .pdb a zdrojové soubory

Aby Visual Studio mohlo používat všechny funkce úplného ladění v souboru s výpisem, 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ů v okamžiku 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ů, aby mohlo vygenerovat platné zásobníky 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áždil výpis paměti.
  3. Cesty symbolů zadané v Nástrojích (nebo Ladění) >Možnosti>Debugging>Symboly. Stránku Symboly můžete otevřít také z panelu Akce okna Souhrn souborů výpisu. Na této stránce můžete přidat další umístění pro vyhledávání.

Použijte stránky Bez binárních souborů, Bez symbolů nebo Bez nalezených zdrojů

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 Určení symbolu (.pdb) a zdrojových souborů.