2010-12-04 19 views
6

He escrito una aplicación C#, donde gran parte del trabajo se realiza en un back-end de C++. Ahora he estado desarrollando activamente ambos lados, y la iteración actual del back-end arroja una violación de acceso en una función específica. ¿Cómo puedo ir y depurar esto? VS no romperá las excepciones o puntos de interrupción en el código nativo, ni mostrará la pila de llamadas ni los locales del código nativo, aunque ambos proyectos estén integrados en la misma solución. Prefiero evitar tener que regresar y dejar todo mi código nativo en las declaraciones de registro.Depuración de código nativo cuando se llama desde

+0

¿Qué versiones de SO y VS? VS2008 y versiones anteriores no son compatibles con la depuración en modo mixto en el modo de 64 bits. –

+1

@Steve: .net 4.0 implica VS 2010 – Vlad

Respuesta

10

VS depurará el código nativo, también, si activa la depuración de modo mixto (y recompila el proyecto).

Véase la explicación del Microsoft: http://msdn.microsoft.com/en-us/library/kbaht4dh.aspx

+3

Puede confirmar esto. Disminuirá la velocidad de la aplicación depurada en un orden de magnitud, por lo que probablemente terminará encendido y apagado regularmente. –

+0

¿Puede explicar si funciona en mi aplicación implementada? Porque desafortunadamente mi formulario de Windows se cuelga cuando se cierra la forma. Estoy usando un archivo dll C++ en mi proyecto –

1

mediante Visual Studiopuede adjuntar el depurador de su proyecto nativo C++ para su aplicación en ejecución C#.

Antes de fijar el depurador y el funcionamiento de su aplicación C#

  1. Abra su nativo de C++ proyecto en VS.
  2. Asegúrese de que está configurado para el modo de depuración. A continuación, reconstruya su código nativo C++.

  3. Agregue los puntos de corte donde desee interrumpir y comience a recorrer el código . Asegúrese de haber colocado los puntos de interrupción en el código al que llama la aplicación C#.

  4. Si su aplicación C# es el proyecto de su solución, bajo el nodo de depuración en sus proyectos en marcha páginas de propiedades asegúrese de verificación de la opción ‘Habilitar la depuración de código nativo’, luego reconstruir toda la solución .

    De lo contrario, deberá reconstruir la aplicación C# haciendo referencia a las DLL compiladas recientemente. Ejecute la aplicación y adjunte el depurador VS del proyecto C++ a la aplicación C#.
    Para hacerlo, vaya a la pestaña Depuración -> Adjuntar al proceso -> seleccione la aplicación C#.

Cuestiones relacionadas