Sdílet prostřednictvím


Použití souborů výpisu paměti k ladění selhání a zablokování aplikací v sadě Visual Studio

Soubory s výpisem paměti s nebo bez haldy –vytvořte soubor s výpisem, otevřete jej, vyhledejte binární soubory, PDB a zdrojový soubor souboru s výpisem.

Obsah

Co je soubor s výpisem paměti?

Soubory výpisu paměti, s haldou nebo bez haldy

Požadavky a omezení

Vytvoření souboru výpisu paměti

Otevřete souboru výpisu paměti

Najít binární soubory, soubory symbolů (PDB) a zdrojové soubory

Co je soubor s výpisem paměti?

Soubor výpisu paměti je snímek aplikace v bodě v čase, kdy je výpis paměti pořízen.Ukazuje, jaký proces probíhal a které moduly byly načteny.Pokud byl výpis paměti uložen s informacemi o haldě, soubor s výpisem paměti obsahuje snímek toho, co bylo v paměti aplikace v daném okamžiku.Otevření souboru s výpisem paměti pomocí haldy v sadě Visual Studio odpovídá zastavení na zarážce v ladicí relaci.Ačkoli nelze pokračovat v provádění, můžete zkoumat zásobníky, vlákna a proměnné hodnoty aplikace v době, kdy došlo k výpisu paměti.

Výpisy paměti se používají především pro ladění problémů, ke kterým dochází v počítačích, ke kterým nemá vývojář přístup.Můžete například použít soubor s výpisem paměti z počítače zákazníka, pokud nelze ve vašem počítači reprodukovat situaci, kdy produkt zákazníka selže nebo přestane reagovat.Výpisy paměti jsou vytvářeny také testery, kteří v nich ukládají data o zhroucení nebo zablokování, aby bylo možné testovací počítač použít pro další testování.Ladicí program Visual Studio může uložit soubory s výpisem paměti pro spravovaný nebo nativní kód.Ladicí program můžete načíst soubory s výpisem paměti, vytvořené pomocí sady Visual Studio nebo jinými programy, které ukládají soubory ve formátu minimální výpis.

Zpět na začátekObsah

Soubory výpisu paměti, s haldou nebo bez haldy

Můžete vytvořit soubory s výpisem paměti s informacemi o haldě nebo bez nich.

  • Soubory s výpisem paměti s haldou obsahují snímek paměti aplikace.Zahrnuje hodnoty proměnných v době, kdy byl vytvořen výpis paměti.Pokud načtete soubor s výpisem paměti, který byl uložen s haldou, sada Visual Studio může načíst symboly i v případě, že binární soubor aplikace není nalezen.Visual Studio také ukládá binární verze načtených nativních modulů v souboru s výpisem paměti, díky čemu může být ladění mnohem snazší.

  • Soubory s výpisem paměti bez haldy jsou mnohem menší, než soubory s výpisem s informacemi o haldě.Ladicí program má však načíst binární soubory aplikace a nalézt tak informace o symbolu.Binární soubory musí být přesná shoda binárních souborů, které byly použity při vytvoření výpisu paměti.Pouze hodnoty proměnných zásobníku jsou ukládány do souborů výpisu paměti bez dat haldy.

Zpět na začátekObsah

Požadavky a omezení

  • Ladění souborů s výpisem paměti pro optimalizaci kódu může být matoucí.Například vkládání funkcí kompilátoru může mít za následek neočekávané volání zásobníků a další optimalizace může upravit délku platnosti proměnných.

  • Soubory s výpisem paměti u 64bitových počítačů je nutné ladit v instanci aplikace Visual Studio, která běží na 64bitovém počítači.

  • Ve verzích sady Visual Studio před verzí 2013 výpisy paměti 32bitových aplikací běžících v 64bitových počítačích, které byly shromážděny pomocí některých nástrojů (například Správce úloh a WinDbg v 64bitové verzi) nelze otevřít v sadě Visual Studio.Toto omezení bylo ve verzi 2013 odebráno.

  • Visual Studio můžete ladit soubory s výpisem paměti nativních aplikaci ze zařízení ARM.Visual Studio může také ladit soubory s výpisem paměti aplikací spravovaných aplikace ze zařízení ARM, avšak pouze v nativním ladicím programu.

  • Chcete-li ladit soubory výpisu paměti režimu jádra v aplikaci Visual Studio 2013, stáhněte si verzi Windows 8.1 nástrojů Debugging Tools for Windows.Viz Ladění jádra v aplikaci Visual Studio.

  • Visual Studio nemůže ladit soubory se výpisem paměti uložené ve starším formátu výpisu, známé jako soubory s výpisem s úplným uživatelským režimem.Pamatujte, že výpis paměti s úplným uživatelským režimem není stejný jako výpis s daty haldy.

  • Pokud chcete provést ladění SOS.dll (rozšíření ladění SOS) v aplikaci Visual Studio, je nutné nainstalovat Debugging Tools for Windows, které jsou součástí sad WDK (Windows Driver Kit).Viz Windows 8.1 Preview: stažení sad, bitů a nástrojů.

Zpět na začátekObsah

Vytvoření souboru výpisu paměti

Vytvoření souboru s výpisem paměti pomocí aplikace Visual Studio:

  • Při ladění procesu v aplikaci Visual Studio, můžete uložit soubor s výpisem paměti, když se ladicí program zastaví na výjimce nebo v bodu přerušení.Zvolte možnost Uložit výpis paměti jako > Ladění.V dialogovém okně Uložit výpis paměti jako v seznamu Uložit jako typ můžete vybrat možnost Minimální výpis nebo Minimální výpis s haldou (výchozí).

  • S povolenou možností Ladění za běhu v sadě Visual Studio můžete připojit ladicí modul k neúspěšnému procesu, který běží mimo ladicí program, a následně uložit soubor s výpisem paměti.Další informace naleznete v tématu Připojení ke spuštěným procesům pomocí ladicího programu sady Visual Studio.

Můžete také vytvořit soubory s výpisem paměti pomocí libovolného programu, který podporuje formát minimálního výpisu Windows.Například nástroj příkazového řádku Procdump z prostředí Windows Sysinternals může vytvořit soubory pro výpis paměti při selhání procesu na základě aktivační události nebo na vyžádání.Viz Požadavky a omezení v tomto tématu pro další informace o použití jiných nástrojů pro vytváření souborů s výpisem paměti.

Zpět na začátekObsah

Otevřete souboru výpisu paměti

  1. V sadě Visual Studio, zvolte položky Soubor, Otevřít, Soubor.

  2. V dialogovém okně Otevřít soubor vyhledejte a vyberte soubor s výpisem paměti.Obvykle má příponu .dmp.Poté vyberte možnost OK.

  3. Zobrazí se okno Souhrn souborů výpisu paměti.V tomto okně můžete zobrazit souhrnné informace o ladění pro soubor s výpisem paměti, nastavit cestu symbolů, spustit ladění a souhrnné informace zkopírovat do schránky.

    Stránka Souhrn MiniDump

  4. Chcete-li spustit ladění, přejděte do části Akce a zvolte buď Ladit pouze nativní nebo Ladit s různými typy.

Najít binární soubory, soubory symbolů (PDB) a zdrojové soubory

Chcete-li používat úplné funkce aplikace Visual Studio pro ladění souboru s výpisem paměti, potřebujete přístup k:

  • Soubor .exe, pro který byl pořízen výpis paměti přijatých a další binárních souborů (knihovny DLL, atd.), které byly použity v procesu s výpisem paměti.

    Jestliže ladíte výpis paměti s daty haldy, sada 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 mohla vygenerovat platné zásobníky volání.Visual Studio obsahuje nativní moduly v souboru s výpisem paměti s haldou.

  • Soubory symbolů (PDB) .exe a další binární soubory.

  • Zdrojové soubory pro moduly, které vás zajímají.

    Spustitelné soubory a soubory PDB musí odpovídat přesně verzi a sestavení souborů použitých při tvorbě výpisu paměti.

    Pokud nemůžete najít zdrojové soubory, můžete ladit pomocí zpětného překladu modulů,

Výchozí vyhledávací cesty pro spustitelné soubory

Visual Studio automaticky hledá v těchto umístěních spustitelné soubory, které nejsou zahrnuty v souboru s výpisem paměti:

  1. Adresář obsahující soubor s výpisem paměti.

  2. Cesta modulu, který je zadaný v souboru s výpisem paměti.Toto je cesta modulu v počítači, kde byl výpis paměti shromážděn.

  3. Cesty symbolů zadané na stránce Ladění, Možnosti, Symboly dialogového okna Nástroje aplikace Visual Studio , Volby.Můžete přidat více míst pro vyhledávání na této stránce.

Používání stránek Ne binární / Symbol / Zdroj

Pokud sada Visual Studio nemůže najít soubory potřebné k ladění modulu ve výpisu paměti, zobrazí odpovídající stránku (Nebyl nalezen žádný binární soubor, Nebyl nalezen žádný symbol nebo Nebyl nalezen žádný zdroj).Tyto stránky obsahují podrobné informace o příčině problému a poskytují odkazy na akce, které vám mohou pomoci identifikovat správné umístění souborů.Další informace naleznete v tématu Zadání symbolu (.pdb) a zdrojových souborů v ladicím programu sady Visual Studio.

Zpět na začátekObsah

Viz také

Koncepty

Ladění za běhu v sadě Visual Studio

Ladění aplikace pomocí zaznamenávání provádění kódu s použitím technologie IntelliTrace

Další zdroje

Zadání symbolu (.pdb) a zdrojových souborů v ladicím programu sady Visual Studio