1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
[[!meta copyright="Copyright © 2008, 2009, 2010, 2012 Free Software Foundation,
Inc."]]
[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
id="license" text="Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with no Invariant
Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
is included in the section entitled [[GNU Free Documentation
License|/fdl]]."]]"""]]
Sometimes it may already be helpful to capture a translator's `stdout` and
`stderr`, for example in this situation where [[translator/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 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|open_issues/translator_stdout_stderr]].
|