2012-01-27 21 views
7

He especificado el archivo de símbolo (pdb) dentro de 2010 para que se cargue correctamente pero obtengo el error No source available y el Browse to Find Source Code aparece en gris. ¿Alguien sabe cómo puedo especificar el directorio del código fuente o mirar dentro del pdb para averiguar dónde está?visual studio 2010 C++ símbolos de depuración cargados pero no se puede encontrar el código fuente

EDITAR: Mi DLL está siendo llamado por un programa externo. El error está ocurriendo dentro de mi DLL, así que tengo el código fuente. Cuando se produce el error, hago clic en Depurar, se cargan los símbolos pdb pero no el origen.

+1

[AP] (http://msdn.microsoft.com/en-us/library/yd4f8bd1 (v = vs.71) .aspx) archivo contiene información de depuración y el proyecto para el archivo .exe o .obj archivos. Dudo que pueda "mirar dentro del pdb para averiguar dónde está el directorio del código fuente". – LihO

+0

¿Puedo preguntarte qué estás tratando de hacer realmente? – LihO

+0

@LihO lo siento si no estaba claro: he actualizado la pregunta. Gracias. –

Respuesta

4

Si movió la DLL de su directorio de compilación, es poco probable que el depurador pueda encontrar los archivos de código fuente. Lo primero que puede hacer es hacer clic con el botón derecho en el nodo raíz Solución en la ventana del Explorador de soluciones, Propiedades, Propiedades comunes, Archivos de origen de depuración y agregar la ruta al directorio de origen del proyecto DLL.

Segunda manera: el depurador le pide la primera vez que necesita encontrar un archivo de código fuente. Si alguna vez hizo clic en Cancelar en ese cuadro de diálogo, algo muy común que hacer cuando no sabe lo que realmente está preguntando, entonces el IDE recuerda su selección y no le volverá a preguntar. Repara eso eliminando o renombrando el archivo oculto .suo en el directorio de la solución.

+0

Tengo un problema similar. Estoy depurando una aplicación y no puedo ingresar a una función que está definida en otro módulo (DLL). * La ventana de módulos * informa que los símbolos se cargaron para esa DLL, pero el IDE no entra en la función. He logrado entrar en el modo * Desensamblaje *, pero luego no puedo volver a la fuente (la opción * Ir al código fuente * está atenuada). No moví el código fuente desde que se compiló. Intenté eliminar el archivo .suo y establecer los archivos de origen de depuración, pero no fue de ayuda. ¿Algunas ideas? –

+0

Tengo un problema similar con un ejecutable, pero no se ha movido. La ventana de Salida muestra que los símbolos están cargados pero dice que la fuente no está disponible. Tiene opciones para buscar la fuente o ir al desmontaje. La opción del código fuente está atenuada. Si abro manualmente el archivo fuente e intento establecer un punto de interrupción, se muestra un círculo hueco para indicar que el módulo no está cargado. Ocurre solo con ciertas soluciones. Muy extraño. –

1

Por lo que entiendo, solo quiere depurar su programa, que tiene en forma de DLL. El problema es que el programa externo utiliza esta DLL y hace clic en "Depurar" desde la ventana que aparece después de se produce el error.

Supongo que quiere abrir su proyecto en Visual Studio y luego presione Ctrl + Alt + P para abrir la ventana "Adjuntar al proceso", donde debe seleccionar el proceso que utiliza esta DLL (iexplore.exe o lo que sea que esté trabajando con) para que pueda alternar algunos puntos de interrupción allí y ver qué está pasando antes de se produce el error.

1

El truco de @Hans Passant funciona, pero en realidad hay una manera oficial de lograrlo: haga clic con el botón derecho en su solución en el explorador de soluciones, seleccione propiedades/Propiedades comunes/Depurar archivos fuente. Debería poder ver y editar una lista de todos los archivos en los que seleccionó previamente 'cancelar' cuando se le solicite una ruta de origen.

enter image description here

Cuestiones relacionadas