PDA

Ver la versión completa : [Duda] Como ver todo el output de la terminal



GameMaster
25/02/2011, 10:08
Hola.
Estoy intentando compilar en linux usando Makefile, tengo mogollon de warnings, con lo cual cuando me sale el error, este sale antes que los warnings, pero el scroll de la terminal no pone todo el output, con lo cual no puedo ver el error.

Hay alguna forma de poder ver todo el log de salida, desde que le hado al comando Make hasta que termino su ejecución ?

JoJo_ReloadeD
25/02/2011, 10:11
propiedades del terminal... numero de lineas de buffer: ponle 999999999999999999 xD

o si lo quieres en un archivito pa consultarlo luego...

make > salida.txt

juanvvc
25/02/2011, 10:15
make > salida
Y aluego abre salida con cualquier editor

También, en el terminal, SHIFT+PAGE UP mueve el scroll hacia arriba.

dardo
25/02/2011, 13:22
make |grep -vi warning

Total, ¿quien se lee los warning?

En serio, las soluciones anteriores son mejores que la de eliminar los warning de la salida.

juanvvc
25/02/2011, 13:31
Bueno, si no quieres ver warnings, también están las opciones del compilador -w (sin warnings) y "-Wall -Werror" (convierte warnings en errores)

En los dos casos, ¡ya no más warnings! :D

GameMaster
25/02/2011, 15:41
Gracias famigos, me habeis resuelto 3 dudas de golpe :)

< - >
Por cierto por donde se va a las propiedades del terminal ?

< - >

make > salida
Y aluego abre salida con cualquier editor

También, en el terminal, SHIFT+PAGE UP mueve el scroll hacia arriba.


El SHIFT+PAGE UP solo mueve el scroll en los logs visibles (el cual esta recortado), lo mismo hace la barra....

el make > error.txt no sirve, ya que solo imprime la cadena de compilacion, no imprime ni errores ni warnings...

juanvvc
25/02/2011, 15:53
¿Cuando dices "terminal", a qué terminal te refieres? Si es un emulador de terminal como gnome-terminal o konsole, las propiedades y el número de líneas a recordar están en Settings->loquesea. Si es un terminal de verdad... la verdad es que no sé dónde se cambian las líneas de scroll.

make >salida.txt 2>&1

Así la salida de errores se redirige a la salida estándar y la estándar al archivo. Si solo quieres redirigir los errores pero no los mensajes, pues

make 2>errores.txt

Y si quieres probar lo del -w para quitar warnings y solo ver errores...

env CFLAGS=-w make

(aunque dependiendo del Makefile, puede que no funcione)

SplinterGU
25/02/2011, 16:01
usa la sugerencia de juanvvc

make 2>&1 > salida.txt

o como siempre hacemos con bennugd

make 2>err >log

pero la mejor es la que dice juanvvc

juanvvc
25/02/2011, 16:05
Splinter, he modificado el comando porque acabo de aprender que se tiene que escribir al revés: primero rediriges la estándar al archivo y luego la de errores a la estándar. Así que tu solución era la correcta, "make 2>&1 >salida.txt" no funciona como esperaba :D

Probemos: redirigimos la estándar al final



juanvi@carol:~$ gcc -x c -o /dev/null - 2>&1 >salida <<EOF
da
EOF
<stdin>:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ at end of input
juanvi@carol:~$


No funciona. Hagámoslo al revés:



juanvi@carol:~$ gcc -x c -o /dev/null - >salida 2>&1 <<EOF
da
EOF
juanvi@carol:~$ cat salida
<stdin>:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ at end of input


Ahora sí. Ale, una cosa nueva que sé.

SplinterGU
25/02/2011, 16:24
jajaja, si, tienes razon, pero es la idea.

ejecutable >salida 2>&1

solo vi el &1 y le di que era ok...

jejeje...

pero esta bien, es mejor aclarar porque despue gamemaster dice que no le funciona... y ni en pedo usa google...