Compartir a través de


Símbolos

Los símbolos son útiles para la depuración y otras herramientas de diagnóstico. El contenido de los archivos de símbolos varía entre lenguajes, compiladores y plataformas. En un nivel alto, los símbolos son una asignación entre el código fuente y el binario generado por el compilador. Estas asignaciones las usan herramientas como Visual Studio y Visual Studio Code para resolver la información de números de línea de origen o los nombres de variables locales.

La documentación de Windows sobre símbolos contiene información más detallada sobre símbolos para Windows, aunque muchos de los conceptos también se aplican a otras plataformas.

Obtenga información sobre el formato PDB portátil de .NET.

.NET Core introdujo un nuevo formato de archivo de símbolos (PDB): PDB portátil. A diferencia de los PDB tradicionales, que son archivos PDF portátiles y de solo Windows, se pueden crear y leer en todas las plataformas.

¿Qué es una PDB?

Un archivo PDB es un archivo auxiliar generado por un compilador para proporcionar otras herramientas, especialmente depuradores, información sobre lo que se encuentra en el archivo ejecutable principal y cómo se produjo. Por ejemplo, un depurador lee un PDB para mapear la línea 12 de foo.cs a la ubicación ejecutable correcta, de manera que pueda colocar un punto de interrupción. El formato PDB de Windows ha existido durante mucho tiempo y evolucionó a partir de otros formatos de símbolos de depuración nativos que son aún más antiguos. Comenzó su vida como un formato para programas nativos (C/C++). Para la primera versión de .NET Framework, se ha ampliado el formato PDB de Windows para admitir .NET.

El formato PDB portable se introdujo en .NET Core y se usa de forma predeterminada al dirigirse a .NET. Al establecer como destino .NET Framework, puede habilitar símbolos PDB portátiles especificando <DebugType>portable</DebugType> en el archivo de proyecto. El formato PDB portátil se basa en el formato de metadatos ECMA-335. Para obtener más información, consulte Portable PDB v1.0: Especificación de formato. Las herramientas de diagnóstico pueden usar la System.Reflection.Metadata biblioteca para leer archivos PDB portátiles (por ejemplo, vea System.Reflection.Metadata.Document).

Uso del formato PDB correcto para su escenario

Ni los archivos PDB portátiles ni los archivos PDB de Windows son compatibles en todas partes. Para decidir qué formato usar, tenga en cuenta dónde se usará y depurará el proyecto. Si tiene un proyecto que desea poder usar y depurar en ambos formatos, puede usar configuraciones de compilación diferentes y compilar el proyecto dos veces para admitir ambos tipos de consumidor.

Compatibilidad con archivos PDB portátiles

Una PDB portátil se puede leer en cualquier sistema operativo y es el formato de símbolo recomendado para código administrado. Sin embargo, hay varias herramientas y aplicaciones heredadas en las que no se admiten:

  • Aplicaciones para .NET Framework 4.7.1 o versiones anteriores: los seguimientos de la pila de impresión con asignaciones a los números de línea (por ejemplo, en una página de error de ASP.NET). El nombre de los métodos no se ve afectado, solo no se admiten los nombres de archivo de origen y los números de línea.

  • Cuando utilizas descompiladores de .NET como ildasm o .NET reflector, no verás asignaciones de línea de origen ni nombres de parámetros locales.

  • Las versiones más recientes de DIA y herramientas que usan DIA para leer símbolos, como WinDBG, admiten archivos PDB portátiles, pero las versiones anteriores no.

  • Es posible que haya versiones anteriores de generadores de perfiles que no admitan archivos PDB portátiles.

Para usar archivos PDB portátiles en herramientas que no los admiten, puede usar Pdb2Pdb, que convierte entre archivos PDB portátiles y archivos PDB de Windows.

Compatibilidad con archivos PDB de Windows

Los archivos PDF de Windows solo se pueden escribir o leer en Windows. El uso de archivos PDB de Windows para código administrado está obsoleto y solo es necesario para las herramientas heredadas. Se recomienda usar archivos PDF portátiles en lugar de archivos PDF de Windows, ya que algunas características más recientes del compilador solo se implementan para archivos PDB portátiles.

Consulte también