J'ai un programme et je veux le déboguer dans gdb.sortie de bloc du programme débogué (gdb)
Est-ce que je vois une sortie de programme habituelle? Comment puis-je activer/désactiver cette sortie, ne laissant que des messages gdb.
J'ai un programme et je veux le déboguer dans gdb.sortie de bloc du programme débogué (gdb)
Est-ce que je vois une sortie de programme habituelle? Comment puis-je activer/désactiver cette sortie, ne laissant que des messages gdb.
Vous pouvez rediriger la sortie de l'intérieur gdb:
(gdb) run > somefile.txt
redirigera la sortie standard à Somefile.txt. Vous pouvez également spécifier un terminal pour envoyer la sortie à:
(gdb) tty /dev/ttyb
Oui, vous verrez toutes les sorties de votre programme.
Vous pouvez le désactiver en l'envoyant ailleurs. Par exemple:
(gdb) run > /dev/null
Si vous voulez juste voir la sortie du programme que vous franchissez sans la sortie de gdb, ce script peut être utile.
#!/bin/bash
file=$1
delay=1 #seconds
lastTime=`stat --printf=%y "$file"`
while [ 1 ]
do
thisTime=`stat --printf=%y "$file"`
if [ "$thisTime" != "$lastTime" ]
then
clear
cat "$file"
fi
lastTime="$thisTime"
sleep $delay
done
lastTime = "ThisTime $" sommeil retard de $ fait
Wat? Où est gdb? Comment l'utiliser? Je voulais juste ce que j'ai demandé, démarrer le programme dans gdb, travailler avec gdb, mais ne pas voir stderr et stdout du programme. – osgx
Ignorer stdout et stderr
run &>/dev/null
Analogue à la syntaxe de Bash.
Testé sur GDB 7.10.
Pour ignorer également le programme stderr: http://stackoverflow.com/a/35460141/895245 –