Sdílet prostřednictvím


Symboly

Symboly jsou užitečné pro ladění a další diagnostické nástroje. Obsah souborů symbolů se liší mezi jazyky, kompilátory a platformami. Na vysoké úrovni jsou symboly mapováním mezi zdrojovým kódem a binárním souborem vytvořeným kompilátorem. Tato mapování používají nástroje, jako jsou Visual Studio a Visual Studio Code , k překladu informací o čísle zdrojového řádku nebo názvů místních proměnných.

Dokumentace k Windows o symbolech obsahuje podrobnější informace o symbolech pro Windows, i když mnoho konceptů platí i pro jiné platformy.

Přečtěte si informace o . Přenosný formát PDB pro net

.NET Core zavedl nový formát souboru symbolů (PDB) – přenosný SOUBOR PDB. Na rozdíl od tradičních souborů PDB, které jsou jen pro Windows, lze na všech platformách vytvářet a číst přenosné soubory PDB.

Co je PDB?

Soubor PDB je pomocný soubor vytvořený kompilátorem, který poskytuje další nástroje, zejména ladicí programy, informace o tom, co je v hlavním spustitelném souboru a jak byl vytvořen. Ladicí program například načte soubor PDB, který mapuje foo.cs řádku 12 na správné umístění spustitelného souboru, aby mohl nastavit zarážku. Formát PDB systému Windows byl již dlouhou dobu a vyvinul se z jiných nativních formátů symbolů ladění, které byly ještě starší. Začal svůj život jako formát nativních programů (C/C++). Pro první verzi rozhraní .NET Framework byl formát Windows PDB rozšířen tak, aby podporoval .NET.

Formát Portable PDB byl zaveden v .NET Core a používá se ve výchozím nastavení při cílení na .NET. Při cílení na rozhraní .NET Framework můžete povolit přenosné symboly PDB zadáním <DebugType>portable</DebugType> v souboru projektu. Přenosný formát PDB je založený na formátu metadat ECMA-335. Další informace naleznete v tématu Portable PDB v1.0: Specifikace formátu. Diagnostické nástroje můžou knihovnu System.Reflection.Metadata použít ke čtení přenosných souborů PDB (například viz System.Reflection.Metadata.Document).

Použití správného formátu PDB pro váš scénář

Přenosné soubory PDB ani soubory PDB systému Windows nejsou podporovány všude. Pokud se chcete rozhodnout, který formát se má použít, zvažte, kde se bude váš projekt používat a ladit. Pokud máte projekt, který chcete používat a ladit v obou formátech, můžete použít různé konfigurace sestavení a sestavit projekt dvakrát pro podporu obou typů příjemců.

Podpora přenosných souborů PDB

Přenosný soubor PDB lze číst v libovolném operačním systému a je doporučeným formátem symbolů pro spravovaný kód. Existuje ale řada starších nástrojů a aplikací, které nejsou podporované:

  • Aplikace cílené na rozhraní .NET Framework 4.7.1 nebo starší: tisk trasování zásobníku s mapováním zpět na čísla řádků (například na chybové stránce ASP.NET). Název metod nemá vliv, nejsou podporovány pouze názvy zdrojových souborů a čísla řádků.

  • Pokud používáte dekompilátory .NET, jako jsou ildasm nebo .NET reflector, neuvidíte mapování zdrojových řádků ani názvy místních parametrů.

  • Nejnovější verze DIA a nástrojů, které používají DIA pro čtení symbolů, jako je WinDBG, podporují přenosné soubory PDB, ale starší verze ne.

  • Můžou existovat starší verze profilátorů, které nepodporují přenosné soubory PDB.

Pokud chcete používat přenosné soubory PDB na nástrojích, které je nepodporují, můžete použít Pdb2Pdb, který převádí mezi přenosnými soubory PDB a soubory PDB systému Windows.

Podpora souborů PDB systému Windows

Soubory PDB systému Windows lze zapisovat nebo číst pouze ve Windows. Použití souborů PDB systému Windows pro spravovaný kód je zastaralé a vyžaduje se pouze pro starší nástroje. Doporučujeme místo souborů PDF systému Windows používat přenosné soubory PDB, protože některé novější funkce kompilátoru jsou implementovány pouze pro přenosné soubory PDB.

Viz také