.net - ver - ¿Cómo configuro un Punto de interrupción de datos en la depuración mixta(C#/ C++)?
que es un punto de interrupcion en programacion (4)
Lanzo mi programa en C #, que luego llama a C ++ no administrado.
Cuando rompo una línea en el C ++ no administrado, el elemento del menú ''Nuevo punto de interrupción de datos'' aparece atenuado.
¿Hay alguna manera alrededor de esto?
Entonces para hacer esto tuve que:
- establecer el dll no administrado como el proyecto de inicio
- establecer el programa administrado como el comando de inicio
- establecer el modo de depuración como Nativo
- "romper la ejecución" o llegar a un punto de interrupción para que se encuentre en el estado de "depuración"
yech
La solución sugerida no funciona todo el tiempo. Incluso cuando se depura en modo nativo, con el programa roto en código nativo, al intentar establecer un "Nuevo punto de interrupción de datos" aparece una ventana emergente "No se puede establecer el punto de interrupción. Los puntos de corte de datos no son compatibles con Common Language Runtime"
La alternativa es agregar puntos de interrupción de datos directamente desde el código. Vea el artículo aquí .
Esto funciona bien en modo mixto, solo requiere que el modo de depuración nativa esté activo (como se sugirió anteriormente)
Un truco muy útil que funciona en todas partes es llamar a los puntos de interrupción del código en condiciones especiales:
If (Condition)
System.Diagnostics.Debugger.Break()
Para establecer un punto de interrupción de datos en la parte nativa de un proceso de modo mixto, consulte la respuesta publicada por jyoung .
Visual Studio deshabilita los puntos de interrupción de datos al ejecutar cualquier cosa que no sea un código puro y nativo. Consulte esta publicación para obtener una explicación parcial de por qué de un administrador de programas de VS.