Estoy haciendo una biblioteca de C++ que va a ser P/invocada desde C#, por lo que no puedo romper/depurar el lado C++ de las cosas. Así que decidí agregar el registro para poder ver si algo sale mal y dónde sucede. Agrego un #define DebugMode 1
para determinar si debo iniciar sesión o no. Antes que nada no soy muy bueno en C++, pero sé lo suficiente como para moverme. Así que mis preguntas son:¿Hay una manera mejor que #if DebugMode para iniciar sesión
¿Hay una manera mejor que envolver
#if DebugMode #endif
s en cada registro de llamadas? Podría simplemente hacer eso dentro del método de registro y simplemente regresar si el registro no está habilitado, pero ¿no significará que todas esas cadenas de registro estarán en el ensamblado?Cómo puedo emular lo que hace con su printf "..." operador me permite pasar algo así como
Log("Variable x is {0}", x);
¿Hay algún truco como obtener el número de línea o apilar información de algún tipo que trazar puedo usar en el registro?
Gracias!
Esto no responde la pregunta directamente, pero * puede * depurar el código C++ que es P/invocado desde C#, solo en el cuadro de diálogo "adjuntar", asegúrese de tener marcado el "Código nativo" como una opción . –
¿Dónde puedo encontrar esta opción? – Daniel