Me gustaría saber de dónde se imprime un determinado mensaje dentro de una aplicación enorme. La aplicación es tan grande y vieja que usa todas las formas imaginables de imprimir texto en la terminal; por ejemplo printf(), fprintf (stdout, ...) etc.¿cómo puedo poner un punto de interrupción en "algo está impreso en el terminal" en gdb?
Escribo para poner un punto de interrupción en la llamada al sistema write() pero luego estoy inundado con demasiadas paradas de punto de interrupción debido a varios archivos I/O operaciones que también usan write().
Básicamente quiero que gdb se detenga cada vez que el programa imprime algo en el terminal, pero al mismo tiempo no quiero que gdb se detenga cuando el programa escribe algo en un archivo.
Véase también [¿Cómo puedo controlar lo que está siendo puesta en el buffer estándar out y break cuando se deposita una cadena específica en el pipe?] (http://stackoverflow.com/questions/8235436/how-can-i-monitor-whats-being-put-into-the-standard- out-buffer-and-break-when-a) –
¿No puedes 'grep' la fuente de ese" algo "que aparece en la terminal, y luego colocar un punto de interrupción allí? – Calmarius