visual ucrtbased ubicacion símbolo studio simbolos punto puede para ningún ningun interrupción este esta encuentra documento codigo cargar cargado archivo actualmente activará abrir debugging symbols pdb-files

debugging - ucrtbased - simbolos visual studio



¿Cómo cambio las ubicaciones de los archivos fuente en un archivo de símbolos(pdb)? (4)

Puede usar la función de indexación de origen de las herramientas de depuración para Windows, que guardará las referencias a las revisiones apropiadas de los archivos en su repositorio de origen como una secuencia alternativa en el archivo PDB.

Básicamente lo que quiero hacer es esto: un archivo pdb contiene una ubicación de archivos fuente (por ejemplo, C:/dev/proj1/helloworld.cs ). ¿Es posible modificar ese archivo pdb para que contenga una ubicación diferente (por ejemplo, /more/differenter/location/proj1/helloworld.cs )?


Si está buscando ser más genérico sobre las rutas incrustadas en un archivo pdb, primero podría usar el comando subst MS-DOS para asignar una carpeta en particular a una letra de unidad.

subst N: <MyRealPath>

A continuación, abra su proyecto relativo a la unidad N: y vuelva a generarlo. Sus archivos PDB harán referencia a los archivos fuente en N :. Ahora no importa dónde coloque ese conjunto particular de archivos fuente, siempre que posteriormente llame al directorio raíz "N" como lo hizo cuando lo creó.

Esta práctica es recomendada por John Robbins en su excelente libro, Debugging Applications para Microsoft .NET y Microsoft Windows .


Ciertamente es posible, como lo ha señalado On Freund. Pero si solo es así para que las fuentes puedan ubicarse y cargarse durante la depuración, entonces una mejor manera sería establecer la ruta de origen de manera correspondiente. Una vez establecido en un depurador, preemitirá todas las rutas codificadas dentro de los PDB.

En windbg (por ejemplo):

.srcpath + path_to_source_root
o esto (en caso de que esté depurando de forma remota):
.lsrcpath + path_to_source_root

Quería encontrar la respuesta a esto para depurar un volcado de emergencia que ocurrió en un ejecutable que no construí en mi máquina, por lo tanto, la ruta al código fuente al que se hace referencia en el PDB no era válida, como lo era la ruta al PDB. referenciado en el ejecutable.

Después de buscar y no encontrar algo que funciona, descubrí que si coloca el archivo ejecutable y PDB junto con el archivo de volcado de bloqueo (es decir, en el mismo directorio) y luego abre y ejecuta el volcado de bloqueo en VS, VS encontrará y utilizará el PDB / EXE localmente. Además, también solicitará la ubicación del código fuente al hacer clic en una entrada en la pila de llamadas: al apuntar a cualquier código fuente relevante, todo funciona bien, ¡lo que es genial!

De todos modos, con suerte esto ayuda a otra persona ... :)