Érase una vez, solía usar mucho código de depuración. Estaba apuntando casi por completo a Windows, por lo que había mucha de esta función de salida de cadena de depuración que ya no recuerdo cómo deletrear, para poder capturar la traza con un programa en particular.
Algunos códigos de depuración permanecieron en su lugar, cosas particulares que estaban destinadas a anidar llamadas. Sin embargo, a pesar de que la cadena de depuración en su mayoría no sería visible en un sistema de producción, todavía se hizo todo bajo compilación condicional.
Sin embargo, la realidad es que todo ese código de depuración fue un gran esfuerzo para algo que se maneja idealmente de una manera diferente: usar, por supuesto, un depurador. En ese momento, no estaba tan impresionado con el depurador Borland C ++. Las herramientas estaban allí, pero con demasiada frecuencia daban resultados engañosos, y usar el depurador no IDE (a menudo necesario) significaba memorizar teclas de acceso directo, lo que significaba una distracción del trabajo en cuestión.
La única experiencia de depuración que he encontrado que es peor es la línea de comandos GDB.
Ser un experto con las herramientas que usa todos los días es, por supuesto, importante, pero la depuración realmente no debería ser algo que haga todos los días. Si usa el depurador con tanta frecuencia que está de acuerdo con aprender docenas de comandos y / o atajos de teclado, eso me parece un poco rojo.
Sin embargo, cuando estaba trabajando en Visual Studio 7, estaba claro que la depuración podría ser muy práctica y efectiva. Si puede depurar en Visual Studio (incluidas las ediciones exprés), la depuración es muy sencilla. Sin duda, si puede encontrar la interfaz gráfica de usuario / IDE correcta, GDB también es fácil y efectivo, aunque todavía no he hecho esa búsqueda.
También hay algo que decir para las pruebas unitarias, con análisis de cobertura utilizando gcov. Cuanto más confiado esté en el comportamiento de sus bibliotecas, menos profunda será su depuración, y menos frecuentemente necesitará el depurador en primer lugar. Y escribir pruebas unitarias es razonablemente algo que debería hacer la mayoría de los días.
Herramienta inesperadamente importante = cmake, una herramienta de compilación que me permite cambiar fácilmente entre compilar para GCC y para VC ++, entre otras cosas. Entonces puedo hacer mi prueba de unidad y cobertura basada en gcov usando GCC, pero cambiar fácilmente a VC ++ para usar el depurador.