/ / Redirige le processus en cours STDOUT / STDERR vers SSH STDOUT à l'aide de GDB - linux, redirect, gdb, embedded, stdout

Rediriger le processus en cours d'exécution STDOUT / STDERR vers SSH STDOUT en utilisant GDB - linux, redirect, gdb, embedded, stdout

J'ai un processus en cours d'exécution sur un système embarqué (Linux). son STDOUT / STDERR est la console qui est sur un port série.

Je voudrais rediriger ses sorties (standard eterreur) à celle d’une session SSH. J'ai lu que vous pouvez effectuer des opérations similaires avec GDB, mais je ne sais pas comment vous redirigeriez vers la STDOUT / STDERR de la session SSH au lieu d'un fichier.

Je ne peux pas "le faire dans un fichier à cause de faibles ressources disque. J'ai aussi vu quelques exemples utilisant un tube nommé, mais je n'ai pas la commande mkfifo disponible. J'ai bien GDB.

De plus, en supposant que cela soit possible, le processus se terminerait-il lorsque je fermerais la session SSH? Si oui, pourrais-je rediriger avant?

Merci.

Réponses:

2 pour la réponse № 1

Vous pouvez le faire tant que vous pouvez appeler des fonctions libc depuis gdb.

#ssh root@embedded

Query daemon emplacement de sortie:

# ls -l /proc/`pidof daemon`/fd/1
/proc/13202/fd/1 -> /dev/null

Il peut être non nul, il peut pointer sur une autre console ou même sur un tuyau ou un fichier et stocker cet emplacement quelque part. Interrogez votre emplacement de sortie de session ssh:

# ls /proc/self/fd/1 -l
lrwx------ 1 root root 64 дек.  15 16:51 /proc/self/fd/1 -> /dev/pts/9

ou simplement appeler tty si tu l'as.

Maintenant va le travail:

# gdb -p `pidof daemon`
..
81      ../sysdeps/unix/syscall-template.S: No such file or directory.
(gdb) call open("/dev/pts/9",2,0)
$1 = 0x3
(gdb) call dup2(3,2)
$2 = 0x2
(gdb) call dup2(3,1)
$3 = 0x1
(gdb) quit
Detaching from program: /root/daemon, process 13202
daemon output/errorput

Répétez les mêmes étapes avant de quitter la session ssh, remplacez simplement /dev/pts/9 avec emplacement de sortie initial dans le open appel système.