Sometimes it may already be helpful to capture a translator's stdout
and
stderr
, for example in this situation where pfinet was
silently dying all the time, without any console output:
$ sudo settrans -fgap ↩
/servers/socket/2 ↩
/bin/sh -c 'exec >> /root/pfinet.log 2>&1 && date && ↩
/hurd/pfinet -i /dev/eth0 -a [...]'
$ [...]
$ cat /root/pfinet.log
[date]
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP
TCP: Hash tables configured (ehash 65536 bhash 65536)
pfinet: ../../hurd.work/pfinet/ethernet.c:196: ethernet_xmit: Unexpected error: (os/device) invalid IO size.
(Trying to run GDB in this case was of no help -- due to a bug in GDB (supposedly) it wouldn't catch the fault.)
Be made aware that both stdout
and stderr
will be block bufferend and no
longer line buffered when doing such a redirection, so you'll have to arrange
for appropriate fflush
es on these, or force them to be line buffered again
using the appropriate glibc magic (setvbuf
). Otherwise you'll see text in
the output files only if either glibc herself decides to flush (after some KiB
of text) the after translator exits.
There is also a related open issue.